001package org.hl7.fhir.convertors.conv40_50.resources40_50;
002
003import org.hl7.fhir.convertors.context.ConversionContext40_50;
004import org.hl7.fhir.convertors.conv40_50.datatypes40_50.general40_50.CodeableConcept40_50;
005import org.hl7.fhir.convertors.conv40_50.datatypes40_50.metadata40_50.ContactDetail40_50;
006import org.hl7.fhir.convertors.conv40_50.datatypes40_50.metadata40_50.UsageContext40_50;
007import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.Boolean40_50;
008import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.Canonical40_50;
009import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.Code40_50;
010import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.DateTime40_50;
011import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.MarkDown40_50;
012import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.String40_50;
013import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.Uri40_50;
014import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.Url40_50;
015import org.hl7.fhir.exceptions.FHIRException;
016import org.hl7.fhir.r4.model.CodeType;
017import org.hl7.fhir.r5.model.Enumeration;
018import org.hl7.fhir.r5.model.Enumerations.CommonLanguages;
019import org.hl7.fhir.r5.model.Enumerations.CommonLanguagesEnumFactory;
020
021/*
022  Copyright (c) 2011+, HL7, Inc.
023  All rights reserved.
024  
025  Redistribution and use in source and binary forms, with or without modification, 
026  are permitted provided that the following conditions are met:
027  
028   * Redistributions of source code must retain the above copyright notice, this 
029     list of conditions and the following disclaimer.
030   * Redistributions in binary form must reproduce the above copyright notice, 
031     this list of conditions and the following disclaimer in the documentation 
032     and/or other materials provided with the distribution.
033   * Neither the name of HL7 nor the names of its contributors may be used to 
034     endorse or promote products derived from this software without specific 
035     prior written permission.
036  
037  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 
038  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
039  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 
040  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 
041  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 
042  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 
043  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
044  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
045  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
046  POSSIBILITY OF SUCH DAMAGE.
047  
048*/
049// Generated on Sun, Feb 24, 2019 11:37+1100 for FHIR v4.0.0
050public class TerminologyCapabilities40_50 {
051
052  public static org.hl7.fhir.r5.model.TerminologyCapabilities convertTerminologyCapabilities(org.hl7.fhir.r4.model.TerminologyCapabilities src) throws FHIRException {
053    if (src == null)
054      return null;
055    org.hl7.fhir.r5.model.TerminologyCapabilities tgt = new org.hl7.fhir.r5.model.TerminologyCapabilities();
056    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyDomainResource(src, tgt);
057    if (src.hasUrl())
058      tgt.setUrlElement(Uri40_50.convertUri(src.getUrlElement()));
059    if (src.hasVersion())
060      tgt.setVersionElement(String40_50.convertString(src.getVersionElement()));
061    if (src.hasName())
062      tgt.setNameElement(String40_50.convertString(src.getNameElement()));
063    if (src.hasTitle())
064      tgt.setTitleElement(String40_50.convertString(src.getTitleElement()));
065    if (src.hasStatus())
066      tgt.setStatusElement(Enumerations40_50.convertPublicationStatus(src.getStatusElement()));
067    if (src.hasExperimental())
068      tgt.setExperimentalElement(Boolean40_50.convertBoolean(src.getExperimentalElement()));
069    if (src.hasDate())
070      tgt.setDateElement(DateTime40_50.convertDateTime(src.getDateElement()));
071    if (src.hasPublisher())
072      tgt.setPublisherElement(String40_50.convertString(src.getPublisherElement()));
073    for (org.hl7.fhir.r4.model.ContactDetail t : src.getContact())
074      tgt.addContact(ContactDetail40_50.convertContactDetail(t));
075    if (src.hasDescription())
076      tgt.setDescriptionElement(MarkDown40_50.convertMarkdown(src.getDescriptionElement()));
077    for (org.hl7.fhir.r4.model.UsageContext t : src.getUseContext())
078      tgt.addUseContext(UsageContext40_50.convertUsageContext(t));
079    for (org.hl7.fhir.r4.model.CodeableConcept t : src.getJurisdiction())
080      tgt.addJurisdiction(CodeableConcept40_50.convertCodeableConcept(t));
081    if (src.hasPurpose())
082      tgt.setPurposeElement(MarkDown40_50.convertMarkdown(src.getPurposeElement()));
083    if (src.hasCopyright())
084      tgt.setCopyrightElement(MarkDown40_50.convertMarkdown(src.getCopyrightElement()));
085    if (src.hasKind())
086      tgt.setKindElement(convertCapabilityStatementKind(src.getKindElement()));
087    if (src.hasSoftware())
088      tgt.setSoftware(convertTerminologyCapabilitiesSoftwareComponent(src.getSoftware()));
089    if (src.hasImplementation())
090      tgt.setImplementation(convertTerminologyCapabilitiesImplementationComponent(src.getImplementation()));
091    if (src.hasLockedDate())
092      tgt.setLockedDateElement(Boolean40_50.convertBoolean(src.getLockedDateElement()));
093    for (org.hl7.fhir.r4.model.TerminologyCapabilities.TerminologyCapabilitiesCodeSystemComponent t : src.getCodeSystem())
094      tgt.addCodeSystem(convertTerminologyCapabilitiesCodeSystemComponent(t));
095    if (src.hasExpansion())
096      tgt.setExpansion(convertTerminologyCapabilitiesExpansionComponent(src.getExpansion()));
097    if (src.hasCodeSearch())
098      tgt.setCodeSearchElement(convertCodeSearchSupport(src.getCodeSearchElement()));
099    if (src.hasValidateCode())
100      tgt.setValidateCode(convertTerminologyCapabilitiesValidateCodeComponent(src.getValidateCode()));
101    if (src.hasTranslation())
102      tgt.setTranslation(convertTerminologyCapabilitiesTranslationComponent(src.getTranslation()));
103    if (src.hasClosure())
104      tgt.setClosure(convertTerminologyCapabilitiesClosureComponent(src.getClosure()));
105    return tgt;
106  }
107
108  public static org.hl7.fhir.r4.model.TerminologyCapabilities convertTerminologyCapabilities(org.hl7.fhir.r5.model.TerminologyCapabilities src) throws FHIRException {
109    if (src == null)
110      return null;
111    org.hl7.fhir.r4.model.TerminologyCapabilities tgt = new org.hl7.fhir.r4.model.TerminologyCapabilities();
112    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyDomainResource(src, tgt);
113    if (src.hasUrl())
114      tgt.setUrlElement(Uri40_50.convertUri(src.getUrlElement()));
115    if (src.hasVersion())
116      tgt.setVersionElement(String40_50.convertString(src.getVersionElement()));
117    if (src.hasName())
118      tgt.setNameElement(String40_50.convertString(src.getNameElement()));
119    if (src.hasTitle())
120      tgt.setTitleElement(String40_50.convertString(src.getTitleElement()));
121    if (src.hasStatus())
122      tgt.setStatusElement(Enumerations40_50.convertPublicationStatus(src.getStatusElement()));
123    if (src.hasExperimental())
124      tgt.setExperimentalElement(Boolean40_50.convertBoolean(src.getExperimentalElement()));
125    if (src.hasDate())
126      tgt.setDateElement(DateTime40_50.convertDateTime(src.getDateElement()));
127    if (src.hasPublisher())
128      tgt.setPublisherElement(String40_50.convertString(src.getPublisherElement()));
129    for (org.hl7.fhir.r5.model.ContactDetail t : src.getContact())
130      tgt.addContact(ContactDetail40_50.convertContactDetail(t));
131    if (src.hasDescription())
132      tgt.setDescriptionElement(MarkDown40_50.convertMarkdown(src.getDescriptionElement()));
133    for (org.hl7.fhir.r5.model.UsageContext t : src.getUseContext())
134      tgt.addUseContext(UsageContext40_50.convertUsageContext(t));
135    for (org.hl7.fhir.r5.model.CodeableConcept t : src.getJurisdiction())
136      tgt.addJurisdiction(CodeableConcept40_50.convertCodeableConcept(t));
137    if (src.hasPurpose())
138      tgt.setPurposeElement(MarkDown40_50.convertMarkdown(src.getPurposeElement()));
139    if (src.hasCopyright())
140      tgt.setCopyrightElement(MarkDown40_50.convertMarkdown(src.getCopyrightElement()));
141    if (src.hasKind())
142      tgt.setKindElement(convertCapabilityStatementKind(src.getKindElement()));
143    if (src.hasSoftware())
144      tgt.setSoftware(convertTerminologyCapabilitiesSoftwareComponent(src.getSoftware()));
145    if (src.hasImplementation())
146      tgt.setImplementation(convertTerminologyCapabilitiesImplementationComponent(src.getImplementation()));
147    if (src.hasLockedDate())
148      tgt.setLockedDateElement(Boolean40_50.convertBoolean(src.getLockedDateElement()));
149    for (org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesCodeSystemComponent t : src.getCodeSystem())
150      tgt.addCodeSystem(convertTerminologyCapabilitiesCodeSystemComponent(t));
151    if (src.hasExpansion())
152      tgt.setExpansion(convertTerminologyCapabilitiesExpansionComponent(src.getExpansion()));
153    if (src.hasCodeSearch())
154      tgt.setCodeSearchElement(convertCodeSearchSupport(src.getCodeSearchElement()));
155    if (src.hasValidateCode())
156      tgt.setValidateCode(convertTerminologyCapabilitiesValidateCodeComponent(src.getValidateCode()));
157    if (src.hasTranslation())
158      tgt.setTranslation(convertTerminologyCapabilitiesTranslationComponent(src.getTranslation()));
159    if (src.hasClosure())
160      tgt.setClosure(convertTerminologyCapabilitiesClosureComponent(src.getClosure()));
161    return tgt;
162  }
163
164  static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Enumerations.CapabilityStatementKind> convertCapabilityStatementKind(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.TerminologyCapabilities.CapabilityStatementKind> src) throws FHIRException {
165    if (src == null || src.isEmpty())
166      return null;
167    org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Enumerations.CapabilityStatementKind> tgt = new org.hl7.fhir.r5.model.Enumeration<>(new org.hl7.fhir.r5.model.Enumerations.CapabilityStatementKindEnumFactory());
168    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
169    switch (src.getValue()) {
170      case INSTANCE:
171        tgt.setValue(org.hl7.fhir.r5.model.Enumerations.CapabilityStatementKind.INSTANCE);
172        break;
173      case CAPABILITY:
174        tgt.setValue(org.hl7.fhir.r5.model.Enumerations.CapabilityStatementKind.CAPABILITY);
175        break;
176      case REQUIREMENTS:
177        tgt.setValue(org.hl7.fhir.r5.model.Enumerations.CapabilityStatementKind.REQUIREMENTS);
178        break;
179      default:
180        tgt.setValue(org.hl7.fhir.r5.model.Enumerations.CapabilityStatementKind.NULL);
181        break;
182    }
183    return tgt;
184  }
185
186  static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.TerminologyCapabilities.CapabilityStatementKind> convertCapabilityStatementKind(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Enumerations.CapabilityStatementKind> src) throws FHIRException {
187    if (src == null || src.isEmpty())
188      return null;
189    org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.TerminologyCapabilities.CapabilityStatementKind> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.TerminologyCapabilities.CapabilityStatementKindEnumFactory());
190    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
191    switch (src.getValue()) {
192      case INSTANCE:
193        tgt.setValue(org.hl7.fhir.r4.model.TerminologyCapabilities.CapabilityStatementKind.INSTANCE);
194        break;
195      case CAPABILITY:
196        tgt.setValue(org.hl7.fhir.r4.model.TerminologyCapabilities.CapabilityStatementKind.CAPABILITY);
197        break;
198      case REQUIREMENTS:
199        tgt.setValue(org.hl7.fhir.r4.model.TerminologyCapabilities.CapabilityStatementKind.REQUIREMENTS);
200        break;
201      default:
202        tgt.setValue(org.hl7.fhir.r4.model.TerminologyCapabilities.CapabilityStatementKind.NULL);
203        break;
204    }
205    return tgt;
206  }
207
208  static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.TerminologyCapabilities.CodeSearchSupport> convertCodeSearchSupport(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.TerminologyCapabilities.CodeSearchSupport> src) throws FHIRException {
209    if (src == null || src.isEmpty())
210      return null;
211    org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.TerminologyCapabilities.CodeSearchSupport> tgt = new org.hl7.fhir.r5.model.Enumeration<>(new org.hl7.fhir.r5.model.TerminologyCapabilities.CodeSearchSupportEnumFactory());
212    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
213    switch (src.getValue()) {
214      case EXPLICIT:
215        tgt.setValue(org.hl7.fhir.r5.model.TerminologyCapabilities.CodeSearchSupport.INCOMPOSE);
216        break;
217      case ALL:
218        tgt.setValue(org.hl7.fhir.r5.model.TerminologyCapabilities.CodeSearchSupport.INCOMPOSEOREXPANSION);
219        break;
220      default:
221        tgt.setValue(org.hl7.fhir.r5.model.TerminologyCapabilities.CodeSearchSupport.NULL);
222        break;
223    }
224    return tgt;
225  }
226
227  static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.TerminologyCapabilities.CodeSearchSupport> convertCodeSearchSupport(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.TerminologyCapabilities.CodeSearchSupport> src) throws FHIRException {
228    if (src == null || src.isEmpty())
229      return null;
230    org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.TerminologyCapabilities.CodeSearchSupport> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.TerminologyCapabilities.CodeSearchSupportEnumFactory());
231    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
232    switch (src.getValue()) {
233      case INCOMPOSE:
234        tgt.setValue(org.hl7.fhir.r4.model.TerminologyCapabilities.CodeSearchSupport.EXPLICIT);
235        break;
236      case INCOMPOSEOREXPANSION:
237        tgt.setValue(org.hl7.fhir.r4.model.TerminologyCapabilities.CodeSearchSupport.ALL);
238        break;
239      default:
240        tgt.setValue(org.hl7.fhir.r4.model.TerminologyCapabilities.CodeSearchSupport.NULL);
241        break;
242    }
243    return tgt;
244  }
245
246  public static org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesSoftwareComponent convertTerminologyCapabilitiesSoftwareComponent(org.hl7.fhir.r4.model.TerminologyCapabilities.TerminologyCapabilitiesSoftwareComponent src) throws FHIRException {
247    if (src == null)
248      return null;
249    org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesSoftwareComponent tgt = new org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesSoftwareComponent();
250    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
251    if (src.hasName())
252      tgt.setNameElement(String40_50.convertString(src.getNameElement()));
253    if (src.hasVersion())
254      tgt.setVersionElement(String40_50.convertString(src.getVersionElement()));
255    return tgt;
256  }
257
258  public static org.hl7.fhir.r4.model.TerminologyCapabilities.TerminologyCapabilitiesSoftwareComponent convertTerminologyCapabilitiesSoftwareComponent(org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesSoftwareComponent src) throws FHIRException {
259    if (src == null)
260      return null;
261    org.hl7.fhir.r4.model.TerminologyCapabilities.TerminologyCapabilitiesSoftwareComponent tgt = new org.hl7.fhir.r4.model.TerminologyCapabilities.TerminologyCapabilitiesSoftwareComponent();
262    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
263    if (src.hasName())
264      tgt.setNameElement(String40_50.convertString(src.getNameElement()));
265    if (src.hasVersion())
266      tgt.setVersionElement(String40_50.convertString(src.getVersionElement()));
267    return tgt;
268  }
269
270  public static org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesImplementationComponent convertTerminologyCapabilitiesImplementationComponent(org.hl7.fhir.r4.model.TerminologyCapabilities.TerminologyCapabilitiesImplementationComponent src) throws FHIRException {
271    if (src == null)
272      return null;
273    org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesImplementationComponent tgt = new org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesImplementationComponent();
274    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
275    if (src.hasDescription())
276      tgt.setDescriptionElement(String40_50.convertString(src.getDescriptionElement()));
277    if (src.hasUrl())
278      tgt.setUrlElement(Url40_50.convertUrl(src.getUrlElement()));
279    return tgt;
280  }
281
282  public static org.hl7.fhir.r4.model.TerminologyCapabilities.TerminologyCapabilitiesImplementationComponent convertTerminologyCapabilitiesImplementationComponent(org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesImplementationComponent src) throws FHIRException {
283    if (src == null)
284      return null;
285    org.hl7.fhir.r4.model.TerminologyCapabilities.TerminologyCapabilitiesImplementationComponent tgt = new org.hl7.fhir.r4.model.TerminologyCapabilities.TerminologyCapabilitiesImplementationComponent();
286    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
287    if (src.hasDescription())
288      tgt.setDescriptionElement(String40_50.convertString(src.getDescriptionElement()));
289    if (src.hasUrl())
290      tgt.setUrlElement(Url40_50.convertUrl(src.getUrlElement()));
291    return tgt;
292  }
293
294  public static org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesCodeSystemComponent convertTerminologyCapabilitiesCodeSystemComponent(org.hl7.fhir.r4.model.TerminologyCapabilities.TerminologyCapabilitiesCodeSystemComponent src) throws FHIRException {
295    if (src == null)
296      return null;
297    org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesCodeSystemComponent tgt = new org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesCodeSystemComponent();
298    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
299    if (src.hasUri())
300      tgt.setUriElement(Canonical40_50.convertCanonical(src.getUriElement()));
301    for (org.hl7.fhir.r4.model.TerminologyCapabilities.TerminologyCapabilitiesCodeSystemVersionComponent t : src.getVersion())
302      tgt.addVersion(convertTerminologyCapabilitiesCodeSystemVersionComponent(t));
303    if (src.hasSubsumption())
304      tgt.setSubsumptionElement(Boolean40_50.convertBoolean(src.getSubsumptionElement()));
305    return tgt;
306  }
307
308  public static org.hl7.fhir.r4.model.TerminologyCapabilities.TerminologyCapabilitiesCodeSystemComponent convertTerminologyCapabilitiesCodeSystemComponent(org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesCodeSystemComponent src) throws FHIRException {
309    if (src == null)
310      return null;
311    org.hl7.fhir.r4.model.TerminologyCapabilities.TerminologyCapabilitiesCodeSystemComponent tgt = new org.hl7.fhir.r4.model.TerminologyCapabilities.TerminologyCapabilitiesCodeSystemComponent();
312    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
313    if (src.hasUri())
314      tgt.setUriElement(Canonical40_50.convertCanonical(src.getUriElement()));
315    for (org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesCodeSystemVersionComponent t : src.getVersion())
316      tgt.addVersion(convertTerminologyCapabilitiesCodeSystemVersionComponent(t));
317    if (src.hasSubsumption())
318      tgt.setSubsumptionElement(Boolean40_50.convertBoolean(src.getSubsumptionElement()));
319    return tgt;
320  }
321
322  public static org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesCodeSystemVersionComponent convertTerminologyCapabilitiesCodeSystemVersionComponent(org.hl7.fhir.r4.model.TerminologyCapabilities.TerminologyCapabilitiesCodeSystemVersionComponent src) throws FHIRException {
323    if (src == null)
324      return null;
325    org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesCodeSystemVersionComponent tgt = new org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesCodeSystemVersionComponent();
326    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
327    if (src.hasCode())
328      tgt.setCodeElement(String40_50.convertString(src.getCodeElement()));
329    if (src.hasIsDefault())
330      tgt.setIsDefaultElement(Boolean40_50.convertBoolean(src.getIsDefaultElement()));
331    if (src.hasCompositional())
332      tgt.setCompositionalElement(Boolean40_50.convertBoolean(src.getCompositionalElement()));
333    for (org.hl7.fhir.r4.model.CodeType t : src.getLanguage()) tgt.getLanguage().add(new Enumeration<CommonLanguages>(new CommonLanguagesEnumFactory(), t.getCode()));
334    for (org.hl7.fhir.r4.model.TerminologyCapabilities.TerminologyCapabilitiesCodeSystemVersionFilterComponent t : src.getFilter())
335      tgt.addFilter(convertTerminologyCapabilitiesCodeSystemVersionFilterComponent(t));
336    for (org.hl7.fhir.r4.model.CodeType t : src.getProperty()) tgt.getProperty().add(Code40_50.convertCode(t));
337    return tgt;
338  }
339
340  public static org.hl7.fhir.r4.model.TerminologyCapabilities.TerminologyCapabilitiesCodeSystemVersionComponent convertTerminologyCapabilitiesCodeSystemVersionComponent(org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesCodeSystemVersionComponent src) throws FHIRException {
341    if (src == null)
342      return null;
343    org.hl7.fhir.r4.model.TerminologyCapabilities.TerminologyCapabilitiesCodeSystemVersionComponent tgt = new org.hl7.fhir.r4.model.TerminologyCapabilities.TerminologyCapabilitiesCodeSystemVersionComponent();
344    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
345    if (src.hasCode())
346      tgt.setCodeElement(String40_50.convertString(src.getCodeElement()));
347    if (src.hasIsDefault())
348      tgt.setIsDefaultElement(Boolean40_50.convertBoolean(src.getIsDefaultElement()));
349    if (src.hasCompositional())
350      tgt.setCompositionalElement(Boolean40_50.convertBoolean(src.getCompositionalElement()));
351    for (Enumeration<CommonLanguages> t : src.getLanguage()) tgt.getLanguage().add(new CodeType(t.getCode()));
352    for (org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesCodeSystemVersionFilterComponent t : src.getFilter())
353      tgt.addFilter(convertTerminologyCapabilitiesCodeSystemVersionFilterComponent(t));
354    for (org.hl7.fhir.r5.model.CodeType t : src.getProperty()) tgt.getProperty().add(Code40_50.convertCode(t));
355    return tgt;
356  }
357
358  public static org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesCodeSystemVersionFilterComponent convertTerminologyCapabilitiesCodeSystemVersionFilterComponent(org.hl7.fhir.r4.model.TerminologyCapabilities.TerminologyCapabilitiesCodeSystemVersionFilterComponent src) throws FHIRException {
359    if (src == null)
360      return null;
361    org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesCodeSystemVersionFilterComponent tgt = new org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesCodeSystemVersionFilterComponent();
362    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
363    if (src.hasCode())
364      tgt.setCodeElement(Code40_50.convertCode(src.getCodeElement()));
365    for (org.hl7.fhir.r4.model.CodeType t : src.getOp()) tgt.getOp().add(Code40_50.convertCode(t));
366    return tgt;
367  }
368
369  public static org.hl7.fhir.r4.model.TerminologyCapabilities.TerminologyCapabilitiesCodeSystemVersionFilterComponent convertTerminologyCapabilitiesCodeSystemVersionFilterComponent(org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesCodeSystemVersionFilterComponent src) throws FHIRException {
370    if (src == null)
371      return null;
372    org.hl7.fhir.r4.model.TerminologyCapabilities.TerminologyCapabilitiesCodeSystemVersionFilterComponent tgt = new org.hl7.fhir.r4.model.TerminologyCapabilities.TerminologyCapabilitiesCodeSystemVersionFilterComponent();
373    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
374    if (src.hasCode())
375      tgt.setCodeElement(Code40_50.convertCode(src.getCodeElement()));
376    for (org.hl7.fhir.r5.model.CodeType t : src.getOp()) tgt.getOp().add(Code40_50.convertCode(t));
377    return tgt;
378  }
379
380  public static org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesExpansionComponent convertTerminologyCapabilitiesExpansionComponent(org.hl7.fhir.r4.model.TerminologyCapabilities.TerminologyCapabilitiesExpansionComponent src) throws FHIRException {
381    if (src == null)
382      return null;
383    org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesExpansionComponent tgt = new org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesExpansionComponent();
384    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
385    if (src.hasHierarchical())
386      tgt.setHierarchicalElement(Boolean40_50.convertBoolean(src.getHierarchicalElement()));
387    if (src.hasPaging())
388      tgt.setPagingElement(Boolean40_50.convertBoolean(src.getPagingElement()));
389    if (src.hasIncomplete())
390      tgt.setIncompleteElement(Boolean40_50.convertBoolean(src.getIncompleteElement()));
391    for (org.hl7.fhir.r4.model.TerminologyCapabilities.TerminologyCapabilitiesExpansionParameterComponent t : src.getParameter())
392      tgt.addParameter(convertTerminologyCapabilitiesExpansionParameterComponent(t));
393    if (src.hasTextFilter())
394      tgt.setTextFilterElement(MarkDown40_50.convertMarkdown(src.getTextFilterElement()));
395    return tgt;
396  }
397
398  public static org.hl7.fhir.r4.model.TerminologyCapabilities.TerminologyCapabilitiesExpansionComponent convertTerminologyCapabilitiesExpansionComponent(org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesExpansionComponent src) throws FHIRException {
399    if (src == null)
400      return null;
401    org.hl7.fhir.r4.model.TerminologyCapabilities.TerminologyCapabilitiesExpansionComponent tgt = new org.hl7.fhir.r4.model.TerminologyCapabilities.TerminologyCapabilitiesExpansionComponent();
402    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
403    if (src.hasHierarchical())
404      tgt.setHierarchicalElement(Boolean40_50.convertBoolean(src.getHierarchicalElement()));
405    if (src.hasPaging())
406      tgt.setPagingElement(Boolean40_50.convertBoolean(src.getPagingElement()));
407    if (src.hasIncomplete())
408      tgt.setIncompleteElement(Boolean40_50.convertBoolean(src.getIncompleteElement()));
409    for (org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesExpansionParameterComponent t : src.getParameter())
410      tgt.addParameter(convertTerminologyCapabilitiesExpansionParameterComponent(t));
411    if (src.hasTextFilter())
412      tgt.setTextFilterElement(MarkDown40_50.convertMarkdown(src.getTextFilterElement()));
413    return tgt;
414  }
415
416  public static org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesExpansionParameterComponent convertTerminologyCapabilitiesExpansionParameterComponent(org.hl7.fhir.r4.model.TerminologyCapabilities.TerminologyCapabilitiesExpansionParameterComponent src) throws FHIRException {
417    if (src == null)
418      return null;
419    org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesExpansionParameterComponent tgt = new org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesExpansionParameterComponent();
420    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
421    if (src.hasName())
422      tgt.setNameElement(Code40_50.convertCode(src.getNameElement()));
423    if (src.hasDocumentation())
424      tgt.setDocumentationElement(String40_50.convertString(src.getDocumentationElement()));
425    return tgt;
426  }
427
428  public static org.hl7.fhir.r4.model.TerminologyCapabilities.TerminologyCapabilitiesExpansionParameterComponent convertTerminologyCapabilitiesExpansionParameterComponent(org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesExpansionParameterComponent src) throws FHIRException {
429    if (src == null)
430      return null;
431    org.hl7.fhir.r4.model.TerminologyCapabilities.TerminologyCapabilitiesExpansionParameterComponent tgt = new org.hl7.fhir.r4.model.TerminologyCapabilities.TerminologyCapabilitiesExpansionParameterComponent();
432    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
433    if (src.hasName())
434      tgt.setNameElement(Code40_50.convertCode(src.getNameElement()));
435    if (src.hasDocumentation())
436      tgt.setDocumentationElement(String40_50.convertString(src.getDocumentationElement()));
437    return tgt;
438  }
439
440  public static org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesValidateCodeComponent convertTerminologyCapabilitiesValidateCodeComponent(org.hl7.fhir.r4.model.TerminologyCapabilities.TerminologyCapabilitiesValidateCodeComponent src) throws FHIRException {
441    if (src == null)
442      return null;
443    org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesValidateCodeComponent tgt = new org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesValidateCodeComponent();
444    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
445    if (src.hasTranslations())
446      tgt.setTranslationsElement(Boolean40_50.convertBoolean(src.getTranslationsElement()));
447    return tgt;
448  }
449
450  public static org.hl7.fhir.r4.model.TerminologyCapabilities.TerminologyCapabilitiesValidateCodeComponent convertTerminologyCapabilitiesValidateCodeComponent(org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesValidateCodeComponent src) throws FHIRException {
451    if (src == null)
452      return null;
453    org.hl7.fhir.r4.model.TerminologyCapabilities.TerminologyCapabilitiesValidateCodeComponent tgt = new org.hl7.fhir.r4.model.TerminologyCapabilities.TerminologyCapabilitiesValidateCodeComponent();
454    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
455    if (src.hasTranslations())
456      tgt.setTranslationsElement(Boolean40_50.convertBoolean(src.getTranslationsElement()));
457    return tgt;
458  }
459
460  public static org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesTranslationComponent convertTerminologyCapabilitiesTranslationComponent(org.hl7.fhir.r4.model.TerminologyCapabilities.TerminologyCapabilitiesTranslationComponent src) throws FHIRException {
461    if (src == null)
462      return null;
463    org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesTranslationComponent tgt = new org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesTranslationComponent();
464    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
465    if (src.hasNeedsMap())
466      tgt.setNeedsMapElement(Boolean40_50.convertBoolean(src.getNeedsMapElement()));
467    return tgt;
468  }
469
470  public static org.hl7.fhir.r4.model.TerminologyCapabilities.TerminologyCapabilitiesTranslationComponent convertTerminologyCapabilitiesTranslationComponent(org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesTranslationComponent src) throws FHIRException {
471    if (src == null)
472      return null;
473    org.hl7.fhir.r4.model.TerminologyCapabilities.TerminologyCapabilitiesTranslationComponent tgt = new org.hl7.fhir.r4.model.TerminologyCapabilities.TerminologyCapabilitiesTranslationComponent();
474    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
475    if (src.hasNeedsMap())
476      tgt.setNeedsMapElement(Boolean40_50.convertBoolean(src.getNeedsMapElement()));
477    return tgt;
478  }
479
480  public static org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesClosureComponent convertTerminologyCapabilitiesClosureComponent(org.hl7.fhir.r4.model.TerminologyCapabilities.TerminologyCapabilitiesClosureComponent src) throws FHIRException {
481    if (src == null)
482      return null;
483    org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesClosureComponent tgt = new org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesClosureComponent();
484    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
485    if (src.hasTranslation())
486      tgt.setTranslationElement(Boolean40_50.convertBoolean(src.getTranslationElement()));
487    return tgt;
488  }
489
490  public static org.hl7.fhir.r4.model.TerminologyCapabilities.TerminologyCapabilitiesClosureComponent convertTerminologyCapabilitiesClosureComponent(org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesClosureComponent src) throws FHIRException {
491    if (src == null)
492      return null;
493    org.hl7.fhir.r4.model.TerminologyCapabilities.TerminologyCapabilitiesClosureComponent tgt = new org.hl7.fhir.r4.model.TerminologyCapabilities.TerminologyCapabilitiesClosureComponent();
494    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
495    if (src.hasTranslation())
496      tgt.setTranslationElement(Boolean40_50.convertBoolean(src.getTranslationElement()));
497    return tgt;
498  }
499}