001package org.hl7.fhir.convertors.conv30_40.datatypes30_40;
002
003import org.hl7.fhir.convertors.advisors.impl.BaseAdvisor_30_40;
004import org.hl7.fhir.convertors.conv30_40.datatypes30_40.complextypes30_40.Address30_40;
005import org.hl7.fhir.convertors.conv30_40.datatypes30_40.complextypes30_40.Age30_40;
006import org.hl7.fhir.convertors.conv30_40.datatypes30_40.complextypes30_40.Annotation30_40;
007import org.hl7.fhir.convertors.conv30_40.datatypes30_40.complextypes30_40.Attachment30_40;
008import org.hl7.fhir.convertors.conv30_40.datatypes30_40.complextypes30_40.CodeableConcept30_40;
009import org.hl7.fhir.convertors.conv30_40.datatypes30_40.complextypes30_40.Coding30_40;
010import org.hl7.fhir.convertors.conv30_40.datatypes30_40.complextypes30_40.ContactPoint30_40;
011import org.hl7.fhir.convertors.conv30_40.datatypes30_40.complextypes30_40.Count30_40;
012import org.hl7.fhir.convertors.conv30_40.datatypes30_40.complextypes30_40.Distance30_40;
013import org.hl7.fhir.convertors.conv30_40.datatypes30_40.complextypes30_40.Duration30_40;
014import org.hl7.fhir.convertors.conv30_40.datatypes30_40.complextypes30_40.HumanName30_40;
015import org.hl7.fhir.convertors.conv30_40.datatypes30_40.complextypes30_40.Identifier30_40;
016import org.hl7.fhir.convertors.conv30_40.datatypes30_40.complextypes30_40.Money30_40;
017import org.hl7.fhir.convertors.conv30_40.datatypes30_40.complextypes30_40.Period30_40;
018import org.hl7.fhir.convertors.conv30_40.datatypes30_40.complextypes30_40.Quantity30_40;
019import org.hl7.fhir.convertors.conv30_40.datatypes30_40.complextypes30_40.Range30_40;
020import org.hl7.fhir.convertors.conv30_40.datatypes30_40.complextypes30_40.Ratio30_40;
021import org.hl7.fhir.convertors.conv30_40.datatypes30_40.complextypes30_40.SampledData30_40;
022import org.hl7.fhir.convertors.conv30_40.datatypes30_40.complextypes30_40.Signature30_40;
023import org.hl7.fhir.convertors.conv30_40.datatypes30_40.complextypes30_40.SimpleQuantity30_40;
024import org.hl7.fhir.convertors.conv30_40.datatypes30_40.complextypes30_40.Timing30_40;
025import org.hl7.fhir.convertors.conv30_40.datatypes30_40.primitivetypes30_40.Base64Binary30_40;
026import org.hl7.fhir.convertors.conv30_40.datatypes30_40.primitivetypes30_40.Boolean30_40;
027import org.hl7.fhir.convertors.conv30_40.datatypes30_40.primitivetypes30_40.Code30_40;
028import org.hl7.fhir.convertors.conv30_40.datatypes30_40.primitivetypes30_40.Date30_40;
029import org.hl7.fhir.convertors.conv30_40.datatypes30_40.primitivetypes30_40.DateTime30_40;
030import org.hl7.fhir.convertors.conv30_40.datatypes30_40.primitivetypes30_40.Decimal30_40;
031import org.hl7.fhir.convertors.conv30_40.datatypes30_40.primitivetypes30_40.Id30_40;
032import org.hl7.fhir.convertors.conv30_40.datatypes30_40.primitivetypes30_40.Instant30_40;
033import org.hl7.fhir.convertors.conv30_40.datatypes30_40.primitivetypes30_40.Integer30_40;
034import org.hl7.fhir.convertors.conv30_40.datatypes30_40.primitivetypes30_40.MarkDown30_40;
035import org.hl7.fhir.convertors.conv30_40.datatypes30_40.primitivetypes30_40.Oid30_40;
036import org.hl7.fhir.convertors.conv30_40.datatypes30_40.primitivetypes30_40.PositiveInt30_40;
037import org.hl7.fhir.convertors.conv30_40.datatypes30_40.primitivetypes30_40.String30_40;
038import org.hl7.fhir.convertors.conv30_40.datatypes30_40.primitivetypes30_40.Time30_40;
039import org.hl7.fhir.convertors.conv30_40.datatypes30_40.primitivetypes30_40.UnsignedInt30_40;
040import org.hl7.fhir.convertors.conv30_40.datatypes30_40.primitivetypes30_40.Uri30_40;
041import org.hl7.fhir.convertors.conv30_40.datatypes30_40.primitivetypes30_40.Uuid30_40;
042import org.hl7.fhir.exceptions.FHIRException;
043
044public class Type30_40 {
045
046  private final BaseAdvisor_30_40 advisor;
047
048  public Type30_40(BaseAdvisor_30_40 advisor) {
049    this.advisor = advisor;
050  }
051
052  public org.hl7.fhir.r4.model.Type convertType(org.hl7.fhir.dstu3.model.Type src) throws FHIRException {
053    if (src == null || src.isEmpty()) return null;
054    if (src instanceof org.hl7.fhir.dstu3.model.Base64BinaryType)
055      return Base64Binary30_40.convertBase64Binary((org.hl7.fhir.dstu3.model.Base64BinaryType) src);
056    if (src instanceof org.hl7.fhir.dstu3.model.BooleanType)
057      return Boolean30_40.convertBoolean((org.hl7.fhir.dstu3.model.BooleanType) src);
058    if (src instanceof org.hl7.fhir.dstu3.model.CodeType)
059      return Code30_40.convertCode((org.hl7.fhir.dstu3.model.CodeType) src);
060    if (src instanceof org.hl7.fhir.dstu3.model.DateType)
061      return Date30_40.convertDate((org.hl7.fhir.dstu3.model.DateType) src);
062    if (src instanceof org.hl7.fhir.dstu3.model.DateTimeType)
063      return DateTime30_40.convertDateTime((org.hl7.fhir.dstu3.model.DateTimeType) src);
064    if (src instanceof org.hl7.fhir.dstu3.model.DecimalType)
065      return Decimal30_40.convertDecimal((org.hl7.fhir.dstu3.model.DecimalType) src);
066    if (src instanceof org.hl7.fhir.dstu3.model.IdType) return Id30_40.convertId((org.hl7.fhir.dstu3.model.IdType) src);
067    if (src instanceof org.hl7.fhir.dstu3.model.InstantType)
068      return Instant30_40.convertInstant((org.hl7.fhir.dstu3.model.InstantType) src);
069    if (src instanceof org.hl7.fhir.dstu3.model.PositiveIntType)
070      return PositiveInt30_40.convertPositiveInt((org.hl7.fhir.dstu3.model.PositiveIntType) src);
071    if (src instanceof org.hl7.fhir.dstu3.model.UnsignedIntType)
072      return UnsignedInt30_40.convertUnsignedInt((org.hl7.fhir.dstu3.model.UnsignedIntType) src);
073    if (src instanceof org.hl7.fhir.dstu3.model.IntegerType)
074      return Integer30_40.convertInteger((org.hl7.fhir.dstu3.model.IntegerType) src);
075    if (src instanceof org.hl7.fhir.dstu3.model.MarkdownType)
076      return MarkDown30_40.convertMarkdown((org.hl7.fhir.dstu3.model.MarkdownType) src);
077    if (src instanceof org.hl7.fhir.dstu3.model.OidType)
078      return Oid30_40.convertOid((org.hl7.fhir.dstu3.model.OidType) src);
079    if (src instanceof org.hl7.fhir.dstu3.model.StringType)
080      return String30_40.convertString((org.hl7.fhir.dstu3.model.StringType) src);
081    if (src instanceof org.hl7.fhir.dstu3.model.TimeType)
082      return Time30_40.convertTime((org.hl7.fhir.dstu3.model.TimeType) src);
083    if (src instanceof org.hl7.fhir.dstu3.model.UuidType)
084      return Uuid30_40.convertUuid((org.hl7.fhir.dstu3.model.UuidType) src);
085    if (src instanceof org.hl7.fhir.dstu3.model.UriType)
086      return Uri30_40.convertUri((org.hl7.fhir.dstu3.model.UriType) src);
087    if (src instanceof org.hl7.fhir.dstu3.model.Extension)
088      return Extension30_40.convertExtension((org.hl7.fhir.dstu3.model.Extension) src);
089    if (src instanceof org.hl7.fhir.dstu3.model.Narrative)
090      return Narrative30_40.convertNarrative((org.hl7.fhir.dstu3.model.Narrative) src);
091    if (src instanceof org.hl7.fhir.dstu3.model.Age) return Age30_40.convertAge((org.hl7.fhir.dstu3.model.Age) src);
092    if (src instanceof org.hl7.fhir.dstu3.model.Annotation)
093      return Annotation30_40.convertAnnotation((org.hl7.fhir.dstu3.model.Annotation) src);
094    if (src instanceof org.hl7.fhir.dstu3.model.Attachment)
095      return Attachment30_40.convertAttachment((org.hl7.fhir.dstu3.model.Attachment) src);
096    if (src instanceof org.hl7.fhir.dstu3.model.CodeableConcept)
097      return CodeableConcept30_40.convertCodeableConcept((org.hl7.fhir.dstu3.model.CodeableConcept) src);
098    if (src instanceof org.hl7.fhir.dstu3.model.Coding)
099      return Coding30_40.convertCoding((org.hl7.fhir.dstu3.model.Coding) src);
100    if (src instanceof org.hl7.fhir.dstu3.model.Count)
101      return Count30_40.convertCount((org.hl7.fhir.dstu3.model.Count) src);
102    if (src instanceof org.hl7.fhir.dstu3.model.Distance)
103      return Distance30_40.convertDistance((org.hl7.fhir.dstu3.model.Distance) src);
104    if (src instanceof org.hl7.fhir.dstu3.model.Duration)
105      return Duration30_40.convertDuration((org.hl7.fhir.dstu3.model.Duration) src);
106    if (src instanceof org.hl7.fhir.dstu3.model.Identifier)
107      return Identifier30_40.convertIdentifier((org.hl7.fhir.dstu3.model.Identifier) src);
108    if (src instanceof org.hl7.fhir.dstu3.model.Money)
109      return Money30_40.convertMoney((org.hl7.fhir.dstu3.model.Money) src);
110    if (src instanceof org.hl7.fhir.dstu3.model.Period)
111      return Period30_40.convertPeriod((org.hl7.fhir.dstu3.model.Period) src);
112    if (src instanceof org.hl7.fhir.dstu3.model.SimpleQuantity)
113      return SimpleQuantity30_40.convertSimpleQuantity((org.hl7.fhir.dstu3.model.SimpleQuantity) src);
114    if (src instanceof org.hl7.fhir.dstu3.model.Quantity)
115      return Quantity30_40.convertQuantity((org.hl7.fhir.dstu3.model.Quantity) src);
116    if (src instanceof org.hl7.fhir.dstu3.model.Range)
117      return Range30_40.convertRange((org.hl7.fhir.dstu3.model.Range) src);
118    if (src instanceof org.hl7.fhir.dstu3.model.Ratio)
119      return Ratio30_40.convertRatio((org.hl7.fhir.dstu3.model.Ratio) src);
120    if (src instanceof org.hl7.fhir.dstu3.model.Reference)
121      return Reference30_40.convertReference((org.hl7.fhir.dstu3.model.Reference) src);
122    if (src instanceof org.hl7.fhir.dstu3.model.SampledData)
123      return SampledData30_40.convertSampledData((org.hl7.fhir.dstu3.model.SampledData) src);
124    if (src instanceof org.hl7.fhir.dstu3.model.Signature)
125      return Signature30_40.convertSignature((org.hl7.fhir.dstu3.model.Signature) src);
126    if (src instanceof org.hl7.fhir.dstu3.model.Address)
127      return Address30_40.convertAddress((org.hl7.fhir.dstu3.model.Address) src);
128    if (src instanceof org.hl7.fhir.dstu3.model.ContactDetail)
129      return ContactDetail30_40.convertContactDetail((org.hl7.fhir.dstu3.model.ContactDetail) src);
130    if (src instanceof org.hl7.fhir.dstu3.model.ContactPoint)
131      return ContactPoint30_40.convertContactPoint((org.hl7.fhir.dstu3.model.ContactPoint) src);
132    if (src instanceof org.hl7.fhir.dstu3.model.Contributor)
133      return Contributor30_40.convertContributor((org.hl7.fhir.dstu3.model.Contributor) src);
134    if (src instanceof org.hl7.fhir.dstu3.model.Dosage)
135      return Dosage30_40.convertDosage((org.hl7.fhir.dstu3.model.Dosage) src);
136    if (src instanceof org.hl7.fhir.dstu3.model.HumanName)
137      return HumanName30_40.convertHumanName((org.hl7.fhir.dstu3.model.HumanName) src);
138    if (src instanceof org.hl7.fhir.dstu3.model.Meta) return Meta30_40.convertMeta((org.hl7.fhir.dstu3.model.Meta) src);
139    if (src instanceof org.hl7.fhir.dstu3.model.ParameterDefinition)
140      return ParameterDefinition30_40.convertParameterDefinition((org.hl7.fhir.dstu3.model.ParameterDefinition) src);
141    if (src instanceof org.hl7.fhir.dstu3.model.RelatedArtifact)
142      return RelatedArtifact30_40.convertRelatedArtifact((org.hl7.fhir.dstu3.model.RelatedArtifact) src);
143    if (src instanceof org.hl7.fhir.dstu3.model.Timing)
144      return Timing30_40.convertTiming((org.hl7.fhir.dstu3.model.Timing) src);
145    if (src instanceof org.hl7.fhir.dstu3.model.UsageContext)
146      return Timing30_40.convertUsageContext((org.hl7.fhir.dstu3.model.UsageContext) src);
147    if (src instanceof org.hl7.fhir.dstu3.model.ElementDefinition)
148      return ElementDefinition30_40.convertElementDefinition((org.hl7.fhir.dstu3.model.ElementDefinition) src);
149    if (src instanceof org.hl7.fhir.dstu3.model.DataRequirement)
150      return TriggerDefinition30_40.convertDataRequirement((org.hl7.fhir.dstu3.model.DataRequirement) src);
151    if (src instanceof org.hl7.fhir.dstu3.model.TriggerDefinition)
152      return TriggerDefinition30_40.convertTriggerDefinition((org.hl7.fhir.dstu3.model.TriggerDefinition) src);
153    if (advisor.failFastOnNullOrUnknownEntry()) {
154      throw new FHIRException("The type " + src.fhirType()+" cannot be converted from R3 to R4");
155    } else {
156      return null;
157    }
158  }
159
160  public org.hl7.fhir.dstu3.model.Type convertType(org.hl7.fhir.r4.model.Type src) throws FHIRException {
161    if (src == null || src.isEmpty()) return null;
162    if (src instanceof org.hl7.fhir.r4.model.Base64BinaryType)
163      return Base64Binary30_40.convertBase64Binary((org.hl7.fhir.r4.model.Base64BinaryType) src);
164    if (src instanceof org.hl7.fhir.r4.model.BooleanType)
165      return Boolean30_40.convertBoolean((org.hl7.fhir.r4.model.BooleanType) src);
166    if (src instanceof org.hl7.fhir.r4.model.CodeType)
167      return Code30_40.convertCode((org.hl7.fhir.r4.model.CodeType) src);
168    if (src instanceof org.hl7.fhir.r4.model.DateType)
169      return Date30_40.convertDate((org.hl7.fhir.r4.model.DateType) src);
170    if (src instanceof org.hl7.fhir.r4.model.DateTimeType)
171      return DateTime30_40.convertDateTime((org.hl7.fhir.r4.model.DateTimeType) src);
172    if (src instanceof org.hl7.fhir.r4.model.DecimalType)
173      return Decimal30_40.convertDecimal((org.hl7.fhir.r4.model.DecimalType) src);
174    if (src instanceof org.hl7.fhir.r4.model.IdType) return Id30_40.convertId((org.hl7.fhir.r4.model.IdType) src);
175    if (src instanceof org.hl7.fhir.r4.model.InstantType)
176      return Instant30_40.convertInstant((org.hl7.fhir.r4.model.InstantType) src);
177    if (src instanceof org.hl7.fhir.r4.model.PositiveIntType)
178      return PositiveInt30_40.convertPositiveInt((org.hl7.fhir.r4.model.PositiveIntType) src);
179    if (src instanceof org.hl7.fhir.r4.model.UnsignedIntType)
180      return UnsignedInt30_40.convertUnsignedInt((org.hl7.fhir.r4.model.UnsignedIntType) src);
181    if (src instanceof org.hl7.fhir.r4.model.IntegerType)
182      return Integer30_40.convertInteger((org.hl7.fhir.r4.model.IntegerType) src);
183    if (src instanceof org.hl7.fhir.r4.model.MarkdownType)
184      return MarkDown30_40.convertMarkdown((org.hl7.fhir.r4.model.MarkdownType) src);
185    if (src instanceof org.hl7.fhir.r4.model.OidType) return Oid30_40.convertOid((org.hl7.fhir.r4.model.OidType) src);
186    if (src instanceof org.hl7.fhir.r4.model.StringType)
187      return String30_40.convertString((org.hl7.fhir.r4.model.StringType) src);
188    if (src instanceof org.hl7.fhir.r4.model.TimeType)
189      return Time30_40.convertTime((org.hl7.fhir.r4.model.TimeType) src);
190    if (src instanceof org.hl7.fhir.r4.model.UuidType)
191      return Uuid30_40.convertUuid((org.hl7.fhir.r4.model.UuidType) src);
192    if (src instanceof org.hl7.fhir.r4.model.UriType) return Uri30_40.convertUri((org.hl7.fhir.r4.model.UriType) src);
193    if (src instanceof org.hl7.fhir.r4.model.Extension)
194      return Extension30_40.convertExtension((org.hl7.fhir.r4.model.Extension) src);
195    if (src instanceof org.hl7.fhir.r4.model.Narrative)
196      return Narrative30_40.convertNarrative((org.hl7.fhir.r4.model.Narrative) src);
197    if (src instanceof org.hl7.fhir.r4.model.Age) return Age30_40.convertAge((org.hl7.fhir.r4.model.Age) src);
198    if (src instanceof org.hl7.fhir.r4.model.Annotation)
199      return Annotation30_40.convertAnnotation((org.hl7.fhir.r4.model.Annotation) src);
200    if (src instanceof org.hl7.fhir.r4.model.Attachment)
201      return Attachment30_40.convertAttachment((org.hl7.fhir.r4.model.Attachment) src);
202    if (src instanceof org.hl7.fhir.r4.model.CodeableConcept)
203      return CodeableConcept30_40.convertCodeableConcept((org.hl7.fhir.r4.model.CodeableConcept) src);
204    if (src instanceof org.hl7.fhir.r4.model.Coding)
205      return Coding30_40.convertCoding((org.hl7.fhir.r4.model.Coding) src);
206    if (src instanceof org.hl7.fhir.r4.model.Count) return Count30_40.convertCount((org.hl7.fhir.r4.model.Count) src);
207    if (src instanceof org.hl7.fhir.r4.model.Distance)
208      return Distance30_40.convertDistance((org.hl7.fhir.r4.model.Distance) src);
209    if (src instanceof org.hl7.fhir.r4.model.Duration)
210      return Duration30_40.convertDuration((org.hl7.fhir.r4.model.Duration) src);
211    if (src instanceof org.hl7.fhir.r4.model.Identifier)
212      return Identifier30_40.convertIdentifier((org.hl7.fhir.r4.model.Identifier) src);
213    if (src instanceof org.hl7.fhir.r4.model.Money) return Money30_40.convertMoney((org.hl7.fhir.r4.model.Money) src);
214    if (src instanceof org.hl7.fhir.r4.model.Period)
215      return Period30_40.convertPeriod((org.hl7.fhir.r4.model.Period) src);
216    if (src instanceof org.hl7.fhir.r4.model.SimpleQuantity)
217      return SimpleQuantity30_40.convertSimpleQuantity((org.hl7.fhir.r4.model.SimpleQuantity) src);
218    if (src instanceof org.hl7.fhir.r4.model.Quantity)
219      return Quantity30_40.convertQuantity((org.hl7.fhir.r4.model.Quantity) src);
220    if (src instanceof org.hl7.fhir.r4.model.Range) return Range30_40.convertRange((org.hl7.fhir.r4.model.Range) src);
221    if (src instanceof org.hl7.fhir.r4.model.Ratio) return Ratio30_40.convertRatio((org.hl7.fhir.r4.model.Ratio) src);
222    if (src instanceof org.hl7.fhir.r4.model.Reference)
223      return Reference30_40.convertReference((org.hl7.fhir.r4.model.Reference) src);
224    if (src instanceof org.hl7.fhir.r4.model.SampledData)
225      return SampledData30_40.convertSampledData((org.hl7.fhir.r4.model.SampledData) src);
226    if (src instanceof org.hl7.fhir.r4.model.Signature)
227      return Signature30_40.convertSignature((org.hl7.fhir.r4.model.Signature) src);
228    if (src instanceof org.hl7.fhir.r4.model.Address)
229      return Address30_40.convertAddress((org.hl7.fhir.r4.model.Address) src);
230    if (src instanceof org.hl7.fhir.r4.model.ContactDetail)
231      return ContactDetail30_40.convertContactDetail((org.hl7.fhir.r4.model.ContactDetail) src);
232    if (src instanceof org.hl7.fhir.r4.model.ContactPoint)
233      return ContactPoint30_40.convertContactPoint((org.hl7.fhir.r4.model.ContactPoint) src);
234    if (src instanceof org.hl7.fhir.r4.model.Contributor)
235      return Contributor30_40.convertContributor((org.hl7.fhir.r4.model.Contributor) src);
236    if (src instanceof org.hl7.fhir.r4.model.Dosage)
237      return Dosage30_40.convertDosage((org.hl7.fhir.r4.model.Dosage) src);
238    if (src instanceof org.hl7.fhir.r4.model.HumanName)
239      return HumanName30_40.convertHumanName((org.hl7.fhir.r4.model.HumanName) src);
240    if (src instanceof org.hl7.fhir.r4.model.Meta) return Meta30_40.convertMeta((org.hl7.fhir.r4.model.Meta) src);
241    if (src instanceof org.hl7.fhir.r4.model.ParameterDefinition)
242      return ParameterDefinition30_40.convertParameterDefinition((org.hl7.fhir.r4.model.ParameterDefinition) src);
243    if (src instanceof org.hl7.fhir.r4.model.RelatedArtifact)
244      return RelatedArtifact30_40.convertRelatedArtifact((org.hl7.fhir.r4.model.RelatedArtifact) src);
245    if (src instanceof org.hl7.fhir.r4.model.Timing)
246      return Timing30_40.convertTiming((org.hl7.fhir.r4.model.Timing) src);
247    if (src instanceof org.hl7.fhir.r4.model.UsageContext)
248      return Timing30_40.convertUsageContext((org.hl7.fhir.r4.model.UsageContext) src);
249    if (src instanceof org.hl7.fhir.r4.model.ElementDefinition)
250      return ElementDefinition30_40.convertElementDefinition((org.hl7.fhir.r4.model.ElementDefinition) src);
251    if (src instanceof org.hl7.fhir.r4.model.DataRequirement)
252      return TriggerDefinition30_40.convertDataRequirement((org.hl7.fhir.r4.model.DataRequirement) src);
253    if (src instanceof org.hl7.fhir.r4.model.TriggerDefinition)
254      return TriggerDefinition30_40.convertTriggerDefinition((org.hl7.fhir.r4.model.TriggerDefinition) src);
255    if (advisor.failFastOnNullOrUnknownEntry()) {
256      throw new FHIRException("The type " + src.fhirType()+" cannot be converted from R4 to R3");
257    } else {
258      return null;
259    }
260  }
261}