001package org.hl7.fhir.convertors.conv14_50.resources14_50;
002
003import org.hl7.fhir.convertors.context.ConversionContext14_50;
004import org.hl7.fhir.convertors.conv14_50.datatypes14_50.complextypes14_50.CodeableConcept14_50;
005import org.hl7.fhir.convertors.conv14_50.datatypes14_50.complextypes14_50.Coding14_50;
006import org.hl7.fhir.convertors.conv14_50.datatypes14_50.complextypes14_50.ContactPoint14_50;
007import org.hl7.fhir.convertors.conv14_50.datatypes14_50.complextypes14_50.Identifier14_50;
008import org.hl7.fhir.convertors.conv14_50.datatypes14_50.primitivetypes14_50.Boolean14_50;
009import org.hl7.fhir.convertors.conv14_50.datatypes14_50.primitivetypes14_50.Code14_50;
010import org.hl7.fhir.convertors.conv14_50.datatypes14_50.primitivetypes14_50.DateTime14_50;
011import org.hl7.fhir.convertors.conv14_50.datatypes14_50.primitivetypes14_50.String14_50;
012import org.hl7.fhir.convertors.conv14_50.datatypes14_50.primitivetypes14_50.UnsignedInt14_50;
013import org.hl7.fhir.convertors.conv14_50.datatypes14_50.primitivetypes14_50.Uri14_50;
014import org.hl7.fhir.dstu2016may.model.CodeSystem.ConceptDefinitionPropertyComponent;
015import org.hl7.fhir.exceptions.FHIRException;
016import org.hl7.fhir.r5.model.Enumeration;
017import org.hl7.fhir.r5.model.Enumerations;
018import org.hl7.fhir.r5.model.Enumerations.FilterOperator;
019
020public class CodeSystem14_50 {
021
022  public static org.hl7.fhir.dstu2016may.model.CodeSystem convertCodeSystem(org.hl7.fhir.r5.model.CodeSystem src) throws FHIRException {
023    if (src == null || src.isEmpty())
024      return null;
025    org.hl7.fhir.dstu2016may.model.CodeSystem tgt = new org.hl7.fhir.dstu2016may.model.CodeSystem();
026    ConversionContext14_50.INSTANCE.getVersionConvertor_14_50().copyDomainResource(src, tgt);
027    if (src.hasUrl())
028      tgt.setUrlElement(Uri14_50.convertUri(src.getUrlElement()));
029    if (src.hasIdentifier())
030      tgt.setIdentifier(Identifier14_50.convertIdentifier(src.getIdentifierFirstRep()));
031    if (src.hasVersion())
032      tgt.setVersionElement(String14_50.convertString(src.getVersionElement()));
033    if (src.hasName())
034      tgt.setNameElement(String14_50.convertString(src.getNameElement()));
035    if (src.hasStatus())
036      tgt.setStatusElement(Enumerations14_50.convertConformanceResourceStatus(src.getStatusElement()));
037    if (src.hasExperimental())
038      tgt.setExperimentalElement(Boolean14_50.convertBoolean(src.getExperimentalElement()));
039    if (src.hasPublisher())
040      tgt.setPublisherElement(String14_50.convertString(src.getPublisherElement()));
041    for (org.hl7.fhir.r5.model.ContactDetail t : src.getContact()) tgt.addContact(convertCodeSystemContactComponent(t));
042    if (src.hasDate())
043      tgt.setDateElement(DateTime14_50.convertDateTime(src.getDateElement()));
044    if (src.hasDescription())
045      tgt.setDescription(src.getDescription());
046    for (org.hl7.fhir.r5.model.UsageContext t : src.getUseContext())
047      if (t.hasValueCodeableConcept())
048        tgt.addUseContext(CodeableConcept14_50.convertCodeableConcept(t.getValueCodeableConcept()));
049    for (org.hl7.fhir.r5.model.CodeableConcept t : src.getJurisdiction())
050      tgt.addUseContext(CodeableConcept14_50.convertCodeableConcept(t));
051    if (src.hasPurpose())
052      tgt.setRequirements(src.getPurpose());
053    if (src.hasCopyright())
054      tgt.setCopyright(src.getCopyright());
055    if (src.hasCaseSensitive())
056      tgt.setCaseSensitiveElement(Boolean14_50.convertBoolean(src.getCaseSensitiveElement()));
057    if (src.hasValueSet())
058      tgt.setValueSet(src.getValueSet());
059    if (src.hasCompositional())
060      tgt.setCompositionalElement(Boolean14_50.convertBoolean(src.getCompositionalElement()));
061    if (src.hasVersionNeeded())
062      tgt.setVersionNeededElement(Boolean14_50.convertBoolean(src.getVersionNeededElement()));
063    if (src.hasContent())
064      tgt.setContentElement(convertCodeSystemContentMode(src.getContentElement()));
065    if (src.hasCount())
066      tgt.setCountElement(UnsignedInt14_50.convertUnsignedInt(src.getCountElement()));
067    for (org.hl7.fhir.r5.model.CodeSystem.CodeSystemFilterComponent t : src.getFilter())
068      tgt.addFilter(convertCodeSystemFilterComponent(t));
069    for (org.hl7.fhir.r5.model.CodeSystem.PropertyComponent t : src.getProperty())
070      tgt.addProperty(convertPropertyComponent(t));
071    for (org.hl7.fhir.r5.model.CodeSystem.ConceptDefinitionComponent t : src.getConcept())
072      tgt.addConcept(convertConceptDefinitionComponent(t));
073    return tgt;
074  }
075
076  public static org.hl7.fhir.r5.model.CodeSystem convertCodeSystem(org.hl7.fhir.dstu2016may.model.CodeSystem src) throws FHIRException {
077    if (src == null || src.isEmpty())
078      return null;
079    org.hl7.fhir.r5.model.CodeSystem tgt = new org.hl7.fhir.r5.model.CodeSystem();
080    ConversionContext14_50.INSTANCE.getVersionConvertor_14_50().copyDomainResource(src, tgt);
081    if (src.hasUrl())
082      tgt.setUrlElement(Uri14_50.convertUri(src.getUrlElement()));
083    if (src.hasIdentifier())
084      tgt.addIdentifier(Identifier14_50.convertIdentifier(src.getIdentifier()));
085    if (src.hasVersion())
086      tgt.setVersionElement(String14_50.convertString(src.getVersionElement()));
087    if (src.hasName())
088      tgt.setNameElement(String14_50.convertString(src.getNameElement()));
089    if (src.hasStatus())
090      tgt.setStatusElement(Enumerations14_50.convertConformanceResourceStatus(src.getStatusElement()));
091    if (src.hasExperimental())
092      tgt.setExperimentalElement(Boolean14_50.convertBoolean(src.getExperimentalElement()));
093    if (src.hasPublisher())
094      tgt.setPublisherElement(String14_50.convertString(src.getPublisherElement()));
095    for (org.hl7.fhir.dstu2016may.model.CodeSystem.CodeSystemContactComponent t : src.getContact())
096      tgt.addContact(convertCodeSystemContactComponent(t));
097    if (src.hasDate())
098      tgt.setDateElement(DateTime14_50.convertDateTime(src.getDateElement()));
099    if (src.hasDescription())
100      tgt.setDescription(src.getDescription());
101    for (org.hl7.fhir.dstu2016may.model.CodeableConcept t : src.getUseContext())
102      if (CodeableConcept14_50.isJurisdiction(t))
103        tgt.addJurisdiction(CodeableConcept14_50.convertCodeableConcept(t));
104      else
105        tgt.addUseContext(CodeableConcept14_50.convertCodeableConceptToUsageContext(t));
106    if (src.hasRequirements())
107      tgt.setPurpose(src.getRequirements());
108    if (src.hasCopyright())
109      tgt.setCopyright(src.getCopyright());
110    if (src.hasCaseSensitive())
111      tgt.setCaseSensitiveElement(Boolean14_50.convertBoolean(src.getCaseSensitiveElement()));
112    if (src.hasValueSet())
113      tgt.setValueSet(src.getValueSet());
114    if (src.hasCompositional())
115      tgt.setCompositionalElement(Boolean14_50.convertBoolean(src.getCompositionalElement()));
116    if (src.hasVersionNeeded())
117      tgt.setVersionNeededElement(Boolean14_50.convertBoolean(src.getVersionNeededElement()));
118    if (src.hasContent())
119      tgt.setContentElement(convertCodeSystemContentMode(src.getContentElement()));
120    if (src.hasCount())
121      tgt.setCountElement(UnsignedInt14_50.convertUnsignedInt(src.getCountElement()));
122    for (org.hl7.fhir.dstu2016may.model.CodeSystem.CodeSystemFilterComponent t : src.getFilter())
123      tgt.addFilter(convertCodeSystemFilterComponent(t));
124    for (org.hl7.fhir.dstu2016may.model.CodeSystem.CodeSystemPropertyComponent t : src.getProperty())
125      tgt.addProperty(convertPropertyComponent(t));
126    for (org.hl7.fhir.dstu2016may.model.CodeSystem.ConceptDefinitionComponent t : src.getConcept())
127      tgt.addConcept(convertConceptDefinitionComponent(t));
128    return tgt;
129  }
130
131  public static org.hl7.fhir.dstu2016may.model.CodeSystem.CodeSystemContactComponent convertCodeSystemContactComponent(org.hl7.fhir.r5.model.ContactDetail src) throws FHIRException {
132    if (src == null || src.isEmpty())
133      return null;
134    org.hl7.fhir.dstu2016may.model.CodeSystem.CodeSystemContactComponent tgt = new org.hl7.fhir.dstu2016may.model.CodeSystem.CodeSystemContactComponent();
135    ConversionContext14_50.INSTANCE.getVersionConvertor_14_50().copyElement(src, tgt);
136    if (src.hasName())
137      tgt.setNameElement(String14_50.convertString(src.getNameElement()));
138    for (org.hl7.fhir.r5.model.ContactPoint t : src.getTelecom())
139      tgt.addTelecom(ContactPoint14_50.convertContactPoint(t));
140    return tgt;
141  }
142
143  public static org.hl7.fhir.r5.model.ContactDetail convertCodeSystemContactComponent(org.hl7.fhir.dstu2016may.model.CodeSystem.CodeSystemContactComponent src) throws FHIRException {
144    if (src == null || src.isEmpty())
145      return null;
146    org.hl7.fhir.r5.model.ContactDetail tgt = new org.hl7.fhir.r5.model.ContactDetail();
147    ConversionContext14_50.INSTANCE.getVersionConvertor_14_50().copyElement(src, tgt);
148    if (src.hasName())
149      tgt.setNameElement(String14_50.convertString(src.getNameElement()));
150    for (org.hl7.fhir.dstu2016may.model.ContactPoint t : src.getTelecom())
151      tgt.addTelecom(ContactPoint14_50.convertContactPoint(t));
152    return tgt;
153  }
154
155  static public org.hl7.fhir.dstu2016may.model.Enumeration<org.hl7.fhir.dstu2016may.model.CodeSystem.CodeSystemContentMode> convertCodeSystemContentMode(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Enumerations.CodeSystemContentMode> src) throws FHIRException {
156    if (src == null || src.isEmpty())
157      return null;
158    org.hl7.fhir.dstu2016may.model.Enumeration<org.hl7.fhir.dstu2016may.model.CodeSystem.CodeSystemContentMode> tgt = new org.hl7.fhir.dstu2016may.model.Enumeration<>(new org.hl7.fhir.dstu2016may.model.CodeSystem.CodeSystemContentModeEnumFactory());
159    ConversionContext14_50.INSTANCE.getVersionConvertor_14_50().copyElement(src, tgt);
160    switch (src.getValue()) {
161      case NOTPRESENT:
162        tgt.setValue(org.hl7.fhir.dstu2016may.model.CodeSystem.CodeSystemContentMode.NOTPRESENT);
163        break;
164      case EXAMPLE:
165        tgt.setValue(org.hl7.fhir.dstu2016may.model.CodeSystem.CodeSystemContentMode.EXAMPLAR);
166        break;
167      case FRAGMENT:
168        tgt.setValue(org.hl7.fhir.dstu2016may.model.CodeSystem.CodeSystemContentMode.FRAGMENT);
169        break;
170      case COMPLETE:
171        tgt.setValue(org.hl7.fhir.dstu2016may.model.CodeSystem.CodeSystemContentMode.COMPLETE);
172        break;
173      default:
174        tgt.setValue(org.hl7.fhir.dstu2016may.model.CodeSystem.CodeSystemContentMode.NULL);
175        break;
176    }
177    return tgt;
178  }
179
180  static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Enumerations.CodeSystemContentMode> convertCodeSystemContentMode(org.hl7.fhir.dstu2016may.model.Enumeration<org.hl7.fhir.dstu2016may.model.CodeSystem.CodeSystemContentMode> src) throws FHIRException {
181    if (src == null || src.isEmpty())
182      return null;
183    org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Enumerations.CodeSystemContentMode> tgt = new org.hl7.fhir.r5.model.Enumeration<>(new org.hl7.fhir.r5.model.Enumerations.CodeSystemContentModeEnumFactory());
184    ConversionContext14_50.INSTANCE.getVersionConvertor_14_50().copyElement(src, tgt);
185    switch (src.getValue()) {
186      case NOTPRESENT:
187        tgt.setValue(org.hl7.fhir.r5.model.Enumerations.CodeSystemContentMode.NOTPRESENT);
188        break;
189      case EXAMPLAR:
190        tgt.setValue(org.hl7.fhir.r5.model.Enumerations.CodeSystemContentMode.EXAMPLE);
191        break;
192      case FRAGMENT:
193        tgt.setValue(org.hl7.fhir.r5.model.Enumerations.CodeSystemContentMode.FRAGMENT);
194        break;
195      case COMPLETE:
196        tgt.setValue(org.hl7.fhir.r5.model.Enumerations.CodeSystemContentMode.COMPLETE);
197        break;
198      default:
199        tgt.setValue(org.hl7.fhir.r5.model.Enumerations.CodeSystemContentMode.NULL);
200        break;
201    }
202    return tgt;
203  }
204
205  public static org.hl7.fhir.dstu2016may.model.CodeSystem.CodeSystemFilterComponent convertCodeSystemFilterComponent(org.hl7.fhir.r5.model.CodeSystem.CodeSystemFilterComponent src) throws FHIRException {
206    if (src == null || src.isEmpty())
207      return null;
208    org.hl7.fhir.dstu2016may.model.CodeSystem.CodeSystemFilterComponent tgt = new org.hl7.fhir.dstu2016may.model.CodeSystem.CodeSystemFilterComponent();
209    ConversionContext14_50.INSTANCE.getVersionConvertor_14_50().copyBackboneElement(src,tgt);
210    if (src.hasCodeElement())
211      tgt.setCodeElement(Code14_50.convertCode(src.getCodeElement()));
212    if (src.hasDescription())
213      tgt.setDescriptionElement(String14_50.convertString(src.getDescriptionElement()));
214    for (Enumeration<FilterOperator> t : src.getOperator()) tgt.addOperator(t.getValue().toCode());
215    if (src.hasValueElement())
216      tgt.setValueElement(String14_50.convertString(src.getValueElement()));
217    return tgt;
218  }
219
220  public static org.hl7.fhir.r5.model.CodeSystem.CodeSystemFilterComponent convertCodeSystemFilterComponent(org.hl7.fhir.dstu2016may.model.CodeSystem.CodeSystemFilterComponent src) throws FHIRException {
221    if (src == null || src.isEmpty())
222      return null;
223    org.hl7.fhir.r5.model.CodeSystem.CodeSystemFilterComponent tgt = new org.hl7.fhir.r5.model.CodeSystem.CodeSystemFilterComponent();
224    ConversionContext14_50.INSTANCE.getVersionConvertor_14_50().copyBackboneElement(src,tgt);
225    if (src.hasCodeElement())
226      tgt.setCodeElement(Code14_50.convertCode(src.getCodeElement()));
227    if (src.hasDescription())
228      tgt.setDescriptionElement(String14_50.convertString(src.getDescriptionElement()));
229    for (org.hl7.fhir.dstu2016may.model.CodeType t : src.getOperator())
230      try {
231        tgt.addOperator(Enumerations.FilterOperator.fromCode(t.getValue()));
232      } catch (org.hl7.fhir.exceptions.FHIRException e) {
233        throw new FHIRException(e);
234      }
235    if (src.hasValueElement())
236      tgt.setValueElement(String14_50.convertString(src.getValueElement()));
237    return tgt;
238  }
239
240  public static org.hl7.fhir.r5.model.CodeSystem.ConceptDefinitionComponent convertConceptDefinitionComponent(org.hl7.fhir.dstu2016may.model.CodeSystem.ConceptDefinitionComponent src) throws FHIRException {
241    if (src == null || src.isEmpty())
242      return null;
243    org.hl7.fhir.r5.model.CodeSystem.ConceptDefinitionComponent tgt = new org.hl7.fhir.r5.model.CodeSystem.ConceptDefinitionComponent();
244    ConversionContext14_50.INSTANCE.getVersionConvertor_14_50().copyBackboneElement(src,tgt);
245    if (src.hasCodeElement())
246      tgt.setCodeElement(Code14_50.convertCode(src.getCodeElement()));
247    if (src.hasDisplay())
248      tgt.setDisplayElement(String14_50.convertString(src.getDisplayElement()));
249    if (src.hasDefinition())
250      tgt.setDefinitionElement(String14_50.convertString(src.getDefinitionElement()));
251    for (org.hl7.fhir.dstu2016may.model.CodeSystem.ConceptDefinitionDesignationComponent t : src.getDesignation())
252      tgt.addDesignation(convertConceptDefinitionDesignationComponent(t));
253    for (ConceptDefinitionPropertyComponent t : src.getProperty()) tgt.addProperty(convertConceptPropertyComponent(t));
254    for (org.hl7.fhir.dstu2016may.model.CodeSystem.ConceptDefinitionComponent t : src.getConcept())
255      tgt.addConcept(convertConceptDefinitionComponent(t));
256    return tgt;
257  }
258
259  public static org.hl7.fhir.dstu2016may.model.CodeSystem.ConceptDefinitionComponent convertConceptDefinitionComponent(org.hl7.fhir.r5.model.CodeSystem.ConceptDefinitionComponent src) throws FHIRException {
260    if (src == null || src.isEmpty())
261      return null;
262    org.hl7.fhir.dstu2016may.model.CodeSystem.ConceptDefinitionComponent tgt = new org.hl7.fhir.dstu2016may.model.CodeSystem.ConceptDefinitionComponent();
263    ConversionContext14_50.INSTANCE.getVersionConvertor_14_50().copyBackboneElement(src,tgt);
264    if (src.hasCodeElement())
265      tgt.setCodeElement(Code14_50.convertCode(src.getCodeElement()));
266    if (src.hasDisplay())
267      tgt.setDisplayElement(String14_50.convertString(src.getDisplayElement()));
268    if (src.hasDefinition())
269      tgt.setDefinitionElement(String14_50.convertString(src.getDefinitionElement()));
270    for (org.hl7.fhir.r5.model.CodeSystem.ConceptDefinitionDesignationComponent t : src.getDesignation())
271      tgt.addDesignation(convertConceptDefinitionDesignationComponent(t));
272    for (org.hl7.fhir.r5.model.CodeSystem.ConceptPropertyComponent t : src.getProperty())
273      tgt.addProperty(convertConceptPropertyComponent(t));
274    for (org.hl7.fhir.r5.model.CodeSystem.ConceptDefinitionComponent t : src.getConcept())
275      tgt.addConcept(convertConceptDefinitionComponent(t));
276    return tgt;
277  }
278
279  public static org.hl7.fhir.r5.model.CodeSystem.ConceptDefinitionDesignationComponent convertConceptDefinitionDesignationComponent(org.hl7.fhir.dstu2016may.model.CodeSystem.ConceptDefinitionDesignationComponent src) throws FHIRException {
280    if (src == null || src.isEmpty())
281      return null;
282    org.hl7.fhir.r5.model.CodeSystem.ConceptDefinitionDesignationComponent tgt = new org.hl7.fhir.r5.model.CodeSystem.ConceptDefinitionDesignationComponent();
283    ConversionContext14_50.INSTANCE.getVersionConvertor_14_50().copyBackboneElement(src,tgt);
284    if (src.hasLanguage())
285      tgt.setLanguageElement(Code14_50.convertCode(src.getLanguageElement()));
286    if (src.hasUse())
287      tgt.setUse(Coding14_50.convertCoding(src.getUse()));
288    if (src.hasValueElement())
289      tgt.setValueElement(String14_50.convertString(src.getValueElement()));
290    return tgt;
291  }
292
293  public static org.hl7.fhir.dstu2016may.model.CodeSystem.ConceptDefinitionDesignationComponent convertConceptDefinitionDesignationComponent(org.hl7.fhir.r5.model.CodeSystem.ConceptDefinitionDesignationComponent src) throws FHIRException {
294    if (src == null || src.isEmpty())
295      return null;
296    org.hl7.fhir.dstu2016may.model.CodeSystem.ConceptDefinitionDesignationComponent tgt = new org.hl7.fhir.dstu2016may.model.CodeSystem.ConceptDefinitionDesignationComponent();
297    ConversionContext14_50.INSTANCE.getVersionConvertor_14_50().copyBackboneElement(src,tgt);
298    if (src.hasLanguage())
299      tgt.setLanguageElement(Code14_50.convertCode(src.getLanguageElement()));
300    if (src.hasUse())
301      tgt.setUse(Coding14_50.convertCoding(src.getUse()));
302    if (src.hasValueElement())
303      tgt.setValueElement(String14_50.convertString(src.getValueElement()));
304    return tgt;
305  }
306
307  public static org.hl7.fhir.dstu2016may.model.CodeSystem.ConceptDefinitionPropertyComponent convertConceptPropertyComponent(org.hl7.fhir.r5.model.CodeSystem.ConceptPropertyComponent src) throws FHIRException {
308    if (src == null || src.isEmpty())
309      return null;
310    org.hl7.fhir.dstu2016may.model.CodeSystem.ConceptDefinitionPropertyComponent tgt = new org.hl7.fhir.dstu2016may.model.CodeSystem.ConceptDefinitionPropertyComponent();
311    ConversionContext14_50.INSTANCE.getVersionConvertor_14_50().copyBackboneElement(src,tgt);
312    if (src.hasCodeElement())
313      tgt.setCodeElement(Code14_50.convertCode(src.getCodeElement()));
314    if (src.hasValue())
315      tgt.setValue(ConversionContext14_50.INSTANCE.getVersionConvertor_14_50().convertType(src.getValue()));
316    return tgt;
317  }
318
319  public static org.hl7.fhir.r5.model.CodeSystem.ConceptPropertyComponent convertConceptPropertyComponent(org.hl7.fhir.dstu2016may.model.CodeSystem.ConceptDefinitionPropertyComponent src) throws FHIRException {
320    if (src == null || src.isEmpty())
321      return null;
322    org.hl7.fhir.r5.model.CodeSystem.ConceptPropertyComponent tgt = new org.hl7.fhir.r5.model.CodeSystem.ConceptPropertyComponent();
323    ConversionContext14_50.INSTANCE.getVersionConvertor_14_50().copyBackboneElement(src,tgt);
324    if (src.hasCodeElement())
325      tgt.setCodeElement(Code14_50.convertCode(src.getCodeElement()));
326    if (src.hasValue())
327      tgt.setValue(ConversionContext14_50.INSTANCE.getVersionConvertor_14_50().convertType(src.getValue()));
328    return tgt;
329  }
330
331  public static org.hl7.fhir.r5.model.CodeSystem.PropertyComponent convertPropertyComponent(org.hl7.fhir.dstu2016may.model.CodeSystem.CodeSystemPropertyComponent src) throws FHIRException {
332    if (src == null || src.isEmpty())
333      return null;
334    org.hl7.fhir.r5.model.CodeSystem.PropertyComponent tgt = new org.hl7.fhir.r5.model.CodeSystem.PropertyComponent();
335    ConversionContext14_50.INSTANCE.getVersionConvertor_14_50().copyBackboneElement(src,tgt);
336    if (src.hasCodeElement())
337      tgt.setCodeElement(Code14_50.convertCode(src.getCodeElement()));
338    if (src.hasDescription())
339      tgt.setDescriptionElement(String14_50.convertString(src.getDescriptionElement()));
340    if (src.hasType())
341      tgt.setTypeElement(convertPropertyType(src.getTypeElement()));
342    return tgt;
343  }
344
345  public static org.hl7.fhir.dstu2016may.model.CodeSystem.CodeSystemPropertyComponent convertPropertyComponent(org.hl7.fhir.r5.model.CodeSystem.PropertyComponent src) throws FHIRException {
346    if (src == null || src.isEmpty())
347      return null;
348    org.hl7.fhir.dstu2016may.model.CodeSystem.CodeSystemPropertyComponent tgt = new org.hl7.fhir.dstu2016may.model.CodeSystem.CodeSystemPropertyComponent();
349    ConversionContext14_50.INSTANCE.getVersionConvertor_14_50().copyBackboneElement(src,tgt);
350    if (src.hasCodeElement())
351      tgt.setCodeElement(Code14_50.convertCode(src.getCodeElement()));
352    if (src.hasDescription())
353      tgt.setDescriptionElement(String14_50.convertString(src.getDescriptionElement()));
354    if (src.hasType())
355      tgt.setTypeElement(convertPropertyType(src.getTypeElement()));
356    return tgt;
357  }
358
359  static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.CodeSystem.PropertyType> convertPropertyType(org.hl7.fhir.dstu2016may.model.Enumeration<org.hl7.fhir.dstu2016may.model.CodeSystem.PropertyType> src) throws FHIRException {
360    if (src == null || src.isEmpty())
361      return null;
362    org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.CodeSystem.PropertyType> tgt = new org.hl7.fhir.r5.model.Enumeration<>(new org.hl7.fhir.r5.model.CodeSystem.PropertyTypeEnumFactory());
363    ConversionContext14_50.INSTANCE.getVersionConvertor_14_50().copyElement(src, tgt);
364    switch (src.getValue()) {
365      case CODE:
366        tgt.setValue(org.hl7.fhir.r5.model.CodeSystem.PropertyType.CODE);
367        break;
368      case CODING:
369        tgt.setValue(org.hl7.fhir.r5.model.CodeSystem.PropertyType.CODING);
370        break;
371      case STRING:
372        tgt.setValue(org.hl7.fhir.r5.model.CodeSystem.PropertyType.STRING);
373        break;
374      case INTEGER:
375        tgt.setValue(org.hl7.fhir.r5.model.CodeSystem.PropertyType.INTEGER);
376        break;
377      case BOOLEAN:
378        tgt.setValue(org.hl7.fhir.r5.model.CodeSystem.PropertyType.BOOLEAN);
379        break;
380      case DATETIME:
381        tgt.setValue(org.hl7.fhir.r5.model.CodeSystem.PropertyType.DATETIME);
382        break;
383      default:
384        tgt.setValue(org.hl7.fhir.r5.model.CodeSystem.PropertyType.NULL);
385        break;
386    }
387    return tgt;
388  }
389
390  static public org.hl7.fhir.dstu2016may.model.Enumeration<org.hl7.fhir.dstu2016may.model.CodeSystem.PropertyType> convertPropertyType(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.CodeSystem.PropertyType> src) throws FHIRException {
391    if (src == null || src.isEmpty())
392      return null;
393    org.hl7.fhir.dstu2016may.model.Enumeration<org.hl7.fhir.dstu2016may.model.CodeSystem.PropertyType> tgt = new org.hl7.fhir.dstu2016may.model.Enumeration<>(new org.hl7.fhir.dstu2016may.model.CodeSystem.PropertyTypeEnumFactory());
394    ConversionContext14_50.INSTANCE.getVersionConvertor_14_50().copyElement(src, tgt);
395    switch (src.getValue()) {
396      case CODE:
397        tgt.setValue(org.hl7.fhir.dstu2016may.model.CodeSystem.PropertyType.CODE);
398        break;
399      case CODING:
400        tgt.setValue(org.hl7.fhir.dstu2016may.model.CodeSystem.PropertyType.CODING);
401        break;
402      case STRING:
403        tgt.setValue(org.hl7.fhir.dstu2016may.model.CodeSystem.PropertyType.STRING);
404        break;
405      case INTEGER:
406        tgt.setValue(org.hl7.fhir.dstu2016may.model.CodeSystem.PropertyType.INTEGER);
407        break;
408      case BOOLEAN:
409        tgt.setValue(org.hl7.fhir.dstu2016may.model.CodeSystem.PropertyType.BOOLEAN);
410        break;
411      case DATETIME:
412        tgt.setValue(org.hl7.fhir.dstu2016may.model.CodeSystem.PropertyType.DATETIME);
413        break;
414      default:
415        tgt.setValue(org.hl7.fhir.dstu2016may.model.CodeSystem.PropertyType.NULL);
416        break;
417    }
418    return tgt;
419  }
420}