001package org.hl7.fhir.convertors.conv14_40.datatypes14_40;
002
003import org.hl7.fhir.convertors.advisors.impl.BaseAdvisor_14_40;
004import org.hl7.fhir.convertors.conv14_40.datatypes14_40.complextypes14_40.Address14_40;
005import org.hl7.fhir.convertors.conv14_40.datatypes14_40.complextypes14_40.Age14_40;
006import org.hl7.fhir.convertors.conv14_40.datatypes14_40.complextypes14_40.Annotation14_40;
007import org.hl7.fhir.convertors.conv14_40.datatypes14_40.complextypes14_40.Attachment14_40;
008import org.hl7.fhir.convertors.conv14_40.datatypes14_40.complextypes14_40.CodeableConcept14_40;
009import org.hl7.fhir.convertors.conv14_40.datatypes14_40.complextypes14_40.Coding14_40;
010import org.hl7.fhir.convertors.conv14_40.datatypes14_40.complextypes14_40.ContactPoint14_40;
011import org.hl7.fhir.convertors.conv14_40.datatypes14_40.complextypes14_40.Count14_40;
012import org.hl7.fhir.convertors.conv14_40.datatypes14_40.complextypes14_40.Distance14_40;
013import org.hl7.fhir.convertors.conv14_40.datatypes14_40.complextypes14_40.Duration14_40;
014import org.hl7.fhir.convertors.conv14_40.datatypes14_40.complextypes14_40.HumanName14_40;
015import org.hl7.fhir.convertors.conv14_40.datatypes14_40.complextypes14_40.Identifier14_40;
016import org.hl7.fhir.convertors.conv14_40.datatypes14_40.complextypes14_40.Money14_40;
017import org.hl7.fhir.convertors.conv14_40.datatypes14_40.complextypes14_40.Period14_40;
018import org.hl7.fhir.convertors.conv14_40.datatypes14_40.complextypes14_40.Quantity14_40;
019import org.hl7.fhir.convertors.conv14_40.datatypes14_40.complextypes14_40.Range14_40;
020import org.hl7.fhir.convertors.conv14_40.datatypes14_40.complextypes14_40.Ratio14_40;
021import org.hl7.fhir.convertors.conv14_40.datatypes14_40.complextypes14_40.SampledData14_40;
022import org.hl7.fhir.convertors.conv14_40.datatypes14_40.complextypes14_40.Signature14_40;
023import org.hl7.fhir.convertors.conv14_40.datatypes14_40.complextypes14_40.Timing14_40;
024import org.hl7.fhir.convertors.conv14_40.datatypes14_40.primitivetypes14_40.Base64Binary14_40;
025import org.hl7.fhir.convertors.conv14_40.datatypes14_40.primitivetypes14_40.Boolean14_40;
026import org.hl7.fhir.convertors.conv14_40.datatypes14_40.primitivetypes14_40.Code14_40;
027import org.hl7.fhir.convertors.conv14_40.datatypes14_40.primitivetypes14_40.Date14_40;
028import org.hl7.fhir.convertors.conv14_40.datatypes14_40.primitivetypes14_40.DateTime14_40;
029import org.hl7.fhir.convertors.conv14_40.datatypes14_40.primitivetypes14_40.Decimal14_40;
030import org.hl7.fhir.convertors.conv14_40.datatypes14_40.primitivetypes14_40.Id14_40;
031import org.hl7.fhir.convertors.conv14_40.datatypes14_40.primitivetypes14_40.Instant14_40;
032import org.hl7.fhir.convertors.conv14_40.datatypes14_40.primitivetypes14_40.Integer14_40;
033import org.hl7.fhir.convertors.conv14_40.datatypes14_40.primitivetypes14_40.MarkDown14_40;
034import org.hl7.fhir.convertors.conv14_40.datatypes14_40.primitivetypes14_40.Oid14_40;
035import org.hl7.fhir.convertors.conv14_40.datatypes14_40.primitivetypes14_40.PositiveInt14_40;
036import org.hl7.fhir.convertors.conv14_40.datatypes14_40.primitivetypes14_40.String14_40;
037import org.hl7.fhir.convertors.conv14_40.datatypes14_40.primitivetypes14_40.Time14_40;
038import org.hl7.fhir.convertors.conv14_40.datatypes14_40.primitivetypes14_40.UnsignedInt14_40;
039import org.hl7.fhir.convertors.conv14_40.datatypes14_40.primitivetypes14_40.Uri14_40;
040import org.hl7.fhir.convertors.conv14_40.datatypes14_40.primitivetypes14_40.Uuid14_40;
041import org.hl7.fhir.exceptions.FHIRException;
042
043public class Type14_40 {
044
045  private final BaseAdvisor_14_40 advisor;
046
047  public Type14_40(BaseAdvisor_14_40 advisor) {
048    this.advisor = advisor;
049  }
050
051  public org.hl7.fhir.r4.model.Type convertType(org.hl7.fhir.dstu2016may.model.Type src) throws FHIRException {
052    if (src == null || src.isEmpty()) return null;
053    if (src instanceof org.hl7.fhir.dstu2016may.model.Base64BinaryType)
054      return Base64Binary14_40.convertBase64Binary((org.hl7.fhir.dstu2016may.model.Base64BinaryType) src);
055    if (src instanceof org.hl7.fhir.dstu2016may.model.BooleanType)
056      return Boolean14_40.convertBoolean((org.hl7.fhir.dstu2016may.model.BooleanType) src);
057    if (src instanceof org.hl7.fhir.dstu2016may.model.CodeType)
058      return Code14_40.convertCode((org.hl7.fhir.dstu2016may.model.CodeType) src);
059    if (src instanceof org.hl7.fhir.dstu2016may.model.DateType)
060      return Date14_40.convertDate((org.hl7.fhir.dstu2016may.model.DateType) src);
061    if (src instanceof org.hl7.fhir.dstu2016may.model.DateTimeType)
062      return DateTime14_40.convertDateTime((org.hl7.fhir.dstu2016may.model.DateTimeType) src);
063    if (src instanceof org.hl7.fhir.dstu2016may.model.DecimalType)
064      return Decimal14_40.convertDecimal((org.hl7.fhir.dstu2016may.model.DecimalType) src);
065    if (src instanceof org.hl7.fhir.dstu2016may.model.IdType)
066      return Id14_40.convertId((org.hl7.fhir.dstu2016may.model.IdType) src);
067    if (src instanceof org.hl7.fhir.dstu2016may.model.InstantType)
068      return Instant14_40.convertInstant((org.hl7.fhir.dstu2016may.model.InstantType) src);
069    if (src instanceof org.hl7.fhir.dstu2016may.model.MarkdownType)
070      return MarkDown14_40.convertMarkdown((org.hl7.fhir.dstu2016may.model.MarkdownType) src);
071    if (src instanceof org.hl7.fhir.dstu2016may.model.OidType)
072      return Oid14_40.convertOid((org.hl7.fhir.dstu2016may.model.OidType) src);
073    if (src instanceof org.hl7.fhir.dstu2016may.model.PositiveIntType)
074      return PositiveInt14_40.convertPositiveInt((org.hl7.fhir.dstu2016may.model.PositiveIntType) src);
075    if (src instanceof org.hl7.fhir.dstu2016may.model.StringType)
076      return String14_40.convertString((org.hl7.fhir.dstu2016may.model.StringType) src);
077    if (src instanceof org.hl7.fhir.dstu2016may.model.TimeType)
078      return Time14_40.convertTime((org.hl7.fhir.dstu2016may.model.TimeType) src);
079    if (src instanceof org.hl7.fhir.dstu2016may.model.UnsignedIntType)
080      return UnsignedInt14_40.convertUnsignedInt((org.hl7.fhir.dstu2016may.model.UnsignedIntType) src);
081    if (src instanceof org.hl7.fhir.dstu2016may.model.IntegerType)
082      return Integer14_40.convertInteger((org.hl7.fhir.dstu2016may.model.IntegerType) src);
083    if (src instanceof org.hl7.fhir.dstu2016may.model.UuidType)
084      return Uuid14_40.convertUuid((org.hl7.fhir.dstu2016may.model.UuidType) src);
085    if (src instanceof org.hl7.fhir.dstu2016may.model.UriType)
086      return Uri14_40.convertUri((org.hl7.fhir.dstu2016may.model.UriType) src);
087    if (src instanceof org.hl7.fhir.dstu2016may.model.Extension)
088      return Extension14_40.convertExtension((org.hl7.fhir.dstu2016may.model.Extension) src);
089    if (src instanceof org.hl7.fhir.dstu2016may.model.Narrative)
090      return Narrative14_40.convertNarrative((org.hl7.fhir.dstu2016may.model.Narrative) src);
091    if (src instanceof org.hl7.fhir.dstu2016may.model.Age)
092      return Age14_40.convertAge((org.hl7.fhir.dstu2016may.model.Age) src);
093    if (src instanceof org.hl7.fhir.dstu2016may.model.Annotation)
094      return Annotation14_40.convertAnnotation((org.hl7.fhir.dstu2016may.model.Annotation) src);
095    if (src instanceof org.hl7.fhir.dstu2016may.model.Attachment)
096      return Attachment14_40.convertAttachment((org.hl7.fhir.dstu2016may.model.Attachment) src);
097    if (src instanceof org.hl7.fhir.dstu2016may.model.CodeableConcept)
098      return CodeableConcept14_40.convertCodeableConcept((org.hl7.fhir.dstu2016may.model.CodeableConcept) src);
099    if (src instanceof org.hl7.fhir.dstu2016may.model.Coding)
100      return Coding14_40.convertCoding((org.hl7.fhir.dstu2016may.model.Coding) src);
101    if (src instanceof org.hl7.fhir.dstu2016may.model.Count)
102      return Count14_40.convertCount((org.hl7.fhir.dstu2016may.model.Count) src);
103    if (src instanceof org.hl7.fhir.dstu2016may.model.Distance)
104      return Distance14_40.convertDistance((org.hl7.fhir.dstu2016may.model.Distance) src);
105    if (src instanceof org.hl7.fhir.dstu2016may.model.Duration)
106      return Duration14_40.convertDuration((org.hl7.fhir.dstu2016may.model.Duration) src);
107    if (src instanceof org.hl7.fhir.dstu2016may.model.Identifier)
108      return Identifier14_40.convertIdentifier((org.hl7.fhir.dstu2016may.model.Identifier) src);
109    if (src instanceof org.hl7.fhir.dstu2016may.model.Money)
110      return Money14_40.convertMoney((org.hl7.fhir.dstu2016may.model.Money) src);
111    if (src instanceof org.hl7.fhir.dstu2016may.model.Period)
112      return Period14_40.convertPeriod((org.hl7.fhir.dstu2016may.model.Period) src);
113    if (src instanceof org.hl7.fhir.dstu2016may.model.Quantity)
114      return Quantity14_40.convertQuantity((org.hl7.fhir.dstu2016may.model.Quantity) src);
115    if (src instanceof org.hl7.fhir.dstu2016may.model.Range)
116      return Range14_40.convertRange((org.hl7.fhir.dstu2016may.model.Range) src);
117    if (src instanceof org.hl7.fhir.dstu2016may.model.Ratio)
118      return Ratio14_40.convertRatio((org.hl7.fhir.dstu2016may.model.Ratio) src);
119    if (src instanceof org.hl7.fhir.dstu2016may.model.Reference)
120      return Reference14_40.convertReference((org.hl7.fhir.dstu2016may.model.Reference) src);
121    if (src instanceof org.hl7.fhir.dstu2016may.model.SampledData)
122      return SampledData14_40.convertSampledData((org.hl7.fhir.dstu2016may.model.SampledData) src);
123    if (src instanceof org.hl7.fhir.dstu2016may.model.Signature)
124      return Signature14_40.convertSignature((org.hl7.fhir.dstu2016may.model.Signature) src);
125    if (src instanceof org.hl7.fhir.dstu2016may.model.Address)
126      return Address14_40.convertAddress((org.hl7.fhir.dstu2016may.model.Address) src);
127    if (src instanceof org.hl7.fhir.dstu2016may.model.ContactPoint)
128      return ContactPoint14_40.convertContactPoint((org.hl7.fhir.dstu2016may.model.ContactPoint) src);
129    if (src instanceof org.hl7.fhir.dstu2016may.model.HumanName)
130      return HumanName14_40.convertHumanName((org.hl7.fhir.dstu2016may.model.HumanName) src);
131    if (src instanceof org.hl7.fhir.dstu2016may.model.Meta)
132      return Meta14_40.convertMeta((org.hl7.fhir.dstu2016may.model.Meta) src);
133    if (src instanceof org.hl7.fhir.dstu2016may.model.Timing)
134      return Timing14_40.convertTiming((org.hl7.fhir.dstu2016may.model.Timing) src);
135    if (advisor.failFastOnNullOrUnknownEntry()) {
136      throw new FHIRException("The type " + src.fhirType()+" cannot be converted from R2B to R4");
137    } else {
138      return null;
139    }
140  }
141
142  public org.hl7.fhir.dstu2016may.model.Type convertType(org.hl7.fhir.r4.model.Type src) throws FHIRException {
143    if (src == null || src.isEmpty()) return null;
144    if (src instanceof org.hl7.fhir.r4.model.Base64BinaryType)
145      return Base64Binary14_40.convertBase64Binary((org.hl7.fhir.r4.model.Base64BinaryType) src);
146    if (src instanceof org.hl7.fhir.r4.model.BooleanType)
147      return Boolean14_40.convertBoolean((org.hl7.fhir.r4.model.BooleanType) src);
148    if (src instanceof org.hl7.fhir.r4.model.CodeType)
149      return Code14_40.convertCode((org.hl7.fhir.r4.model.CodeType) src);
150    if (src instanceof org.hl7.fhir.r4.model.DateType)
151      return Date14_40.convertDate((org.hl7.fhir.r4.model.DateType) src);
152    if (src instanceof org.hl7.fhir.r4.model.DateTimeType)
153      return DateTime14_40.convertDateTime((org.hl7.fhir.r4.model.DateTimeType) src);
154    if (src instanceof org.hl7.fhir.r4.model.DecimalType)
155      return Decimal14_40.convertDecimal((org.hl7.fhir.r4.model.DecimalType) src);
156    if (src instanceof org.hl7.fhir.r4.model.IdType) return Id14_40.convertId((org.hl7.fhir.r4.model.IdType) src);
157    if (src instanceof org.hl7.fhir.r4.model.InstantType)
158      return Instant14_40.convertInstant((org.hl7.fhir.r4.model.InstantType) src);
159    if (src instanceof org.hl7.fhir.r4.model.MarkdownType)
160      return MarkDown14_40.convertMarkdown((org.hl7.fhir.r4.model.MarkdownType) src);
161    if (src instanceof org.hl7.fhir.r4.model.OidType) return Oid14_40.convertOid((org.hl7.fhir.r4.model.OidType) src);
162    if (src instanceof org.hl7.fhir.r4.model.PositiveIntType)
163      return PositiveInt14_40.convertPositiveInt((org.hl7.fhir.r4.model.PositiveIntType) src);
164    if (src instanceof org.hl7.fhir.r4.model.StringType)
165      return String14_40.convertString((org.hl7.fhir.r4.model.StringType) src);
166    if (src instanceof org.hl7.fhir.r4.model.TimeType)
167      return Time14_40.convertTime((org.hl7.fhir.r4.model.TimeType) src);
168    if (src instanceof org.hl7.fhir.r4.model.UnsignedIntType)
169      return UnsignedInt14_40.convertUnsignedInt((org.hl7.fhir.r4.model.UnsignedIntType) src);
170    if (src instanceof org.hl7.fhir.r4.model.IntegerType)
171      return Integer14_40.convertInteger((org.hl7.fhir.r4.model.IntegerType) src);
172    if (src instanceof org.hl7.fhir.r4.model.UuidType)
173      return Uuid14_40.convertUuid((org.hl7.fhir.r4.model.UuidType) src);
174    if (src instanceof org.hl7.fhir.r4.model.UriType) return Uri14_40.convertUri((org.hl7.fhir.r4.model.UriType) src);
175    if (src instanceof org.hl7.fhir.r4.model.Extension)
176      return Extension14_40.convertExtension((org.hl7.fhir.r4.model.Extension) src);
177    if (src instanceof org.hl7.fhir.r4.model.Narrative)
178      return Narrative14_40.convertNarrative((org.hl7.fhir.r4.model.Narrative) src);
179    if (src instanceof org.hl7.fhir.r4.model.Age) return Age14_40.convertAge((org.hl7.fhir.r4.model.Age) src);
180    if (src instanceof org.hl7.fhir.r4.model.Annotation)
181      return Annotation14_40.convertAnnotation((org.hl7.fhir.r4.model.Annotation) src);
182    if (src instanceof org.hl7.fhir.r4.model.Attachment)
183      return Attachment14_40.convertAttachment((org.hl7.fhir.r4.model.Attachment) src);
184    if (src instanceof org.hl7.fhir.r4.model.CodeableConcept)
185      return CodeableConcept14_40.convertCodeableConcept((org.hl7.fhir.r4.model.CodeableConcept) src);
186    if (src instanceof org.hl7.fhir.r4.model.Coding)
187      return Coding14_40.convertCoding((org.hl7.fhir.r4.model.Coding) src);
188    if (src instanceof org.hl7.fhir.r4.model.Count) return Count14_40.convertCount((org.hl7.fhir.r4.model.Count) src);
189    if (src instanceof org.hl7.fhir.r4.model.Distance)
190      return Distance14_40.convertDistance((org.hl7.fhir.r4.model.Distance) src);
191    if (src instanceof org.hl7.fhir.r4.model.Duration)
192      return Duration14_40.convertDuration((org.hl7.fhir.r4.model.Duration) src);
193    if (src instanceof org.hl7.fhir.r4.model.Identifier)
194      return Identifier14_40.convertIdentifier((org.hl7.fhir.r4.model.Identifier) src);
195    if (src instanceof org.hl7.fhir.r4.model.Money) return Money14_40.convertMoney((org.hl7.fhir.r4.model.Money) src);
196    if (src instanceof org.hl7.fhir.r4.model.Period)
197      return Period14_40.convertPeriod((org.hl7.fhir.r4.model.Period) src);
198    if (src instanceof org.hl7.fhir.r4.model.Quantity)
199      return Quantity14_40.convertQuantity((org.hl7.fhir.r4.model.Quantity) src);
200    if (src instanceof org.hl7.fhir.r4.model.Range) return Range14_40.convertRange((org.hl7.fhir.r4.model.Range) src);
201    if (src instanceof org.hl7.fhir.r4.model.Ratio) return Ratio14_40.convertRatio((org.hl7.fhir.r4.model.Ratio) src);
202    if (src instanceof org.hl7.fhir.r4.model.Reference)
203      return Reference14_40.convertReference((org.hl7.fhir.r4.model.Reference) src);
204    if (src instanceof org.hl7.fhir.r4.model.SampledData)
205      return SampledData14_40.convertSampledData((org.hl7.fhir.r4.model.SampledData) src);
206    if (src instanceof org.hl7.fhir.r4.model.Signature)
207      return Signature14_40.convertSignature((org.hl7.fhir.r4.model.Signature) src);
208    if (src instanceof org.hl7.fhir.r4.model.Address)
209      return Address14_40.convertAddress((org.hl7.fhir.r4.model.Address) src);
210    if (src instanceof org.hl7.fhir.r4.model.ContactPoint)
211      return ContactPoint14_40.convertContactPoint((org.hl7.fhir.r4.model.ContactPoint) src);
212    if (src instanceof org.hl7.fhir.r4.model.HumanName)
213      return HumanName14_40.convertHumanName((org.hl7.fhir.r4.model.HumanName) src);
214    if (src instanceof org.hl7.fhir.r4.model.Meta) return Meta14_40.convertMeta((org.hl7.fhir.r4.model.Meta) src);
215    if (src instanceof org.hl7.fhir.r4.model.Timing)
216      return Timing14_40.convertTiming((org.hl7.fhir.r4.model.Timing) src);
217    if (advisor.failFastOnNullOrUnknownEntry()) {
218      throw new FHIRException("The type " + src.fhirType()+" cannot be converted from R4 to R2B");
219    } else {
220      return null;
221    }
222  }
223}