001package org.hl7.fhir.convertors.conv10_30.datatypes10_30;
002
003import java.util.ArrayList;
004
005import org.hl7.fhir.convertors.advisors.impl.BaseAdvisor_10_30;
006import org.hl7.fhir.convertors.conv10_30.datatypes10_30.complextypes10_30.Address10_30;
007import org.hl7.fhir.convertors.conv10_30.datatypes10_30.complextypes10_30.Age10_30;
008import org.hl7.fhir.convertors.conv10_30.datatypes10_30.complextypes10_30.Annotation10_30;
009import org.hl7.fhir.convertors.conv10_30.datatypes10_30.complextypes10_30.Attachment10_30;
010import org.hl7.fhir.convertors.conv10_30.datatypes10_30.complextypes10_30.CodeableConcept10_30;
011import org.hl7.fhir.convertors.conv10_30.datatypes10_30.complextypes10_30.Coding10_30;
012import org.hl7.fhir.convertors.conv10_30.datatypes10_30.complextypes10_30.ContactPoint10_30;
013import org.hl7.fhir.convertors.conv10_30.datatypes10_30.complextypes10_30.Count10_30;
014import org.hl7.fhir.convertors.conv10_30.datatypes10_30.complextypes10_30.Distance10_30;
015import org.hl7.fhir.convertors.conv10_30.datatypes10_30.complextypes10_30.Duration10_30;
016import org.hl7.fhir.convertors.conv10_30.datatypes10_30.complextypes10_30.HumanName10_30;
017import org.hl7.fhir.convertors.conv10_30.datatypes10_30.complextypes10_30.Identifier10_30;
018import org.hl7.fhir.convertors.conv10_30.datatypes10_30.complextypes10_30.Money10_30;
019import org.hl7.fhir.convertors.conv10_30.datatypes10_30.complextypes10_30.Period10_30;
020import org.hl7.fhir.convertors.conv10_30.datatypes10_30.complextypes10_30.Quantity10_30;
021import org.hl7.fhir.convertors.conv10_30.datatypes10_30.complextypes10_30.Range10_30;
022import org.hl7.fhir.convertors.conv10_30.datatypes10_30.complextypes10_30.Ratio10_30;
023import org.hl7.fhir.convertors.conv10_30.datatypes10_30.complextypes10_30.SampledData10_30;
024import org.hl7.fhir.convertors.conv10_30.datatypes10_30.complextypes10_30.Signature10_30;
025import org.hl7.fhir.convertors.conv10_30.datatypes10_30.complextypes10_30.SimpleQuantity10_30;
026import org.hl7.fhir.convertors.conv10_30.datatypes10_30.complextypes10_30.Timing10_30;
027import org.hl7.fhir.convertors.conv10_30.datatypes10_30.primitivetypes10_30.Base64Binary10_30;
028import org.hl7.fhir.convertors.conv10_30.datatypes10_30.primitivetypes10_30.Boolean10_30;
029import org.hl7.fhir.convertors.conv10_30.datatypes10_30.primitivetypes10_30.Code10_30;
030import org.hl7.fhir.convertors.conv10_30.datatypes10_30.primitivetypes10_30.Date10_30;
031import org.hl7.fhir.convertors.conv10_30.datatypes10_30.primitivetypes10_30.DateTime10_30;
032import org.hl7.fhir.convertors.conv10_30.datatypes10_30.primitivetypes10_30.Decimal10_30;
033import org.hl7.fhir.convertors.conv10_30.datatypes10_30.primitivetypes10_30.Id10_30;
034import org.hl7.fhir.convertors.conv10_30.datatypes10_30.primitivetypes10_30.Instant10_30;
035import org.hl7.fhir.convertors.conv10_30.datatypes10_30.primitivetypes10_30.Integer10_30;
036import org.hl7.fhir.convertors.conv10_30.datatypes10_30.primitivetypes10_30.MarkDown10_30;
037import org.hl7.fhir.convertors.conv10_30.datatypes10_30.primitivetypes10_30.Oid10_30;
038import org.hl7.fhir.convertors.conv10_30.datatypes10_30.primitivetypes10_30.PositiveInt10_30;
039import org.hl7.fhir.convertors.conv10_30.datatypes10_30.primitivetypes10_30.String10_30;
040import org.hl7.fhir.convertors.conv10_30.datatypes10_30.primitivetypes10_30.Time10_30;
041import org.hl7.fhir.convertors.conv10_30.datatypes10_30.primitivetypes10_30.UnsignedInt10_30;
042import org.hl7.fhir.convertors.conv10_30.datatypes10_30.primitivetypes10_30.Uri10_30;
043import org.hl7.fhir.convertors.conv10_30.datatypes10_30.primitivetypes10_30.Uuid10_30;
044import org.hl7.fhir.exceptions.FHIRException;
045
046public class Type10_30 {
047
048  private final BaseAdvisor_10_30 advisor;
049
050  public Type10_30(BaseAdvisor_10_30 advisor) {
051    this.advisor = advisor;
052  }
053
054  public org.hl7.fhir.dstu3.model.Type convertType(org.hl7.fhir.dstu2.model.Type src) throws FHIRException {
055    if (src == null || src.isEmpty()) return null;
056    if (src instanceof org.hl7.fhir.dstu2.model.Base64BinaryType)
057      return Base64Binary10_30.convertBase64Binary((org.hl7.fhir.dstu2.model.Base64BinaryType) src);
058    if (src instanceof org.hl7.fhir.dstu2.model.BooleanType)
059      return Boolean10_30.convertBoolean((org.hl7.fhir.dstu2.model.BooleanType) src);
060    if (src instanceof org.hl7.fhir.dstu2.model.CodeType)
061      return Code10_30.convertCode((org.hl7.fhir.dstu2.model.CodeType) src);
062    if (src instanceof org.hl7.fhir.dstu2.model.DateType)
063      return Date10_30.convertDate((org.hl7.fhir.dstu2.model.DateType) src);
064    if (src instanceof org.hl7.fhir.dstu2.model.DateTimeType)
065      return DateTime10_30.convertDateTime((org.hl7.fhir.dstu2.model.DateTimeType) src);
066    if (src instanceof org.hl7.fhir.dstu2.model.DecimalType)
067      return Decimal10_30.convertDecimal((org.hl7.fhir.dstu2.model.DecimalType) src);
068    if (src instanceof org.hl7.fhir.dstu2.model.IdType) return Id10_30.convertId((org.hl7.fhir.dstu2.model.IdType) src);
069    if (src instanceof org.hl7.fhir.dstu2.model.InstantType)
070      return Instant10_30.convertInstant((org.hl7.fhir.dstu2.model.InstantType) src);
071    if (src instanceof org.hl7.fhir.dstu2.model.PositiveIntType)
072      return PositiveInt10_30.convertPositiveInt((org.hl7.fhir.dstu2.model.PositiveIntType) src);
073    if (src instanceof org.hl7.fhir.dstu2.model.UnsignedIntType)
074      return UnsignedInt10_30.convertUnsignedInt((org.hl7.fhir.dstu2.model.UnsignedIntType) src);
075    if (src instanceof org.hl7.fhir.dstu2.model.IntegerType)
076      return Integer10_30.convertInteger((org.hl7.fhir.dstu2.model.IntegerType) src);
077    if (src instanceof org.hl7.fhir.dstu2.model.MarkdownType)
078      return MarkDown10_30.convertMarkdown((org.hl7.fhir.dstu2.model.MarkdownType) src);
079    if (src instanceof org.hl7.fhir.dstu2.model.OidType)
080      return Oid10_30.convertOid((org.hl7.fhir.dstu2.model.OidType) src);
081    if (src instanceof org.hl7.fhir.dstu2.model.StringType)
082      return String10_30.convertString((org.hl7.fhir.dstu2.model.StringType) src);
083    if (src instanceof org.hl7.fhir.dstu2.model.TimeType)
084      return Time10_30.convertTime((org.hl7.fhir.dstu2.model.TimeType) src);
085    if (src instanceof org.hl7.fhir.dstu2.model.UuidType)
086      return Uuid10_30.convertUuid((org.hl7.fhir.dstu2.model.UuidType) src);
087    if (src instanceof org.hl7.fhir.dstu2.model.UriType)
088      return Uri10_30.convertUri((org.hl7.fhir.dstu2.model.UriType) src);
089    if (src instanceof org.hl7.fhir.dstu2.model.Extension)
090      return Extension10_30.convertExtension((org.hl7.fhir.dstu2.model.Extension) src);
091    if (src instanceof org.hl7.fhir.dstu2.model.Narrative)
092      return Narrative10_30.convertNarrative((org.hl7.fhir.dstu2.model.Narrative) src);
093    if (src instanceof org.hl7.fhir.dstu2.model.Annotation)
094      return Annotation10_30.convertAnnotation((org.hl7.fhir.dstu2.model.Annotation) src);
095    if (src instanceof org.hl7.fhir.dstu2.model.Attachment)
096      return Attachment10_30.convertAttachment((org.hl7.fhir.dstu2.model.Attachment) src);
097    if (src instanceof org.hl7.fhir.dstu2.model.CodeableConcept)
098      return CodeableConcept10_30.convertCodeableConcept((org.hl7.fhir.dstu2.model.CodeableConcept) src);
099    if (src instanceof org.hl7.fhir.dstu2.model.Coding)
100      return Coding10_30.convertCoding((org.hl7.fhir.dstu2.model.Coding) src);
101    if (src instanceof org.hl7.fhir.dstu2.model.Identifier)
102      return Identifier10_30.convertIdentifier((org.hl7.fhir.dstu2.model.Identifier) src);
103    if (src instanceof org.hl7.fhir.dstu2.model.Period)
104      return Period10_30.convertPeriod((org.hl7.fhir.dstu2.model.Period) src);
105    if (src instanceof org.hl7.fhir.dstu2.model.Age) return Age10_30.convertAge((org.hl7.fhir.dstu2.model.Age) src);
106    if (src instanceof org.hl7.fhir.dstu2.model.Count)
107      return Count10_30.convertCount((org.hl7.fhir.dstu2.model.Count) src);
108    if (src instanceof org.hl7.fhir.dstu2.model.Distance)
109      return Distance10_30.convertDistance((org.hl7.fhir.dstu2.model.Distance) src);
110    if (src instanceof org.hl7.fhir.dstu2.model.Duration)
111      return Duration10_30.convertDuration((org.hl7.fhir.dstu2.model.Duration) src);
112    if (src instanceof org.hl7.fhir.dstu2.model.Money)
113      return Money10_30.convertMoney((org.hl7.fhir.dstu2.model.Money) src);
114    if (src instanceof org.hl7.fhir.dstu2.model.SimpleQuantity)
115      return SimpleQuantity10_30.convertSimpleQuantity((org.hl7.fhir.dstu2.model.SimpleQuantity) src);
116    if (src instanceof org.hl7.fhir.dstu2.model.Quantity)
117      return Quantity10_30.convertQuantity((org.hl7.fhir.dstu2.model.Quantity) src);
118    if (src instanceof org.hl7.fhir.dstu2.model.Range)
119      return Range10_30.convertRange((org.hl7.fhir.dstu2.model.Range) src);
120    if (src instanceof org.hl7.fhir.dstu2.model.Ratio)
121      return Ratio10_30.convertRatio((org.hl7.fhir.dstu2.model.Ratio) src);
122    if (src instanceof org.hl7.fhir.dstu2.model.Reference)
123      return Reference10_30.convertReference((org.hl7.fhir.dstu2.model.Reference) src);
124    if (src instanceof org.hl7.fhir.dstu2.model.SampledData)
125      return SampledData10_30.convertSampledData((org.hl7.fhir.dstu2.model.SampledData) src);
126    if (src instanceof org.hl7.fhir.dstu2.model.Signature)
127      return Signature10_30.convertSignature((org.hl7.fhir.dstu2.model.Signature) src);
128    if (src instanceof org.hl7.fhir.dstu2.model.Address)
129      return Address10_30.convertAddress((org.hl7.fhir.dstu2.model.Address) src);
130    if (src instanceof org.hl7.fhir.dstu2.model.ContactPoint)
131      return ContactPoint10_30.convertContactPoint((org.hl7.fhir.dstu2.model.ContactPoint) src);
132    if (src instanceof org.hl7.fhir.dstu2.model.ElementDefinition)
133      return ElementDefinition10_30.convertElementDefinition((org.hl7.fhir.dstu2.model.ElementDefinition) src, new ArrayList<String>());
134    if (src instanceof org.hl7.fhir.dstu2.model.HumanName)
135      return HumanName10_30.convertHumanName((org.hl7.fhir.dstu2.model.HumanName) src);
136    if (src instanceof org.hl7.fhir.dstu2.model.Meta) return Meta10_30.convertMeta((org.hl7.fhir.dstu2.model.Meta) src);
137    if (src instanceof org.hl7.fhir.dstu2.model.Timing)
138      return Timing10_30.convertTiming((org.hl7.fhir.dstu2.model.Timing) src);
139    if (advisor.failFastOnNullOrUnknownEntry()) {
140      throw new FHIRException("The type " + src.fhirType()+" cannot be converted from R2 to R3");
141    } else {
142      return null;
143    }
144  }
145
146  public org.hl7.fhir.dstu2.model.Type convertType(org.hl7.fhir.dstu3.model.Type src) throws FHIRException {
147    if (src == null || src.isEmpty()) return null;
148    if (src instanceof org.hl7.fhir.dstu3.model.Base64BinaryType)
149      return Base64Binary10_30.convertBase64Binary((org.hl7.fhir.dstu3.model.Base64BinaryType) src);
150    if (src instanceof org.hl7.fhir.dstu3.model.BooleanType)
151      return Boolean10_30.convertBoolean((org.hl7.fhir.dstu3.model.BooleanType) src);
152    if (src instanceof org.hl7.fhir.dstu3.model.CodeType)
153      return Code10_30.convertCode((org.hl7.fhir.dstu3.model.CodeType) src);
154    if (src instanceof org.hl7.fhir.dstu3.model.DateType)
155      return Date10_30.convertDate((org.hl7.fhir.dstu3.model.DateType) src);
156    if (src instanceof org.hl7.fhir.dstu3.model.DateTimeType)
157      return DateTime10_30.convertDateTime((org.hl7.fhir.dstu3.model.DateTimeType) src);
158    if (src instanceof org.hl7.fhir.dstu3.model.DecimalType)
159      return Decimal10_30.convertDecimal((org.hl7.fhir.dstu3.model.DecimalType) src);
160    if (src instanceof org.hl7.fhir.dstu3.model.IdType) return Id10_30.convertId((org.hl7.fhir.dstu3.model.IdType) src);
161    if (src instanceof org.hl7.fhir.dstu3.model.InstantType)
162      return Instant10_30.convertInstant((org.hl7.fhir.dstu3.model.InstantType) src);
163    if (src instanceof org.hl7.fhir.dstu3.model.PositiveIntType)
164      return PositiveInt10_30.convertPositiveInt((org.hl7.fhir.dstu3.model.PositiveIntType) src);
165    if (src instanceof org.hl7.fhir.dstu3.model.UnsignedIntType)
166      return UnsignedInt10_30.convertUnsignedInt((org.hl7.fhir.dstu3.model.UnsignedIntType) src);
167    if (src instanceof org.hl7.fhir.dstu3.model.IntegerType)
168      return Integer10_30.convertInteger((org.hl7.fhir.dstu3.model.IntegerType) src);
169    if (src instanceof org.hl7.fhir.dstu3.model.MarkdownType)
170      return MarkDown10_30.convertMarkdown((org.hl7.fhir.dstu3.model.MarkdownType) src);
171    if (src instanceof org.hl7.fhir.dstu3.model.OidType)
172      return Oid10_30.convertOid((org.hl7.fhir.dstu3.model.OidType) src);
173    if (src instanceof org.hl7.fhir.dstu3.model.StringType)
174      return String10_30.convertString((org.hl7.fhir.dstu3.model.StringType) src);
175    if (src instanceof org.hl7.fhir.dstu3.model.TimeType)
176      return Time10_30.convertTime((org.hl7.fhir.dstu3.model.TimeType) src);
177    if (src instanceof org.hl7.fhir.dstu3.model.UuidType)
178      return Uuid10_30.convertUuid((org.hl7.fhir.dstu3.model.UuidType) src);
179    if (src instanceof org.hl7.fhir.dstu3.model.UriType)
180      return Uri10_30.convertUri((org.hl7.fhir.dstu3.model.UriType) src);
181    if (src instanceof org.hl7.fhir.dstu3.model.Extension)
182      return Extension10_30.convertExtension((org.hl7.fhir.dstu3.model.Extension) src);
183    if (src instanceof org.hl7.fhir.dstu3.model.Narrative)
184      return Narrative10_30.convertNarrative((org.hl7.fhir.dstu3.model.Narrative) src);
185    if (src instanceof org.hl7.fhir.dstu3.model.Annotation)
186      return Annotation10_30.convertAnnotation((org.hl7.fhir.dstu3.model.Annotation) src);
187    if (src instanceof org.hl7.fhir.dstu3.model.Attachment)
188      return Attachment10_30.convertAttachment((org.hl7.fhir.dstu3.model.Attachment) src);
189    if (src instanceof org.hl7.fhir.dstu3.model.CodeableConcept)
190      return CodeableConcept10_30.convertCodeableConcept((org.hl7.fhir.dstu3.model.CodeableConcept) src);
191    if (src instanceof org.hl7.fhir.dstu3.model.Coding)
192      return Coding10_30.convertCoding((org.hl7.fhir.dstu3.model.Coding) src);
193    if (src instanceof org.hl7.fhir.dstu3.model.Identifier)
194      return Identifier10_30.convertIdentifier((org.hl7.fhir.dstu3.model.Identifier) src);
195    if (src instanceof org.hl7.fhir.dstu3.model.Period)
196      return Period10_30.convertPeriod((org.hl7.fhir.dstu3.model.Period) src);
197    if (src instanceof org.hl7.fhir.dstu3.model.Age) return Age10_30.convertAge((org.hl7.fhir.dstu3.model.Age) src);
198    if (src instanceof org.hl7.fhir.dstu3.model.Count)
199      return Count10_30.convertCount((org.hl7.fhir.dstu3.model.Count) src);
200    if (src instanceof org.hl7.fhir.dstu3.model.Distance)
201      return Distance10_30.convertDistance((org.hl7.fhir.dstu3.model.Distance) src);
202    if (src instanceof org.hl7.fhir.dstu3.model.Duration)
203      return Duration10_30.convertDuration((org.hl7.fhir.dstu3.model.Duration) src);
204    if (src instanceof org.hl7.fhir.dstu3.model.Money)
205      return Money10_30.convertMoney((org.hl7.fhir.dstu3.model.Money) src);
206    if (src instanceof org.hl7.fhir.dstu3.model.SimpleQuantity)
207      return SimpleQuantity10_30.convertSimpleQuantity((org.hl7.fhir.dstu3.model.SimpleQuantity) src);
208    if (src instanceof org.hl7.fhir.dstu3.model.Quantity)
209      return Quantity10_30.convertQuantity((org.hl7.fhir.dstu3.model.Quantity) src);
210    if (src instanceof org.hl7.fhir.dstu3.model.Range)
211      return Range10_30.convertRange((org.hl7.fhir.dstu3.model.Range) src);
212    if (src instanceof org.hl7.fhir.dstu3.model.Ratio)
213      return Ratio10_30.convertRatio((org.hl7.fhir.dstu3.model.Ratio) src);
214    if (src instanceof org.hl7.fhir.dstu3.model.Reference)
215      return Reference10_30.convertReference((org.hl7.fhir.dstu3.model.Reference) src);
216    if (src instanceof org.hl7.fhir.dstu3.model.SampledData)
217      return SampledData10_30.convertSampledData((org.hl7.fhir.dstu3.model.SampledData) src);
218    if (src instanceof org.hl7.fhir.dstu3.model.Signature)
219      return Signature10_30.convertSignature((org.hl7.fhir.dstu3.model.Signature) src);
220    if (src instanceof org.hl7.fhir.dstu3.model.Address)
221      return Address10_30.convertAddress((org.hl7.fhir.dstu3.model.Address) src);
222    if (src instanceof org.hl7.fhir.dstu3.model.ContactPoint)
223      return ContactPoint10_30.convertContactPoint((org.hl7.fhir.dstu3.model.ContactPoint) src);
224    if (src instanceof org.hl7.fhir.dstu3.model.ElementDefinition)
225      return ElementDefinition10_30.convertElementDefinition((org.hl7.fhir.dstu3.model.ElementDefinition) src);
226    if (src instanceof org.hl7.fhir.dstu3.model.HumanName)
227      return HumanName10_30.convertHumanName((org.hl7.fhir.dstu3.model.HumanName) src);
228    if (src instanceof org.hl7.fhir.dstu3.model.Meta) return Meta10_30.convertMeta((org.hl7.fhir.dstu3.model.Meta) src);
229    if (src instanceof org.hl7.fhir.dstu3.model.Timing)
230      return Timing10_30.convertTiming((org.hl7.fhir.dstu3.model.Timing) src);
231    if (advisor.failFastOnNullOrUnknownEntry()) {
232      throw new FHIRException("The type " + src.fhirType()+" cannot be converted from R3 to R2");
233    } else {
234      return null;
235    }
236  }
237}