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