001package org.hl7.fhir.convertors.conv40_50.datatypes40_50;
002
003import org.hl7.fhir.convertors.advisors.impl.BaseAdvisor_40_50;
004import org.hl7.fhir.convertors.conv40_50.datatypes40_50.general40_50.Address40_50;
005import org.hl7.fhir.convertors.conv40_50.datatypes40_50.general40_50.Age40_50;
006import org.hl7.fhir.convertors.conv40_50.datatypes40_50.general40_50.Annotation40_50;
007import org.hl7.fhir.convertors.conv40_50.datatypes40_50.general40_50.Attachment40_50;
008import org.hl7.fhir.convertors.conv40_50.datatypes40_50.general40_50.CodeableConcept40_50;
009import org.hl7.fhir.convertors.conv40_50.datatypes40_50.general40_50.Coding40_50;
010import org.hl7.fhir.convertors.conv40_50.datatypes40_50.general40_50.ContactPoint40_50;
011import org.hl7.fhir.convertors.conv40_50.datatypes40_50.general40_50.Count40_50;
012import org.hl7.fhir.convertors.conv40_50.datatypes40_50.general40_50.Distance40_50;
013import org.hl7.fhir.convertors.conv40_50.datatypes40_50.general40_50.Duration40_50;
014import org.hl7.fhir.convertors.conv40_50.datatypes40_50.general40_50.HumanName40_50;
015import org.hl7.fhir.convertors.conv40_50.datatypes40_50.general40_50.Identifier40_50;
016import org.hl7.fhir.convertors.conv40_50.datatypes40_50.general40_50.Money40_50;
017import org.hl7.fhir.convertors.conv40_50.datatypes40_50.general40_50.MoneyQuantity40_50;
018import org.hl7.fhir.convertors.conv40_50.datatypes40_50.general40_50.Period40_50;
019import org.hl7.fhir.convertors.conv40_50.datatypes40_50.general40_50.Quantity40_50;
020import org.hl7.fhir.convertors.conv40_50.datatypes40_50.general40_50.Range40_50;
021import org.hl7.fhir.convertors.conv40_50.datatypes40_50.general40_50.Ratio40_50;
022import org.hl7.fhir.convertors.conv40_50.datatypes40_50.general40_50.SampledData40_50;
023import org.hl7.fhir.convertors.conv40_50.datatypes40_50.general40_50.Signature40_50;
024import org.hl7.fhir.convertors.conv40_50.datatypes40_50.general40_50.SimpleQuantity40_50;
025import org.hl7.fhir.convertors.conv40_50.datatypes40_50.general40_50.Timing40_50;
026import org.hl7.fhir.convertors.conv40_50.datatypes40_50.metadata40_50.ContactDetail40_50;
027import org.hl7.fhir.convertors.conv40_50.datatypes40_50.metadata40_50.Contributor40_50;
028import org.hl7.fhir.convertors.conv40_50.datatypes40_50.metadata40_50.DataRequirement40_50;
029import org.hl7.fhir.convertors.conv40_50.datatypes40_50.metadata40_50.Expression40_50;
030import org.hl7.fhir.convertors.conv40_50.datatypes40_50.metadata40_50.ParameterDefinition40_50;
031import org.hl7.fhir.convertors.conv40_50.datatypes40_50.metadata40_50.RelatedArtifact40_50;
032import org.hl7.fhir.convertors.conv40_50.datatypes40_50.metadata40_50.TriggerDefinition40_50;
033import org.hl7.fhir.convertors.conv40_50.datatypes40_50.metadata40_50.UsageContext40_50;
034import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.Base64Binary40_50;
035import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.Boolean40_50;
036import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.Canonical40_50;
037import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.Code40_50;
038import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.Date40_50;
039import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.DateTime40_50;
040import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.Decimal40_50;
041import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.Id40_50;
042import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.Instant40_50;
043import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.Integer40_50;
044import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.MarkDown40_50;
045import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.Oid40_50;
046import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.PositiveInt40_50;
047import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.String40_50;
048import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.Time40_50;
049import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.UnsignedInt40_50;
050import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.Uri40_50;
051import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.Url40_50;
052import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.Uuid40_50;
053import org.hl7.fhir.convertors.conv40_50.datatypes40_50.special40_50.Dosage40_50;
054import org.hl7.fhir.convertors.conv40_50.datatypes40_50.special40_50.ElementDefinition40_50;
055import org.hl7.fhir.convertors.conv40_50.datatypes40_50.special40_50.Extension40_50;
056import org.hl7.fhir.convertors.conv40_50.datatypes40_50.special40_50.Meta40_50;
057import org.hl7.fhir.convertors.conv40_50.datatypes40_50.special40_50.Narrative40_50;
058import org.hl7.fhir.convertors.conv40_50.datatypes40_50.special40_50.Reference40_50;
059import org.hl7.fhir.convertors.conv40_50.resources40_50.MarketingStatus40_50;
060import org.hl7.fhir.convertors.conv40_50.resources40_50.ProdCharacteristic40_50;
061import org.hl7.fhir.convertors.conv40_50.resources40_50.ProductShelfLife40_50;
062import org.hl7.fhir.convertors.conv40_50.resources40_50.SubstanceAmount40_50;
063import org.hl7.fhir.exceptions.FHIRException;
064
065public class Type40_50 {
066
067  private final BaseAdvisor_40_50 advisor;
068
069  public Type40_50(BaseAdvisor_40_50 advisor) {
070    this.advisor = advisor;
071  }
072
073  public org.hl7.fhir.r5.model.DataType convertType(org.hl7.fhir.r4.model.Type src) throws FHIRException {
074    if (src == null || src.isEmpty()) return null;
075    if (src instanceof org.hl7.fhir.r4.model.Base64BinaryType)
076      return Base64Binary40_50.convertBase64Binary((org.hl7.fhir.r4.model.Base64BinaryType) src);
077    if (src instanceof org.hl7.fhir.r4.model.BooleanType)
078      return Boolean40_50.convertBoolean((org.hl7.fhir.r4.model.BooleanType) src);
079    if (src instanceof org.hl7.fhir.r4.model.CanonicalType)
080      return Canonical40_50.convertCanonical((org.hl7.fhir.r4.model.CanonicalType) src);
081    if (src instanceof org.hl7.fhir.r4.model.CodeType)
082      return Code40_50.convertCode((org.hl7.fhir.r4.model.CodeType) src);
083    if (src instanceof org.hl7.fhir.r4.model.DateType)
084      return Date40_50.convertDate((org.hl7.fhir.r4.model.DateType) src);
085    if (src instanceof org.hl7.fhir.r4.model.DateTimeType)
086      return DateTime40_50.convertDateTime((org.hl7.fhir.r4.model.DateTimeType) src);
087    if (src instanceof org.hl7.fhir.r4.model.DecimalType)
088      return Decimal40_50.convertDecimal((org.hl7.fhir.r4.model.DecimalType) src);
089    if (src instanceof org.hl7.fhir.r4.model.IdType) return Id40_50.convertId((org.hl7.fhir.r4.model.IdType) src);
090    if (src instanceof org.hl7.fhir.r4.model.InstantType)
091      return Instant40_50.convertInstant((org.hl7.fhir.r4.model.InstantType) src);
092    if (src instanceof org.hl7.fhir.r4.model.UnsignedIntType)
093      return UnsignedInt40_50.convertUnsignedInt((org.hl7.fhir.r4.model.UnsignedIntType) src);
094    if (src instanceof org.hl7.fhir.r4.model.PositiveIntType)
095      return PositiveInt40_50.convertPositiveInt((org.hl7.fhir.r4.model.PositiveIntType) src);
096    if (src instanceof org.hl7.fhir.r4.model.IntegerType)
097      return Integer40_50.convertInteger((org.hl7.fhir.r4.model.IntegerType) src);
098    if (src instanceof org.hl7.fhir.r4.model.MarkdownType)
099      return MarkDown40_50.convertMarkdown((org.hl7.fhir.r4.model.MarkdownType) src);
100    if (src instanceof org.hl7.fhir.r4.model.OidType) return Oid40_50.convertOid((org.hl7.fhir.r4.model.OidType) src);
101    if (src instanceof org.hl7.fhir.r4.model.TimeType)
102      return Time40_50.convertTime((org.hl7.fhir.r4.model.TimeType) src);
103    if (src instanceof org.hl7.fhir.r4.model.UrlType) return Url40_50.convertUrl((org.hl7.fhir.r4.model.UrlType) src);
104    if (src instanceof org.hl7.fhir.r4.model.UuidType)
105      return Uuid40_50.convertUuid((org.hl7.fhir.r4.model.UuidType) src);
106    if (src instanceof org.hl7.fhir.r4.model.UriType) return Uri40_50.convertUri((org.hl7.fhir.r4.model.UriType) src);
107    if (src instanceof org.hl7.fhir.r4.model.StringType)
108      return String40_50.convertString((org.hl7.fhir.r4.model.StringType) src);
109    if (src instanceof org.hl7.fhir.r4.model.Extension)
110      return Extension40_50.convertExtension((org.hl7.fhir.r4.model.Extension) src);
111    if (src instanceof org.hl7.fhir.r4.model.Narrative)
112      return Narrative40_50.convertNarrative((org.hl7.fhir.r4.model.Narrative) src);
113    if (src instanceof org.hl7.fhir.r4.model.Address)
114      return Address40_50.convertAddress((org.hl7.fhir.r4.model.Address) src);
115    if (src instanceof org.hl7.fhir.r4.model.Age) return Age40_50.convertAge((org.hl7.fhir.r4.model.Age) src);
116    if (src instanceof org.hl7.fhir.r4.model.Annotation)
117      return Annotation40_50.convertAnnotation((org.hl7.fhir.r4.model.Annotation) src);
118    if (src instanceof org.hl7.fhir.r4.model.Attachment)
119      return Attachment40_50.convertAttachment((org.hl7.fhir.r4.model.Attachment) src);
120    if (src instanceof org.hl7.fhir.r4.model.CodeableConcept)
121      return CodeableConcept40_50.convertCodeableConcept((org.hl7.fhir.r4.model.CodeableConcept) src);
122    if (src instanceof org.hl7.fhir.r4.model.Coding)
123      return Coding40_50.convertCoding((org.hl7.fhir.r4.model.Coding) src);
124    if (src instanceof org.hl7.fhir.r4.model.ContactDetail)
125      return ContactDetail40_50.convertContactDetail((org.hl7.fhir.r4.model.ContactDetail) src);
126    if (src instanceof org.hl7.fhir.r4.model.ContactPoint)
127      return ContactPoint40_50.convertContactPoint((org.hl7.fhir.r4.model.ContactPoint) src);
128    if (src instanceof org.hl7.fhir.r4.model.Contributor)
129      return Contributor40_50.convertContributor((org.hl7.fhir.r4.model.Contributor) src);
130    if (src instanceof org.hl7.fhir.r4.model.Count) return Count40_50.convertCount((org.hl7.fhir.r4.model.Count) src);
131    if (src instanceof org.hl7.fhir.r4.model.DataRequirement)
132      return DataRequirement40_50.convertDataRequirement((org.hl7.fhir.r4.model.DataRequirement) src);
133    if (src instanceof org.hl7.fhir.r4.model.Distance)
134      return Distance40_50.convertDistance((org.hl7.fhir.r4.model.Distance) src);
135    if (src instanceof org.hl7.fhir.r4.model.Dosage)
136      return Dosage40_50.convertDosage((org.hl7.fhir.r4.model.Dosage) src);
137    if (src instanceof org.hl7.fhir.r4.model.Duration)
138      return Duration40_50.convertDuration((org.hl7.fhir.r4.model.Duration) src);
139    if (src instanceof org.hl7.fhir.r4.model.Expression)
140      return Expression40_50.convertExpression((org.hl7.fhir.r4.model.Expression) src);
141    if (src instanceof org.hl7.fhir.r4.model.HumanName)
142      return HumanName40_50.convertHumanName((org.hl7.fhir.r4.model.HumanName) src);
143    if (src instanceof org.hl7.fhir.r4.model.Identifier)
144      return Identifier40_50.convertIdentifier((org.hl7.fhir.r4.model.Identifier) src);
145    if (src instanceof org.hl7.fhir.r4.model.MarketingStatus)
146      return MarketingStatus40_50.convertMarketingStatus((org.hl7.fhir.r4.model.MarketingStatus) src);
147    if (src instanceof org.hl7.fhir.r4.model.Meta) return Meta40_50.convertMeta((org.hl7.fhir.r4.model.Meta) src);
148    if (src instanceof org.hl7.fhir.r4.model.Money) return Money40_50.convertMoney((org.hl7.fhir.r4.model.Money) src);
149    if (src instanceof org.hl7.fhir.r4.model.ParameterDefinition)
150      return ParameterDefinition40_50.convertParameterDefinition((org.hl7.fhir.r4.model.ParameterDefinition) src);
151    if (src instanceof org.hl7.fhir.r4.model.Period)
152      return Period40_50.convertPeriod((org.hl7.fhir.r4.model.Period) src);
153    if (src instanceof org.hl7.fhir.r4.model.ProdCharacteristic)
154      return ProdCharacteristic40_50.convertProdCharacteristic((org.hl7.fhir.r4.model.ProdCharacteristic) src);
155    if (src instanceof org.hl7.fhir.r4.model.ProductShelfLife)
156      return ProductShelfLife40_50.convertProductShelfLife((org.hl7.fhir.r4.model.ProductShelfLife) src);
157    if (src instanceof org.hl7.fhir.r4.model.MoneyQuantity)
158      return MoneyQuantity40_50.convertMoneyQuantity((org.hl7.fhir.r4.model.MoneyQuantity) src);
159    if (src instanceof org.hl7.fhir.r4.model.SimpleQuantity)
160      return SimpleQuantity40_50.convertSimpleQuantity((org.hl7.fhir.r4.model.SimpleQuantity) src);
161    if (src instanceof org.hl7.fhir.r4.model.Quantity)
162      return Quantity40_50.convertQuantity((org.hl7.fhir.r4.model.Quantity) src);
163    if (src instanceof org.hl7.fhir.r4.model.Range) return Range40_50.convertRange((org.hl7.fhir.r4.model.Range) src);
164    if (src instanceof org.hl7.fhir.r4.model.Ratio) return Ratio40_50.convertRatio((org.hl7.fhir.r4.model.Ratio) src);
165    if (src instanceof org.hl7.fhir.r4.model.Reference)
166      return Reference40_50.convertReference((org.hl7.fhir.r4.model.Reference) src);
167    if (src instanceof org.hl7.fhir.r4.model.RelatedArtifact)
168      return RelatedArtifact40_50.convertRelatedArtifact((org.hl7.fhir.r4.model.RelatedArtifact) src);
169    if (src instanceof org.hl7.fhir.r4.model.SampledData)
170      return SampledData40_50.convertSampledData((org.hl7.fhir.r4.model.SampledData) src);
171    if (src instanceof org.hl7.fhir.r4.model.Signature)
172      return Signature40_50.convertSignature((org.hl7.fhir.r4.model.Signature) src);
173    if (src instanceof org.hl7.fhir.r4.model.SubstanceAmount)
174      return SubstanceAmount40_50.convertSubstanceAmount((org.hl7.fhir.r4.model.SubstanceAmount) src);
175    if (src instanceof org.hl7.fhir.r4.model.Timing)
176      return Timing40_50.convertTiming((org.hl7.fhir.r4.model.Timing) src);
177    if (src instanceof org.hl7.fhir.r4.model.TriggerDefinition)
178      return TriggerDefinition40_50.convertTriggerDefinition((org.hl7.fhir.r4.model.TriggerDefinition) src);
179    if (src instanceof org.hl7.fhir.r4.model.UsageContext)
180      return UsageContext40_50.convertUsageContext((org.hl7.fhir.r4.model.UsageContext) src);
181    if (src instanceof org.hl7.fhir.r4.model.ElementDefinition)
182      return ElementDefinition40_50.convertElementDefinition((org.hl7.fhir.r4.model.ElementDefinition) src);
183    if (advisor.failFastOnNullOrUnknownEntry()) {
184      throw new FHIRException("The type " + src.fhirType()+" cannot be converted from R4 to R5");
185    } else {
186      return null;
187    }
188  }
189
190  public org.hl7.fhir.r4.model.Type convertType(org.hl7.fhir.r5.model.DataType src) throws FHIRException {
191    if (src == null || src.isEmpty()) return null;
192    if (src instanceof org.hl7.fhir.r5.model.Base64BinaryType)
193      return Base64Binary40_50.convertBase64Binary((org.hl7.fhir.r5.model.Base64BinaryType) src);
194    if (src instanceof org.hl7.fhir.r5.model.BooleanType)
195      return Boolean40_50.convertBoolean((org.hl7.fhir.r5.model.BooleanType) src);
196    if (src instanceof org.hl7.fhir.r5.model.CanonicalType)
197      return Canonical40_50.convertCanonical((org.hl7.fhir.r5.model.CanonicalType) src);
198    if (src instanceof org.hl7.fhir.r5.model.CodeType)
199      return Code40_50.convertCode((org.hl7.fhir.r5.model.CodeType) src);
200    if (src instanceof org.hl7.fhir.r5.model.DateType)
201      return Date40_50.convertDate((org.hl7.fhir.r5.model.DateType) src);
202    if (src instanceof org.hl7.fhir.r5.model.DateTimeType)
203      return DateTime40_50.convertDateTime((org.hl7.fhir.r5.model.DateTimeType) src);
204    if (src instanceof org.hl7.fhir.r5.model.DecimalType)
205      return Decimal40_50.convertDecimal((org.hl7.fhir.r5.model.DecimalType) src);
206    if (src instanceof org.hl7.fhir.r5.model.IdType) return Id40_50.convertId((org.hl7.fhir.r5.model.IdType) src);
207    if (src instanceof org.hl7.fhir.r5.model.InstantType)
208      return Instant40_50.convertInstant((org.hl7.fhir.r5.model.InstantType) src);
209    if (src instanceof org.hl7.fhir.r5.model.MarkdownType)
210      return MarkDown40_50.convertMarkdown((org.hl7.fhir.r5.model.MarkdownType) src);
211    if (src instanceof org.hl7.fhir.r5.model.OidType) return Oid40_50.convertOid((org.hl7.fhir.r5.model.OidType) src);
212    if (src instanceof org.hl7.fhir.r5.model.PositiveIntType)
213      return PositiveInt40_50.convertPositiveInt((org.hl7.fhir.r5.model.PositiveIntType) src);
214    if (src instanceof org.hl7.fhir.r5.model.StringType)
215      return String40_50.convertString((org.hl7.fhir.r5.model.StringType) src);
216    if (src instanceof org.hl7.fhir.r5.model.TimeType)
217      return Time40_50.convertTime((org.hl7.fhir.r5.model.TimeType) src);
218    if (src instanceof org.hl7.fhir.r5.model.UnsignedIntType)
219      return UnsignedInt40_50.convertUnsignedInt((org.hl7.fhir.r5.model.UnsignedIntType) src);
220    if (src instanceof org.hl7.fhir.r5.model.IntegerType)
221      return Integer40_50.convertInteger((org.hl7.fhir.r5.model.IntegerType) src);
222    if (src instanceof org.hl7.fhir.r5.model.Integer64Type)
223      return Integer40_50.convertInteger64((org.hl7.fhir.r5.model.Integer64Type) src);
224    if (src instanceof org.hl7.fhir.r5.model.UrlType) return Url40_50.convertUrl((org.hl7.fhir.r5.model.UrlType) src);
225    if (src instanceof org.hl7.fhir.r5.model.UuidType)
226      return Uuid40_50.convertUuid((org.hl7.fhir.r5.model.UuidType) src);
227    if (src instanceof org.hl7.fhir.r5.model.UriType) return Uri40_50.convertUri((org.hl7.fhir.r5.model.UriType) src);
228    if (src instanceof org.hl7.fhir.r5.model.Extension)
229      return Extension40_50.convertExtension((org.hl7.fhir.r5.model.Extension) src);
230    if (src instanceof org.hl7.fhir.r5.model.Narrative)
231      return Narrative40_50.convertNarrative((org.hl7.fhir.r5.model.Narrative) src);
232    if (src instanceof org.hl7.fhir.r5.model.Address)
233      return Address40_50.convertAddress((org.hl7.fhir.r5.model.Address) src);
234    if (src instanceof org.hl7.fhir.r5.model.Age) return Age40_50.convertAge((org.hl7.fhir.r5.model.Age) src);
235    if (src instanceof org.hl7.fhir.r5.model.Annotation)
236      return Annotation40_50.convertAnnotation((org.hl7.fhir.r5.model.Annotation) src);
237    if (src instanceof org.hl7.fhir.r5.model.Attachment)
238      return Attachment40_50.convertAttachment((org.hl7.fhir.r5.model.Attachment) src);
239    if (src instanceof org.hl7.fhir.r5.model.CodeableConcept)
240      return CodeableConcept40_50.convertCodeableConcept((org.hl7.fhir.r5.model.CodeableConcept) src);
241    if (src instanceof org.hl7.fhir.r5.model.Coding)
242      return Coding40_50.convertCoding((org.hl7.fhir.r5.model.Coding) src);
243    if (src instanceof org.hl7.fhir.r5.model.ContactDetail)
244      return ContactDetail40_50.convertContactDetail((org.hl7.fhir.r5.model.ContactDetail) src);
245    if (src instanceof org.hl7.fhir.r5.model.ContactPoint)
246      return ContactPoint40_50.convertContactPoint((org.hl7.fhir.r5.model.ContactPoint) src);
247    if (src instanceof org.hl7.fhir.r5.model.Contributor)
248      return Contributor40_50.convertContributor((org.hl7.fhir.r5.model.Contributor) src);
249    if (src instanceof org.hl7.fhir.r5.model.Count) return Count40_50.convertCount((org.hl7.fhir.r5.model.Count) src);
250    if (src instanceof org.hl7.fhir.r5.model.DataRequirement)
251      return DataRequirement40_50.convertDataRequirement((org.hl7.fhir.r5.model.DataRequirement) src);
252    if (src instanceof org.hl7.fhir.r5.model.Distance)
253      return Distance40_50.convertDistance((org.hl7.fhir.r5.model.Distance) src);
254    if (src instanceof org.hl7.fhir.r5.model.Dosage)
255      return Dosage40_50.convertDosage((org.hl7.fhir.r5.model.Dosage) src);
256    if (src instanceof org.hl7.fhir.r5.model.Duration)
257      return Duration40_50.convertDuration((org.hl7.fhir.r5.model.Duration) src);
258    if (src instanceof org.hl7.fhir.r5.model.Expression)
259      return Expression40_50.convertExpression((org.hl7.fhir.r5.model.Expression) src);
260    if (src instanceof org.hl7.fhir.r5.model.HumanName)
261      return HumanName40_50.convertHumanName((org.hl7.fhir.r5.model.HumanName) src);
262    if (src instanceof org.hl7.fhir.r5.model.Identifier)
263      return Identifier40_50.convertIdentifier((org.hl7.fhir.r5.model.Identifier) src);
264    if (src instanceof org.hl7.fhir.r5.model.MarketingStatus)
265      return MarketingStatus40_50.convertMarketingStatus((org.hl7.fhir.r5.model.MarketingStatus) src);
266    if (src instanceof org.hl7.fhir.r5.model.Meta) return Meta40_50.convertMeta((org.hl7.fhir.r5.model.Meta) src);
267    if (src instanceof org.hl7.fhir.r5.model.Money) return Money40_50.convertMoney((org.hl7.fhir.r5.model.Money) src);
268    if (src instanceof org.hl7.fhir.r5.model.ParameterDefinition)
269      return ParameterDefinition40_50.convertParameterDefinition((org.hl7.fhir.r5.model.ParameterDefinition) src);
270    if (src instanceof org.hl7.fhir.r5.model.Period)
271      return Period40_50.convertPeriod((org.hl7.fhir.r5.model.Period) src);
272    if (src instanceof org.hl7.fhir.r5.model.ProdCharacteristic)
273      return ProdCharacteristic40_50.convertProdCharacteristic((org.hl7.fhir.r5.model.ProdCharacteristic) src);
274    if (src instanceof org.hl7.fhir.r5.model.ProductShelfLife)
275      return ProductShelfLife40_50.convertProductShelfLife((org.hl7.fhir.r5.model.ProductShelfLife) src);
276    if (src instanceof org.hl7.fhir.r5.model.MoneyQuantity)
277      return MoneyQuantity40_50.convertMoneyQuantity((org.hl7.fhir.r5.model.MoneyQuantity) src);
278    if (src instanceof org.hl7.fhir.r5.model.SimpleQuantity)
279      return SimpleQuantity40_50.convertSimpleQuantity((org.hl7.fhir.r5.model.SimpleQuantity) src);
280    if (src instanceof org.hl7.fhir.r5.model.Quantity)
281      return Quantity40_50.convertQuantity((org.hl7.fhir.r5.model.Quantity) src);
282    if (src instanceof org.hl7.fhir.r5.model.Range) return Range40_50.convertRange((org.hl7.fhir.r5.model.Range) src);
283    if (src instanceof org.hl7.fhir.r5.model.Ratio) return Ratio40_50.convertRatio((org.hl7.fhir.r5.model.Ratio) src);
284    if (src instanceof org.hl7.fhir.r5.model.Reference)
285      return Reference40_50.convertReference((org.hl7.fhir.r5.model.Reference) src);
286    if (src instanceof org.hl7.fhir.r5.model.RelatedArtifact)
287      return RelatedArtifact40_50.convertRelatedArtifact((org.hl7.fhir.r5.model.RelatedArtifact) src);
288    if (src instanceof org.hl7.fhir.r5.model.SampledData)
289      return SampledData40_50.convertSampledData((org.hl7.fhir.r5.model.SampledData) src);
290    if (src instanceof org.hl7.fhir.r5.model.Signature)
291      return Signature40_50.convertSignature((org.hl7.fhir.r5.model.Signature) src);
292    if (src instanceof org.hl7.fhir.r5.model.SubstanceAmount)
293      return SubstanceAmount40_50.convertSubstanceAmount((org.hl7.fhir.r5.model.SubstanceAmount) src);
294    if (src instanceof org.hl7.fhir.r5.model.Timing)
295      return Timing40_50.convertTiming((org.hl7.fhir.r5.model.Timing) src);
296    if (src instanceof org.hl7.fhir.r5.model.TriggerDefinition)
297      return TriggerDefinition40_50.convertTriggerDefinition((org.hl7.fhir.r5.model.TriggerDefinition) src);
298    if (src instanceof org.hl7.fhir.r5.model.UsageContext)
299      return UsageContext40_50.convertUsageContext((org.hl7.fhir.r5.model.UsageContext) src);
300    if (src instanceof org.hl7.fhir.r5.model.ElementDefinition)
301      return ElementDefinition40_50.convertElementDefinition((org.hl7.fhir.r5.model.ElementDefinition) src);
302    if (advisor.failFastOnNullOrUnknownEntry()) {
303      throw new FHIRException("The type " + src.fhirType()+" cannot be converted from R5 to R4");
304    } else {
305      return null;
306    }
307  }
308}