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.general40_50.Coding40_50;
006import org.hl7.fhir.convertors.conv40_50.datatypes40_50.metadata40_50.ContactDetail40_50;
007import org.hl7.fhir.convertors.conv40_50.datatypes40_50.metadata40_50.UsageContext40_50;
008import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.*;
009import org.hl7.fhir.convertors.conv40_50.datatypes40_50.special40_50.Reference40_50;
010import org.hl7.fhir.exceptions.FHIRException;
011
012import java.util.stream.Collectors;
013
014/*
015  Copyright (c) 2011+, HL7, Inc.
016  All rights reserved.
017  
018  Redistribution and use in source and binary forms, with or without modification, 
019  are permitted provided that the following conditions are met:
020  
021   * Redistributions of source code must retain the above copyright notice, this 
022     list of conditions and the following disclaimer.
023   * Redistributions in binary form must reproduce the above copyright notice, 
024     this list of conditions and the following disclaimer in the documentation 
025     and/or other materials provided with the distribution.
026   * Neither the name of HL7 nor the names of its contributors may be used to 
027     endorse or promote products derived from this software without specific 
028     prior written permission.
029  
030  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 
031  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
032  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 
033  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 
034  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 
035  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 
036  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
037  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
038  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
039  POSSIBILITY OF SUCH DAMAGE.
040  
041*/
042// Generated on Sun, Feb 24, 2019 11:37+1100 for FHIR v4.0.0
043public class CapabilityStatement40_50 {
044
045  public static org.hl7.fhir.r5.model.CapabilityStatement convertCapabilityStatement(org.hl7.fhir.r4.model.CapabilityStatement src) throws FHIRException {
046    if (src == null)
047      return null;
048    org.hl7.fhir.r5.model.CapabilityStatement tgt = new org.hl7.fhir.r5.model.CapabilityStatement();
049    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyDomainResource(src, tgt);
050    if (src.hasUrl())
051      tgt.setUrlElement(Uri40_50.convertUri(src.getUrlElement()));
052    if (src.hasVersion())
053      tgt.setVersionElement(String40_50.convertString(src.getVersionElement()));
054    if (src.hasName())
055      tgt.setNameElement(String40_50.convertString(src.getNameElement()));
056    if (src.hasTitle())
057      tgt.setTitleElement(String40_50.convertString(src.getTitleElement()));
058    if (src.hasStatus())
059      tgt.setStatusElement(Enumerations40_50.convertPublicationStatus(src.getStatusElement()));
060    if (src.hasExperimental())
061      tgt.setExperimentalElement(Boolean40_50.convertBoolean(src.getExperimentalElement()));
062    if (src.hasDate())
063      tgt.setDateElement(DateTime40_50.convertDateTime(src.getDateElement()));
064    if (src.hasPublisher())
065      tgt.setPublisherElement(String40_50.convertString(src.getPublisherElement()));
066    for (org.hl7.fhir.r4.model.ContactDetail t : src.getContact())
067      tgt.addContact(ContactDetail40_50.convertContactDetail(t));
068    if (src.hasDescription())
069      tgt.setDescriptionElement(MarkDown40_50.convertMarkdown(src.getDescriptionElement()));
070    for (org.hl7.fhir.r4.model.UsageContext t : src.getUseContext())
071      tgt.addUseContext(UsageContext40_50.convertUsageContext(t));
072    for (org.hl7.fhir.r4.model.CodeableConcept t : src.getJurisdiction())
073      tgt.addJurisdiction(CodeableConcept40_50.convertCodeableConcept(t));
074    if (src.hasPurpose())
075      tgt.setPurposeElement(MarkDown40_50.convertMarkdown(src.getPurposeElement()));
076    if (src.hasCopyright())
077      tgt.setCopyrightElement(MarkDown40_50.convertMarkdown(src.getCopyrightElement()));
078    if (src.hasKind())
079      tgt.setKindElement(convertCapabilityStatementKind(src.getKindElement()));
080    for (org.hl7.fhir.r4.model.CanonicalType t : src.getInstantiates())
081      tgt.getInstantiates().add(Canonical40_50.convertCanonical(t));
082    for (org.hl7.fhir.r4.model.CanonicalType t : src.getImports())
083      tgt.getImports().add(Canonical40_50.convertCanonical(t));
084    if (src.hasSoftware())
085      tgt.setSoftware(convertCapabilityStatementSoftwareComponent(src.getSoftware()));
086    if (src.hasImplementation())
087      tgt.setImplementation(convertCapabilityStatementImplementationComponent(src.getImplementation()));
088    if (src.hasFhirVersion())
089      tgt.setFhirVersionElement(Enumerations40_50.convertFHIRVersion(src.getFhirVersionElement()));
090    for (org.hl7.fhir.r4.model.CodeType t : src.getFormat()) tgt.getFormat().add(Code40_50.convertCode(t));
091    for (org.hl7.fhir.r4.model.CodeType t : src.getPatchFormat()) tgt.getPatchFormat().add(Code40_50.convertCode(t));
092    for (org.hl7.fhir.r4.model.CanonicalType t : src.getImplementationGuide())
093      tgt.getImplementationGuide().add(Canonical40_50.convertCanonical(t));
094    for (org.hl7.fhir.r4.model.CapabilityStatement.CapabilityStatementRestComponent t : src.getRest())
095      tgt.addRest(convertCapabilityStatementRestComponent(t));
096    for (org.hl7.fhir.r4.model.CapabilityStatement.CapabilityStatementMessagingComponent t : src.getMessaging())
097      tgt.addMessaging(convertCapabilityStatementMessagingComponent(t));
098    for (org.hl7.fhir.r4.model.CapabilityStatement.CapabilityStatementDocumentComponent t : src.getDocument())
099      tgt.addDocument(convertCapabilityStatementDocumentComponent(t));
100    return tgt;
101  }
102
103  public static org.hl7.fhir.r4.model.CapabilityStatement convertCapabilityStatement(org.hl7.fhir.r5.model.CapabilityStatement src) throws FHIRException {
104    if (src == null)
105      return null;
106    org.hl7.fhir.r4.model.CapabilityStatement tgt = new org.hl7.fhir.r4.model.CapabilityStatement();
107    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyDomainResource(src, tgt);
108    if (src.hasUrl())
109      tgt.setUrlElement(Uri40_50.convertUri(src.getUrlElement()));
110    if (src.hasVersion())
111      tgt.setVersionElement(String40_50.convertString(src.getVersionElement()));
112    if (src.hasName())
113      tgt.setNameElement(String40_50.convertString(src.getNameElement()));
114    if (src.hasTitle())
115      tgt.setTitleElement(String40_50.convertString(src.getTitleElement()));
116    if (src.hasStatus())
117      tgt.setStatusElement(Enumerations40_50.convertPublicationStatus(src.getStatusElement()));
118    if (src.hasExperimental())
119      tgt.setExperimentalElement(Boolean40_50.convertBoolean(src.getExperimentalElement()));
120    if (src.hasDate())
121      tgt.setDateElement(DateTime40_50.convertDateTime(src.getDateElement()));
122    if (src.hasPublisher())
123      tgt.setPublisherElement(String40_50.convertString(src.getPublisherElement()));
124    for (org.hl7.fhir.r5.model.ContactDetail t : src.getContact())
125      tgt.addContact(ContactDetail40_50.convertContactDetail(t));
126    if (src.hasDescription())
127      tgt.setDescriptionElement(MarkDown40_50.convertMarkdown(src.getDescriptionElement()));
128    for (org.hl7.fhir.r5.model.UsageContext t : src.getUseContext())
129      tgt.addUseContext(UsageContext40_50.convertUsageContext(t));
130    for (org.hl7.fhir.r5.model.CodeableConcept t : src.getJurisdiction())
131      tgt.addJurisdiction(CodeableConcept40_50.convertCodeableConcept(t));
132    if (src.hasPurpose())
133      tgt.setPurposeElement(MarkDown40_50.convertMarkdown(src.getPurposeElement()));
134    if (src.hasCopyright())
135      tgt.setCopyrightElement(MarkDown40_50.convertMarkdown(src.getCopyrightElement()));
136    if (src.hasKind())
137      tgt.setKindElement(convertCapabilityStatementKind(src.getKindElement()));
138    for (org.hl7.fhir.r5.model.CanonicalType t : src.getInstantiates())
139      tgt.getInstantiates().add(Canonical40_50.convertCanonical(t));
140    for (org.hl7.fhir.r5.model.CanonicalType t : src.getImports())
141      tgt.getImports().add(Canonical40_50.convertCanonical(t));
142    if (src.hasSoftware())
143      tgt.setSoftware(convertCapabilityStatementSoftwareComponent(src.getSoftware()));
144    if (src.hasImplementation())
145      tgt.setImplementation(convertCapabilityStatementImplementationComponent(src.getImplementation()));
146    if (src.hasFhirVersion())
147      tgt.setFhirVersionElement(Enumerations40_50.convertFHIRVersion(src.getFhirVersionElement()));
148    for (org.hl7.fhir.r5.model.CodeType t : src.getFormat()) tgt.getFormat().add(Code40_50.convertCode(t));
149    for (org.hl7.fhir.r5.model.CodeType t : src.getPatchFormat()) tgt.getPatchFormat().add(Code40_50.convertCode(t));
150    for (org.hl7.fhir.r5.model.CanonicalType t : src.getImplementationGuide())
151      tgt.getImplementationGuide().add(Canonical40_50.convertCanonical(t));
152    for (org.hl7.fhir.r5.model.CapabilityStatement.CapabilityStatementRestComponent t : src.getRest())
153      tgt.addRest(convertCapabilityStatementRestComponent(t));
154    for (org.hl7.fhir.r5.model.CapabilityStatement.CapabilityStatementMessagingComponent t : src.getMessaging())
155      tgt.addMessaging(convertCapabilityStatementMessagingComponent(t));
156    for (org.hl7.fhir.r5.model.CapabilityStatement.CapabilityStatementDocumentComponent t : src.getDocument())
157      tgt.addDocument(convertCapabilityStatementDocumentComponent(t));
158    return tgt;
159  }
160
161  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.CapabilityStatement.CapabilityStatementKind> src) throws FHIRException {
162    if (src == null || src.isEmpty())
163      return null;
164    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());
165    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
166    switch (src.getValue()) {
167      case INSTANCE:
168        tgt.setValue(org.hl7.fhir.r5.model.Enumerations.CapabilityStatementKind.INSTANCE);
169        break;
170      case CAPABILITY:
171        tgt.setValue(org.hl7.fhir.r5.model.Enumerations.CapabilityStatementKind.CAPABILITY);
172        break;
173      case REQUIREMENTS:
174        tgt.setValue(org.hl7.fhir.r5.model.Enumerations.CapabilityStatementKind.REQUIREMENTS);
175        break;
176      default:
177        tgt.setValue(org.hl7.fhir.r5.model.Enumerations.CapabilityStatementKind.NULL);
178        break;
179    }
180    return tgt;
181  }
182
183  static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.CapabilityStatement.CapabilityStatementKind> convertCapabilityStatementKind(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Enumerations.CapabilityStatementKind> src) throws FHIRException {
184    if (src == null || src.isEmpty())
185      return null;
186    org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.CapabilityStatement.CapabilityStatementKind> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.CapabilityStatement.CapabilityStatementKindEnumFactory());
187    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
188    switch (src.getValue()) {
189      case INSTANCE:
190        tgt.setValue(org.hl7.fhir.r4.model.CapabilityStatement.CapabilityStatementKind.INSTANCE);
191        break;
192      case CAPABILITY:
193        tgt.setValue(org.hl7.fhir.r4.model.CapabilityStatement.CapabilityStatementKind.CAPABILITY);
194        break;
195      case REQUIREMENTS:
196        tgt.setValue(org.hl7.fhir.r4.model.CapabilityStatement.CapabilityStatementKind.REQUIREMENTS);
197        break;
198      default:
199        tgt.setValue(org.hl7.fhir.r4.model.CapabilityStatement.CapabilityStatementKind.NULL);
200        break;
201    }
202    return tgt;
203  }
204
205  public static org.hl7.fhir.r5.model.CapabilityStatement.CapabilityStatementSoftwareComponent convertCapabilityStatementSoftwareComponent(org.hl7.fhir.r4.model.CapabilityStatement.CapabilityStatementSoftwareComponent src) throws FHIRException {
206    if (src == null)
207      return null;
208    org.hl7.fhir.r5.model.CapabilityStatement.CapabilityStatementSoftwareComponent tgt = new org.hl7.fhir.r5.model.CapabilityStatement.CapabilityStatementSoftwareComponent();
209    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
210    if (src.hasName())
211      tgt.setNameElement(String40_50.convertString(src.getNameElement()));
212    if (src.hasVersion())
213      tgt.setVersionElement(String40_50.convertString(src.getVersionElement()));
214    if (src.hasReleaseDate())
215      tgt.setReleaseDateElement(DateTime40_50.convertDateTime(src.getReleaseDateElement()));
216    return tgt;
217  }
218
219  public static org.hl7.fhir.r4.model.CapabilityStatement.CapabilityStatementSoftwareComponent convertCapabilityStatementSoftwareComponent(org.hl7.fhir.r5.model.CapabilityStatement.CapabilityStatementSoftwareComponent src) throws FHIRException {
220    if (src == null)
221      return null;
222    org.hl7.fhir.r4.model.CapabilityStatement.CapabilityStatementSoftwareComponent tgt = new org.hl7.fhir.r4.model.CapabilityStatement.CapabilityStatementSoftwareComponent();
223    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
224    if (src.hasName())
225      tgt.setNameElement(String40_50.convertString(src.getNameElement()));
226    if (src.hasVersion())
227      tgt.setVersionElement(String40_50.convertString(src.getVersionElement()));
228    if (src.hasReleaseDate())
229      tgt.setReleaseDateElement(DateTime40_50.convertDateTime(src.getReleaseDateElement()));
230    return tgt;
231  }
232
233  public static org.hl7.fhir.r5.model.CapabilityStatement.CapabilityStatementImplementationComponent convertCapabilityStatementImplementationComponent(org.hl7.fhir.r4.model.CapabilityStatement.CapabilityStatementImplementationComponent src) throws FHIRException {
234    if (src == null)
235      return null;
236    org.hl7.fhir.r5.model.CapabilityStatement.CapabilityStatementImplementationComponent tgt = new org.hl7.fhir.r5.model.CapabilityStatement.CapabilityStatementImplementationComponent();
237    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
238    if (src.hasDescription())
239      tgt.setDescriptionElement(String40_50.convertString(src.getDescriptionElement()));
240    if (src.hasUrl())
241      tgt.setUrlElement(Url40_50.convertUrl(src.getUrlElement()));
242    if (src.hasCustodian())
243      tgt.setCustodian(Reference40_50.convertReference(src.getCustodian()));
244    return tgt;
245  }
246
247  public static org.hl7.fhir.r4.model.CapabilityStatement.CapabilityStatementImplementationComponent convertCapabilityStatementImplementationComponent(org.hl7.fhir.r5.model.CapabilityStatement.CapabilityStatementImplementationComponent src) throws FHIRException {
248    if (src == null)
249      return null;
250    org.hl7.fhir.r4.model.CapabilityStatement.CapabilityStatementImplementationComponent tgt = new org.hl7.fhir.r4.model.CapabilityStatement.CapabilityStatementImplementationComponent();
251    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
252    if (src.hasDescription())
253      tgt.setDescriptionElement(String40_50.convertString(src.getDescriptionElement()));
254    if (src.hasUrl())
255      tgt.setUrlElement(Url40_50.convertUrl(src.getUrlElement()));
256    if (src.hasCustodian())
257      tgt.setCustodian(Reference40_50.convertReference(src.getCustodian()));
258    return tgt;
259  }
260
261  public static org.hl7.fhir.r5.model.CapabilityStatement.CapabilityStatementRestComponent convertCapabilityStatementRestComponent(org.hl7.fhir.r4.model.CapabilityStatement.CapabilityStatementRestComponent src) throws FHIRException {
262    if (src == null)
263      return null;
264    org.hl7.fhir.r5.model.CapabilityStatement.CapabilityStatementRestComponent tgt = new org.hl7.fhir.r5.model.CapabilityStatement.CapabilityStatementRestComponent();
265    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
266    if (src.hasMode())
267      tgt.setModeElement(convertRestfulCapabilityMode(src.getModeElement()));
268    if (src.hasDocumentation())
269      tgt.setDocumentationElement(MarkDown40_50.convertMarkdown(src.getDocumentationElement()));
270    if (src.hasSecurity())
271      tgt.setSecurity(convertCapabilityStatementRestSecurityComponent(src.getSecurity()));
272    for (org.hl7.fhir.r4.model.CapabilityStatement.CapabilityStatementRestResourceComponent t : src.getResource())
273      tgt.addResource(convertCapabilityStatementRestResourceComponent(t));
274    for (org.hl7.fhir.r4.model.CapabilityStatement.SystemInteractionComponent t : src.getInteraction())
275      tgt.addInteraction(convertSystemInteractionComponent(t));
276    for (org.hl7.fhir.r4.model.CapabilityStatement.CapabilityStatementRestResourceSearchParamComponent t : src.getSearchParam())
277      tgt.addSearchParam(convertCapabilityStatementRestResourceSearchParamComponent(t));
278    for (org.hl7.fhir.r4.model.CapabilityStatement.CapabilityStatementRestResourceOperationComponent t : src.getOperation())
279      tgt.addOperation(convertCapabilityStatementRestResourceOperationComponent(t));
280    for (org.hl7.fhir.r4.model.CanonicalType t : src.getCompartment())
281      tgt.getCompartment().add(Canonical40_50.convertCanonical(t));
282    return tgt;
283  }
284
285  public static org.hl7.fhir.r4.model.CapabilityStatement.CapabilityStatementRestComponent convertCapabilityStatementRestComponent(org.hl7.fhir.r5.model.CapabilityStatement.CapabilityStatementRestComponent src) throws FHIRException {
286    if (src == null)
287      return null;
288    org.hl7.fhir.r4.model.CapabilityStatement.CapabilityStatementRestComponent tgt = new org.hl7.fhir.r4.model.CapabilityStatement.CapabilityStatementRestComponent();
289    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
290    if (src.hasMode())
291      tgt.setModeElement(convertRestfulCapabilityMode(src.getModeElement()));
292    if (src.hasDocumentation())
293      tgt.setDocumentationElement(MarkDown40_50.convertMarkdown(src.getDocumentationElement()));
294    if (src.hasSecurity())
295      tgt.setSecurity(convertCapabilityStatementRestSecurityComponent(src.getSecurity()));
296    for (org.hl7.fhir.r5.model.CapabilityStatement.CapabilityStatementRestResourceComponent t : src.getResource())
297      tgt.addResource(convertCapabilityStatementRestResourceComponent(t));
298    for (org.hl7.fhir.r5.model.CapabilityStatement.SystemInteractionComponent t : src.getInteraction())
299      tgt.addInteraction(convertSystemInteractionComponent(t));
300    for (org.hl7.fhir.r5.model.CapabilityStatement.CapabilityStatementRestResourceSearchParamComponent t : src.getSearchParam())
301      tgt.addSearchParam(convertCapabilityStatementRestResourceSearchParamComponent(t));
302    for (org.hl7.fhir.r5.model.CapabilityStatement.CapabilityStatementRestResourceOperationComponent t : src.getOperation())
303      tgt.addOperation(convertCapabilityStatementRestResourceOperationComponent(t));
304    for (org.hl7.fhir.r5.model.CanonicalType t : src.getCompartment())
305      tgt.getCompartment().add(Canonical40_50.convertCanonical(t));
306    return tgt;
307  }
308
309  static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Enumerations.RestfulCapabilityMode> convertRestfulCapabilityMode(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.CapabilityStatement.RestfulCapabilityMode> src) throws FHIRException {
310    if (src == null || src.isEmpty())
311      return null;
312    org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Enumerations.RestfulCapabilityMode> tgt = new org.hl7.fhir.r5.model.Enumeration<>(new org.hl7.fhir.r5.model.Enumerations.RestfulCapabilityModeEnumFactory());
313    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
314    switch (src.getValue()) {
315      case CLIENT:
316        tgt.setValue(org.hl7.fhir.r5.model.Enumerations.RestfulCapabilityMode.CLIENT);
317        break;
318      case SERVER:
319        tgt.setValue(org.hl7.fhir.r5.model.Enumerations.RestfulCapabilityMode.SERVER);
320        break;
321      default:
322        tgt.setValue(org.hl7.fhir.r5.model.Enumerations.RestfulCapabilityMode.NULL);
323        break;
324    }
325    return tgt;
326  }
327
328  static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.CapabilityStatement.RestfulCapabilityMode> convertRestfulCapabilityMode(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Enumerations.RestfulCapabilityMode> src) throws FHIRException {
329    if (src == null || src.isEmpty())
330      return null;
331    org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.CapabilityStatement.RestfulCapabilityMode> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.CapabilityStatement.RestfulCapabilityModeEnumFactory());
332    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
333    switch (src.getValue()) {
334      case CLIENT:
335        tgt.setValue(org.hl7.fhir.r4.model.CapabilityStatement.RestfulCapabilityMode.CLIENT);
336        break;
337      case SERVER:
338        tgt.setValue(org.hl7.fhir.r4.model.CapabilityStatement.RestfulCapabilityMode.SERVER);
339        break;
340      default:
341        tgt.setValue(org.hl7.fhir.r4.model.CapabilityStatement.RestfulCapabilityMode.NULL);
342        break;
343    }
344    return tgt;
345  }
346
347  public static org.hl7.fhir.r5.model.CapabilityStatement.CapabilityStatementRestSecurityComponent convertCapabilityStatementRestSecurityComponent(org.hl7.fhir.r4.model.CapabilityStatement.CapabilityStatementRestSecurityComponent src) throws FHIRException {
348    if (src == null)
349      return null;
350    org.hl7.fhir.r5.model.CapabilityStatement.CapabilityStatementRestSecurityComponent tgt = new org.hl7.fhir.r5.model.CapabilityStatement.CapabilityStatementRestSecurityComponent();
351    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
352    if (src.hasCors())
353      tgt.setCorsElement(Boolean40_50.convertBoolean(src.getCorsElement()));
354    for (org.hl7.fhir.r4.model.CodeableConcept t : src.getService())
355      tgt.addService(CodeableConcept40_50.convertCodeableConcept(t));
356    if (src.hasDescription())
357      tgt.setDescriptionElement(MarkDown40_50.convertMarkdown(src.getDescriptionElement()));
358    return tgt;
359  }
360
361  public static org.hl7.fhir.r4.model.CapabilityStatement.CapabilityStatementRestSecurityComponent convertCapabilityStatementRestSecurityComponent(org.hl7.fhir.r5.model.CapabilityStatement.CapabilityStatementRestSecurityComponent src) throws FHIRException {
362    if (src == null)
363      return null;
364    org.hl7.fhir.r4.model.CapabilityStatement.CapabilityStatementRestSecurityComponent tgt = new org.hl7.fhir.r4.model.CapabilityStatement.CapabilityStatementRestSecurityComponent();
365    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
366    if (src.hasCors())
367      tgt.setCorsElement(Boolean40_50.convertBoolean(src.getCorsElement()));
368    for (org.hl7.fhir.r5.model.CodeableConcept t : src.getService())
369      tgt.addService(CodeableConcept40_50.convertCodeableConcept(t));
370    if (src.hasDescription())
371      tgt.setDescriptionElement(MarkDown40_50.convertMarkdown(src.getDescriptionElement()));
372    return tgt;
373  }
374
375  public static org.hl7.fhir.r5.model.CapabilityStatement.CapabilityStatementRestResourceComponent convertCapabilityStatementRestResourceComponent(org.hl7.fhir.r4.model.CapabilityStatement.CapabilityStatementRestResourceComponent src) throws FHIRException {
376    if (src == null)
377      return null;
378    org.hl7.fhir.r5.model.CapabilityStatement.CapabilityStatementRestResourceComponent tgt = new org.hl7.fhir.r5.model.CapabilityStatement.CapabilityStatementRestResourceComponent();
379    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
380    if (src.hasType())
381      tgt.setTypeElement(Code40_50.convertResourceEnum(src.getTypeElement()));
382    if (src.hasProfile())
383      tgt.setProfileElement(Canonical40_50.convertCanonical(src.getProfileElement()));
384    for (org.hl7.fhir.r4.model.CanonicalType t : src.getSupportedProfile())
385      tgt.getSupportedProfile().add(Canonical40_50.convertCanonical(t));
386    if (src.hasDocumentation())
387      tgt.setDocumentationElement(MarkDown40_50.convertMarkdown(src.getDocumentationElement()));
388    for (org.hl7.fhir.r4.model.CapabilityStatement.ResourceInteractionComponent t : src.getInteraction())
389      tgt.addInteraction(convertResourceInteractionComponent(t));
390    if (src.hasVersioning())
391      tgt.setVersioningElement(convertResourceVersionPolicy(src.getVersioningElement()));
392    if (src.hasReadHistory())
393      tgt.setReadHistoryElement(Boolean40_50.convertBoolean(src.getReadHistoryElement()));
394    if (src.hasUpdateCreate())
395      tgt.setUpdateCreateElement(Boolean40_50.convertBoolean(src.getUpdateCreateElement()));
396    if (src.hasConditionalCreate())
397      tgt.setConditionalCreateElement(Boolean40_50.convertBoolean(src.getConditionalCreateElement()));
398    if (src.hasConditionalRead())
399      tgt.setConditionalReadElement(convertConditionalReadStatus(src.getConditionalReadElement()));
400    if (src.hasConditionalUpdate())
401      tgt.setConditionalUpdateElement(Boolean40_50.convertBoolean(src.getConditionalUpdateElement()));
402    if (src.hasConditionalDelete())
403      tgt.setConditionalDeleteElement(convertConditionalDeleteStatus(src.getConditionalDeleteElement()));
404    tgt.setReferencePolicy(src.getReferencePolicy().stream()
405      .map(CapabilityStatement40_50::convertReferenceHandlingPolicy)
406      .collect(Collectors.toList()));
407    for (org.hl7.fhir.r4.model.StringType t : src.getSearchInclude())
408      tgt.getSearchInclude().add(String40_50.convertString(t));
409    for (org.hl7.fhir.r4.model.StringType t : src.getSearchRevInclude())
410      tgt.getSearchRevInclude().add(String40_50.convertString(t));
411    for (org.hl7.fhir.r4.model.CapabilityStatement.CapabilityStatementRestResourceSearchParamComponent t : src.getSearchParam())
412      tgt.addSearchParam(convertCapabilityStatementRestResourceSearchParamComponent(t));
413    for (org.hl7.fhir.r4.model.CapabilityStatement.CapabilityStatementRestResourceOperationComponent t : src.getOperation())
414      tgt.addOperation(convertCapabilityStatementRestResourceOperationComponent(t));
415    return tgt;
416  }
417
418  public static org.hl7.fhir.r4.model.CapabilityStatement.CapabilityStatementRestResourceComponent convertCapabilityStatementRestResourceComponent(org.hl7.fhir.r5.model.CapabilityStatement.CapabilityStatementRestResourceComponent src) throws FHIRException {
419    if (src == null)
420      return null;
421    org.hl7.fhir.r4.model.CapabilityStatement.CapabilityStatementRestResourceComponent tgt = new org.hl7.fhir.r4.model.CapabilityStatement.CapabilityStatementRestResourceComponent();
422    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
423    if (src.hasType())
424      tgt.setTypeElement(Code40_50.convertResourceEnum(src.getTypeElement()));
425    if (src.hasProfile())
426      tgt.setProfileElement(Canonical40_50.convertCanonical(src.getProfileElement()));
427    for (org.hl7.fhir.r5.model.CanonicalType t : src.getSupportedProfile())
428      tgt.getSupportedProfile().add(Canonical40_50.convertCanonical(t));
429    if (src.hasDocumentation())
430      tgt.setDocumentationElement(MarkDown40_50.convertMarkdown(src.getDocumentationElement()));
431    for (org.hl7.fhir.r5.model.CapabilityStatement.ResourceInteractionComponent t : src.getInteraction())
432      tgt.addInteraction(convertResourceInteractionComponent(t));
433    if (src.hasVersioning())
434      tgt.setVersioningElement(convertResourceVersionPolicy(src.getVersioningElement()));
435    if (src.hasReadHistory())
436      tgt.setReadHistoryElement(Boolean40_50.convertBoolean(src.getReadHistoryElement()));
437    if (src.hasUpdateCreate())
438      tgt.setUpdateCreateElement(Boolean40_50.convertBoolean(src.getUpdateCreateElement()));
439    if (src.hasConditionalCreate())
440      tgt.setConditionalCreateElement(Boolean40_50.convertBoolean(src.getConditionalCreateElement()));
441    if (src.hasConditionalRead())
442      tgt.setConditionalReadElement(convertConditionalReadStatus(src.getConditionalReadElement()));
443    if (src.hasConditionalUpdate())
444      tgt.setConditionalUpdateElement(Boolean40_50.convertBoolean(src.getConditionalUpdateElement()));
445    if (src.hasConditionalDelete())
446      tgt.setConditionalDeleteElement(convertConditionalDeleteStatus(src.getConditionalDeleteElement()));
447    tgt.setReferencePolicy(src.getReferencePolicy().stream()
448      .map(CapabilityStatement40_50::convertReferenceHandlingPolicy)
449      .collect(Collectors.toList()));
450    for (org.hl7.fhir.r5.model.StringType t : src.getSearchInclude())
451      tgt.getSearchInclude().add(String40_50.convertString(t));
452    for (org.hl7.fhir.r5.model.StringType t : src.getSearchRevInclude())
453      tgt.getSearchRevInclude().add(String40_50.convertString(t));
454    for (org.hl7.fhir.r5.model.CapabilityStatement.CapabilityStatementRestResourceSearchParamComponent t : src.getSearchParam())
455      tgt.addSearchParam(convertCapabilityStatementRestResourceSearchParamComponent(t));
456    for (org.hl7.fhir.r5.model.CapabilityStatement.CapabilityStatementRestResourceOperationComponent t : src.getOperation())
457      tgt.addOperation(convertCapabilityStatementRestResourceOperationComponent(t));
458    return tgt;
459  }
460
461  static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.CapabilityStatement.ResourceVersionPolicy> convertResourceVersionPolicy(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.CapabilityStatement.ResourceVersionPolicy> src) throws FHIRException {
462    if (src == null || src.isEmpty())
463      return null;
464    org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.CapabilityStatement.ResourceVersionPolicy> tgt = new org.hl7.fhir.r5.model.Enumeration<>(new org.hl7.fhir.r5.model.CapabilityStatement.ResourceVersionPolicyEnumFactory());
465    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
466    switch (src.getValue()) {
467      case NOVERSION:
468        tgt.setValue(org.hl7.fhir.r5.model.CapabilityStatement.ResourceVersionPolicy.NOVERSION);
469        break;
470      case VERSIONED:
471        tgt.setValue(org.hl7.fhir.r5.model.CapabilityStatement.ResourceVersionPolicy.VERSIONED);
472        break;
473      case VERSIONEDUPDATE:
474        tgt.setValue(org.hl7.fhir.r5.model.CapabilityStatement.ResourceVersionPolicy.VERSIONEDUPDATE);
475        break;
476      default:
477        tgt.setValue(org.hl7.fhir.r5.model.CapabilityStatement.ResourceVersionPolicy.NULL);
478        break;
479    }
480    return tgt;
481  }
482
483  static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.CapabilityStatement.ResourceVersionPolicy> convertResourceVersionPolicy(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.CapabilityStatement.ResourceVersionPolicy> src) throws FHIRException {
484    if (src == null || src.isEmpty())
485      return null;
486    org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.CapabilityStatement.ResourceVersionPolicy> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.CapabilityStatement.ResourceVersionPolicyEnumFactory());
487    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
488    switch (src.getValue()) {
489      case NOVERSION:
490        tgt.setValue(org.hl7.fhir.r4.model.CapabilityStatement.ResourceVersionPolicy.NOVERSION);
491        break;
492      case VERSIONED:
493        tgt.setValue(org.hl7.fhir.r4.model.CapabilityStatement.ResourceVersionPolicy.VERSIONED);
494        break;
495      case VERSIONEDUPDATE:
496        tgt.setValue(org.hl7.fhir.r4.model.CapabilityStatement.ResourceVersionPolicy.VERSIONEDUPDATE);
497        break;
498      default:
499        tgt.setValue(org.hl7.fhir.r4.model.CapabilityStatement.ResourceVersionPolicy.NULL);
500        break;
501    }
502    return tgt;
503  }
504
505  static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.CapabilityStatement.ConditionalReadStatus> convertConditionalReadStatus(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.CapabilityStatement.ConditionalReadStatus> src) throws FHIRException {
506    if (src == null || src.isEmpty())
507      return null;
508    org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.CapabilityStatement.ConditionalReadStatus> tgt = new org.hl7.fhir.r5.model.Enumeration<>(new org.hl7.fhir.r5.model.CapabilityStatement.ConditionalReadStatusEnumFactory());
509    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
510    switch (src.getValue()) {
511      case NOTSUPPORTED:
512        tgt.setValue(org.hl7.fhir.r5.model.CapabilityStatement.ConditionalReadStatus.NOTSUPPORTED);
513        break;
514      case MODIFIEDSINCE:
515        tgt.setValue(org.hl7.fhir.r5.model.CapabilityStatement.ConditionalReadStatus.MODIFIEDSINCE);
516        break;
517      case NOTMATCH:
518        tgt.setValue(org.hl7.fhir.r5.model.CapabilityStatement.ConditionalReadStatus.NOTMATCH);
519        break;
520      case FULLSUPPORT:
521        tgt.setValue(org.hl7.fhir.r5.model.CapabilityStatement.ConditionalReadStatus.FULLSUPPORT);
522        break;
523      default:
524        tgt.setValue(org.hl7.fhir.r5.model.CapabilityStatement.ConditionalReadStatus.NULL);
525        break;
526    }
527    return tgt;
528  }
529
530  static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.CapabilityStatement.ConditionalReadStatus> convertConditionalReadStatus(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.CapabilityStatement.ConditionalReadStatus> src) throws FHIRException {
531    if (src == null || src.isEmpty())
532      return null;
533    org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.CapabilityStatement.ConditionalReadStatus> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.CapabilityStatement.ConditionalReadStatusEnumFactory());
534    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
535    switch (src.getValue()) {
536      case NOTSUPPORTED:
537        tgt.setValue(org.hl7.fhir.r4.model.CapabilityStatement.ConditionalReadStatus.NOTSUPPORTED);
538        break;
539      case MODIFIEDSINCE:
540        tgt.setValue(org.hl7.fhir.r4.model.CapabilityStatement.ConditionalReadStatus.MODIFIEDSINCE);
541        break;
542      case NOTMATCH:
543        tgt.setValue(org.hl7.fhir.r4.model.CapabilityStatement.ConditionalReadStatus.NOTMATCH);
544        break;
545      case FULLSUPPORT:
546        tgt.setValue(org.hl7.fhir.r4.model.CapabilityStatement.ConditionalReadStatus.FULLSUPPORT);
547        break;
548      default:
549        tgt.setValue(org.hl7.fhir.r4.model.CapabilityStatement.ConditionalReadStatus.NULL);
550        break;
551    }
552    return tgt;
553  }
554
555  static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.CapabilityStatement.ConditionalDeleteStatus> convertConditionalDeleteStatus(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.CapabilityStatement.ConditionalDeleteStatus> src) throws FHIRException {
556    if (src == null || src.isEmpty())
557      return null;
558    org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.CapabilityStatement.ConditionalDeleteStatus> tgt = new org.hl7.fhir.r5.model.Enumeration<>(new org.hl7.fhir.r5.model.CapabilityStatement.ConditionalDeleteStatusEnumFactory());
559    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
560    switch (src.getValue()) {
561      case NOTSUPPORTED:
562        tgt.setValue(org.hl7.fhir.r5.model.CapabilityStatement.ConditionalDeleteStatus.NOTSUPPORTED);
563        break;
564      case SINGLE:
565        tgt.setValue(org.hl7.fhir.r5.model.CapabilityStatement.ConditionalDeleteStatus.SINGLE);
566        break;
567      case MULTIPLE:
568        tgt.setValue(org.hl7.fhir.r5.model.CapabilityStatement.ConditionalDeleteStatus.MULTIPLE);
569        break;
570      default:
571        tgt.setValue(org.hl7.fhir.r5.model.CapabilityStatement.ConditionalDeleteStatus.NULL);
572        break;
573    }
574    return tgt;
575  }
576
577  static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.CapabilityStatement.ConditionalDeleteStatus> convertConditionalDeleteStatus(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.CapabilityStatement.ConditionalDeleteStatus> src) throws FHIRException {
578    if (src == null || src.isEmpty())
579      return null;
580    org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.CapabilityStatement.ConditionalDeleteStatus> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.CapabilityStatement.ConditionalDeleteStatusEnumFactory());
581    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
582    switch (src.getValue()) {
583      case NOTSUPPORTED:
584        tgt.setValue(org.hl7.fhir.r4.model.CapabilityStatement.ConditionalDeleteStatus.NOTSUPPORTED);
585        break;
586      case SINGLE:
587        tgt.setValue(org.hl7.fhir.r4.model.CapabilityStatement.ConditionalDeleteStatus.SINGLE);
588        break;
589      case MULTIPLE:
590        tgt.setValue(org.hl7.fhir.r4.model.CapabilityStatement.ConditionalDeleteStatus.MULTIPLE);
591        break;
592      default:
593        tgt.setValue(org.hl7.fhir.r4.model.CapabilityStatement.ConditionalDeleteStatus.NULL);
594        break;
595    }
596    return tgt;
597  }
598
599  static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.CapabilityStatement.ReferenceHandlingPolicy> convertReferenceHandlingPolicy(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.CapabilityStatement.ReferenceHandlingPolicy> src) throws FHIRException {
600    if (src == null || src.isEmpty())
601      return null;
602    org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.CapabilityStatement.ReferenceHandlingPolicy> tgt = new org.hl7.fhir.r5.model.Enumeration<>(new org.hl7.fhir.r5.model.CapabilityStatement.ReferenceHandlingPolicyEnumFactory());
603    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
604    switch (src.getValue()) {
605      case LITERAL:
606        tgt.setValue(org.hl7.fhir.r5.model.CapabilityStatement.ReferenceHandlingPolicy.LITERAL);
607        break;
608      case LOGICAL:
609        tgt.setValue(org.hl7.fhir.r5.model.CapabilityStatement.ReferenceHandlingPolicy.LOGICAL);
610        break;
611      case RESOLVES:
612        tgt.setValue(org.hl7.fhir.r5.model.CapabilityStatement.ReferenceHandlingPolicy.RESOLVES);
613        break;
614      case ENFORCED:
615        tgt.setValue(org.hl7.fhir.r5.model.CapabilityStatement.ReferenceHandlingPolicy.ENFORCED);
616        break;
617      case LOCAL:
618        tgt.setValue(org.hl7.fhir.r5.model.CapabilityStatement.ReferenceHandlingPolicy.LOCAL);
619        break;
620      default:
621        tgt.setValue(org.hl7.fhir.r5.model.CapabilityStatement.ReferenceHandlingPolicy.NULL);
622        break;
623    }
624    return tgt;
625  }
626
627  static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.CapabilityStatement.ReferenceHandlingPolicy> convertReferenceHandlingPolicy(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.CapabilityStatement.ReferenceHandlingPolicy> src) throws FHIRException {
628    if (src == null || src.isEmpty())
629      return null;
630    org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.CapabilityStatement.ReferenceHandlingPolicy> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.CapabilityStatement.ReferenceHandlingPolicyEnumFactory());
631    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
632    switch (src.getValue()) {
633      case LITERAL:
634        tgt.setValue(org.hl7.fhir.r4.model.CapabilityStatement.ReferenceHandlingPolicy.LITERAL);
635        break;
636      case LOGICAL:
637        tgt.setValue(org.hl7.fhir.r4.model.CapabilityStatement.ReferenceHandlingPolicy.LOGICAL);
638        break;
639      case RESOLVES:
640        tgt.setValue(org.hl7.fhir.r4.model.CapabilityStatement.ReferenceHandlingPolicy.RESOLVES);
641        break;
642      case ENFORCED:
643        tgt.setValue(org.hl7.fhir.r4.model.CapabilityStatement.ReferenceHandlingPolicy.ENFORCED);
644        break;
645      case LOCAL:
646        tgt.setValue(org.hl7.fhir.r4.model.CapabilityStatement.ReferenceHandlingPolicy.LOCAL);
647        break;
648      default:
649        tgt.setValue(org.hl7.fhir.r4.model.CapabilityStatement.ReferenceHandlingPolicy.NULL);
650        break;
651    }
652    return tgt;
653  }
654
655  public static org.hl7.fhir.r5.model.CapabilityStatement.ResourceInteractionComponent convertResourceInteractionComponent(org.hl7.fhir.r4.model.CapabilityStatement.ResourceInteractionComponent src) throws FHIRException {
656    if (src == null)
657      return null;
658    org.hl7.fhir.r5.model.CapabilityStatement.ResourceInteractionComponent tgt = new org.hl7.fhir.r5.model.CapabilityStatement.ResourceInteractionComponent();
659    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
660    if (src.hasCode())
661      tgt.setCodeElement(convertTypeRestfulInteraction(src.getCodeElement()));
662    if (src.hasDocumentation())
663      tgt.setDocumentationElement(MarkDown40_50.convertMarkdown(src.getDocumentationElement()));
664    return tgt;
665  }
666
667  public static org.hl7.fhir.r4.model.CapabilityStatement.ResourceInteractionComponent convertResourceInteractionComponent(org.hl7.fhir.r5.model.CapabilityStatement.ResourceInteractionComponent src) throws FHIRException {
668    if (src == null)
669      return null;
670    org.hl7.fhir.r4.model.CapabilityStatement.ResourceInteractionComponent tgt = new org.hl7.fhir.r4.model.CapabilityStatement.ResourceInteractionComponent();
671    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
672    if (src.hasCode())
673      tgt.setCodeElement(convertTypeRestfulInteraction(src.getCodeElement()));
674    if (src.hasDocumentation())
675      tgt.setDocumentationElement(MarkDown40_50.convertMarkdown(src.getDocumentationElement()));
676    return tgt;
677  }
678
679  static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.CapabilityStatement.TypeRestfulInteraction> convertTypeRestfulInteraction(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.CapabilityStatement.TypeRestfulInteraction> src) throws FHIRException {
680    if (src == null || src.isEmpty())
681      return null;
682    org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.CapabilityStatement.TypeRestfulInteraction> tgt = new org.hl7.fhir.r5.model.Enumeration<>(new org.hl7.fhir.r5.model.CapabilityStatement.TypeRestfulInteractionEnumFactory());
683    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
684    switch (src.getValue()) {
685      case READ:
686        tgt.setValue(org.hl7.fhir.r5.model.CapabilityStatement.TypeRestfulInteraction.READ);
687        break;
688      case VREAD:
689        tgt.setValue(org.hl7.fhir.r5.model.CapabilityStatement.TypeRestfulInteraction.VREAD);
690        break;
691      case UPDATE:
692        tgt.setValue(org.hl7.fhir.r5.model.CapabilityStatement.TypeRestfulInteraction.UPDATE);
693        break;
694      case PATCH:
695        tgt.setValue(org.hl7.fhir.r5.model.CapabilityStatement.TypeRestfulInteraction.PATCH);
696        break;
697      case DELETE:
698        tgt.setValue(org.hl7.fhir.r5.model.CapabilityStatement.TypeRestfulInteraction.DELETE);
699        break;
700      case HISTORYINSTANCE:
701        tgt.setValue(org.hl7.fhir.r5.model.CapabilityStatement.TypeRestfulInteraction.HISTORYINSTANCE);
702        break;
703      case HISTORYTYPE:
704        tgt.setValue(org.hl7.fhir.r5.model.CapabilityStatement.TypeRestfulInteraction.HISTORYTYPE);
705        break;
706      case CREATE:
707        tgt.setValue(org.hl7.fhir.r5.model.CapabilityStatement.TypeRestfulInteraction.CREATE);
708        break;
709      case SEARCHTYPE:
710        tgt.setValue(org.hl7.fhir.r5.model.CapabilityStatement.TypeRestfulInteraction.SEARCHTYPE);
711        break;
712      default:
713        tgt.setValue(org.hl7.fhir.r5.model.CapabilityStatement.TypeRestfulInteraction.NULL);
714        break;
715    }
716    return tgt;
717  }
718
719  static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.CapabilityStatement.TypeRestfulInteraction> convertTypeRestfulInteraction(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.CapabilityStatement.TypeRestfulInteraction> src) throws FHIRException {
720    if (src == null || src.isEmpty())
721      return null;
722    org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.CapabilityStatement.TypeRestfulInteraction> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.CapabilityStatement.TypeRestfulInteractionEnumFactory());
723    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
724    switch (src.getValue()) {
725      case READ:
726        tgt.setValue(org.hl7.fhir.r4.model.CapabilityStatement.TypeRestfulInteraction.READ);
727        break;
728      case VREAD:
729        tgt.setValue(org.hl7.fhir.r4.model.CapabilityStatement.TypeRestfulInteraction.VREAD);
730        break;
731      case UPDATE:
732        tgt.setValue(org.hl7.fhir.r4.model.CapabilityStatement.TypeRestfulInteraction.UPDATE);
733        break;
734      case PATCH:
735        tgt.setValue(org.hl7.fhir.r4.model.CapabilityStatement.TypeRestfulInteraction.PATCH);
736        break;
737      case DELETE:
738        tgt.setValue(org.hl7.fhir.r4.model.CapabilityStatement.TypeRestfulInteraction.DELETE);
739        break;
740      case HISTORYINSTANCE:
741        tgt.setValue(org.hl7.fhir.r4.model.CapabilityStatement.TypeRestfulInteraction.HISTORYINSTANCE);
742        break;
743      case HISTORYTYPE:
744        tgt.setValue(org.hl7.fhir.r4.model.CapabilityStatement.TypeRestfulInteraction.HISTORYTYPE);
745        break;
746      case CREATE:
747        tgt.setValue(org.hl7.fhir.r4.model.CapabilityStatement.TypeRestfulInteraction.CREATE);
748        break;
749      case SEARCHTYPE:
750        tgt.setValue(org.hl7.fhir.r4.model.CapabilityStatement.TypeRestfulInteraction.SEARCHTYPE);
751        break;
752      default:
753        tgt.setValue(org.hl7.fhir.r4.model.CapabilityStatement.TypeRestfulInteraction.NULL);
754        break;
755    }
756    return tgt;
757  }
758
759  public static org.hl7.fhir.r5.model.CapabilityStatement.CapabilityStatementRestResourceSearchParamComponent convertCapabilityStatementRestResourceSearchParamComponent(org.hl7.fhir.r4.model.CapabilityStatement.CapabilityStatementRestResourceSearchParamComponent src) throws FHIRException {
760    if (src == null)
761      return null;
762    org.hl7.fhir.r5.model.CapabilityStatement.CapabilityStatementRestResourceSearchParamComponent tgt = new org.hl7.fhir.r5.model.CapabilityStatement.CapabilityStatementRestResourceSearchParamComponent();
763    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
764    if (src.hasName())
765      tgt.setNameElement(String40_50.convertString(src.getNameElement()));
766    if (src.hasDefinition())
767      tgt.setDefinitionElement(Canonical40_50.convertCanonical(src.getDefinitionElement()));
768    if (src.hasType())
769      tgt.setTypeElement(Enumerations40_50.convertSearchParamType(src.getTypeElement()));
770    if (src.hasDocumentation())
771      tgt.setDocumentationElement(MarkDown40_50.convertMarkdown(src.getDocumentationElement()));
772    return tgt;
773  }
774
775  public static org.hl7.fhir.r4.model.CapabilityStatement.CapabilityStatementRestResourceSearchParamComponent convertCapabilityStatementRestResourceSearchParamComponent(org.hl7.fhir.r5.model.CapabilityStatement.CapabilityStatementRestResourceSearchParamComponent src) throws FHIRException {
776    if (src == null)
777      return null;
778    org.hl7.fhir.r4.model.CapabilityStatement.CapabilityStatementRestResourceSearchParamComponent tgt = new org.hl7.fhir.r4.model.CapabilityStatement.CapabilityStatementRestResourceSearchParamComponent();
779    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
780    if (src.hasName())
781      tgt.setNameElement(String40_50.convertString(src.getNameElement()));
782    if (src.hasDefinition())
783      tgt.setDefinitionElement(Canonical40_50.convertCanonical(src.getDefinitionElement()));
784    if (src.hasType())
785      tgt.setTypeElement(Enumerations40_50.convertSearchParamType(src.getTypeElement()));
786    if (src.hasDocumentation())
787      tgt.setDocumentationElement(MarkDown40_50.convertMarkdown(src.getDocumentationElement()));
788    return tgt;
789  }
790
791  public static org.hl7.fhir.r5.model.CapabilityStatement.CapabilityStatementRestResourceOperationComponent convertCapabilityStatementRestResourceOperationComponent(org.hl7.fhir.r4.model.CapabilityStatement.CapabilityStatementRestResourceOperationComponent src) throws FHIRException {
792    if (src == null)
793      return null;
794    org.hl7.fhir.r5.model.CapabilityStatement.CapabilityStatementRestResourceOperationComponent tgt = new org.hl7.fhir.r5.model.CapabilityStatement.CapabilityStatementRestResourceOperationComponent();
795    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
796    if (src.hasName())
797      tgt.setNameElement(String40_50.convertString(src.getNameElement()));
798    if (src.hasDefinition())
799      tgt.setDefinitionElement(Canonical40_50.convertCanonical(src.getDefinitionElement()));
800    if (src.hasDocumentation())
801      tgt.setDocumentationElement(MarkDown40_50.convertMarkdown(src.getDocumentationElement()));
802    return tgt;
803  }
804
805  public static org.hl7.fhir.r4.model.CapabilityStatement.CapabilityStatementRestResourceOperationComponent convertCapabilityStatementRestResourceOperationComponent(org.hl7.fhir.r5.model.CapabilityStatement.CapabilityStatementRestResourceOperationComponent src) throws FHIRException {
806    if (src == null)
807      return null;
808    org.hl7.fhir.r4.model.CapabilityStatement.CapabilityStatementRestResourceOperationComponent tgt = new org.hl7.fhir.r4.model.CapabilityStatement.CapabilityStatementRestResourceOperationComponent();
809    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
810    if (src.hasName())
811      tgt.setNameElement(String40_50.convertString(src.getNameElement()));
812    if (src.hasDefinition())
813      tgt.setDefinitionElement(Canonical40_50.convertCanonical(src.getDefinitionElement()));
814    if (src.hasDocumentation())
815      tgt.setDocumentationElement(MarkDown40_50.convertMarkdown(src.getDocumentationElement()));
816    return tgt;
817  }
818
819  public static org.hl7.fhir.r5.model.CapabilityStatement.SystemInteractionComponent convertSystemInteractionComponent(org.hl7.fhir.r4.model.CapabilityStatement.SystemInteractionComponent src) throws FHIRException {
820    if (src == null)
821      return null;
822    org.hl7.fhir.r5.model.CapabilityStatement.SystemInteractionComponent tgt = new org.hl7.fhir.r5.model.CapabilityStatement.SystemInteractionComponent();
823    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
824    if (src.hasCode())
825      tgt.setCodeElement(convertSystemRestfulInteraction(src.getCodeElement()));
826    if (src.hasDocumentation())
827      tgt.setDocumentationElement(MarkDown40_50.convertMarkdown(src.getDocumentationElement()));
828    return tgt;
829  }
830
831  public static org.hl7.fhir.r4.model.CapabilityStatement.SystemInteractionComponent convertSystemInteractionComponent(org.hl7.fhir.r5.model.CapabilityStatement.SystemInteractionComponent src) throws FHIRException {
832    if (src == null)
833      return null;
834    org.hl7.fhir.r4.model.CapabilityStatement.SystemInteractionComponent tgt = new org.hl7.fhir.r4.model.CapabilityStatement.SystemInteractionComponent();
835    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
836    if (src.hasCode())
837      tgt.setCodeElement(convertSystemRestfulInteraction(src.getCodeElement()));
838    if (src.hasDocumentation())
839      tgt.setDocumentationElement(MarkDown40_50.convertMarkdown(src.getDocumentationElement()));
840    return tgt;
841  }
842
843  static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.CapabilityStatement.SystemRestfulInteraction> convertSystemRestfulInteraction(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.CapabilityStatement.SystemRestfulInteraction> src) throws FHIRException {
844    if (src == null || src.isEmpty())
845      return null;
846    org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.CapabilityStatement.SystemRestfulInteraction> tgt = new org.hl7.fhir.r5.model.Enumeration<>(new org.hl7.fhir.r5.model.CapabilityStatement.SystemRestfulInteractionEnumFactory());
847    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
848    switch (src.getValue()) {
849      case TRANSACTION:
850        tgt.setValue(org.hl7.fhir.r5.model.CapabilityStatement.SystemRestfulInteraction.TRANSACTION);
851        break;
852      case BATCH:
853        tgt.setValue(org.hl7.fhir.r5.model.CapabilityStatement.SystemRestfulInteraction.BATCH);
854        break;
855      case SEARCHSYSTEM:
856        tgt.setValue(org.hl7.fhir.r5.model.CapabilityStatement.SystemRestfulInteraction.SEARCHSYSTEM);
857        break;
858      case HISTORYSYSTEM:
859        tgt.setValue(org.hl7.fhir.r5.model.CapabilityStatement.SystemRestfulInteraction.HISTORYSYSTEM);
860        break;
861      default:
862        tgt.setValue(org.hl7.fhir.r5.model.CapabilityStatement.SystemRestfulInteraction.NULL);
863        break;
864    }
865    return tgt;
866  }
867
868  static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.CapabilityStatement.SystemRestfulInteraction> convertSystemRestfulInteraction(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.CapabilityStatement.SystemRestfulInteraction> src) throws FHIRException {
869    if (src == null || src.isEmpty())
870      return null;
871    org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.CapabilityStatement.SystemRestfulInteraction> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.CapabilityStatement.SystemRestfulInteractionEnumFactory());
872    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
873    switch (src.getValue()) {
874      case TRANSACTION:
875        tgt.setValue(org.hl7.fhir.r4.model.CapabilityStatement.SystemRestfulInteraction.TRANSACTION);
876        break;
877      case BATCH:
878        tgt.setValue(org.hl7.fhir.r4.model.CapabilityStatement.SystemRestfulInteraction.BATCH);
879        break;
880      case SEARCHSYSTEM:
881        tgt.setValue(org.hl7.fhir.r4.model.CapabilityStatement.SystemRestfulInteraction.SEARCHSYSTEM);
882        break;
883      case HISTORYSYSTEM:
884        tgt.setValue(org.hl7.fhir.r4.model.CapabilityStatement.SystemRestfulInteraction.HISTORYSYSTEM);
885        break;
886      default:
887        tgt.setValue(org.hl7.fhir.r4.model.CapabilityStatement.SystemRestfulInteraction.NULL);
888        break;
889    }
890    return tgt;
891  }
892
893  public static org.hl7.fhir.r5.model.CapabilityStatement.CapabilityStatementMessagingComponent convertCapabilityStatementMessagingComponent(org.hl7.fhir.r4.model.CapabilityStatement.CapabilityStatementMessagingComponent src) throws FHIRException {
894    if (src == null)
895      return null;
896    org.hl7.fhir.r5.model.CapabilityStatement.CapabilityStatementMessagingComponent tgt = new org.hl7.fhir.r5.model.CapabilityStatement.CapabilityStatementMessagingComponent();
897    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
898    for (org.hl7.fhir.r4.model.CapabilityStatement.CapabilityStatementMessagingEndpointComponent t : src.getEndpoint())
899      tgt.addEndpoint(convertCapabilityStatementMessagingEndpointComponent(t));
900    if (src.hasReliableCache())
901      tgt.setReliableCacheElement(UnsignedInt40_50.convertUnsignedInt(src.getReliableCacheElement()));
902    if (src.hasDocumentation())
903      tgt.setDocumentationElement(MarkDown40_50.convertMarkdown(src.getDocumentationElement()));
904    for (org.hl7.fhir.r4.model.CapabilityStatement.CapabilityStatementMessagingSupportedMessageComponent t : src.getSupportedMessage())
905      tgt.addSupportedMessage(convertCapabilityStatementMessagingSupportedMessageComponent(t));
906    return tgt;
907  }
908
909  public static org.hl7.fhir.r4.model.CapabilityStatement.CapabilityStatementMessagingComponent convertCapabilityStatementMessagingComponent(org.hl7.fhir.r5.model.CapabilityStatement.CapabilityStatementMessagingComponent src) throws FHIRException {
910    if (src == null)
911      return null;
912    org.hl7.fhir.r4.model.CapabilityStatement.CapabilityStatementMessagingComponent tgt = new org.hl7.fhir.r4.model.CapabilityStatement.CapabilityStatementMessagingComponent();
913    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
914    for (org.hl7.fhir.r5.model.CapabilityStatement.CapabilityStatementMessagingEndpointComponent t : src.getEndpoint())
915      tgt.addEndpoint(convertCapabilityStatementMessagingEndpointComponent(t));
916    if (src.hasReliableCache())
917      tgt.setReliableCacheElement(UnsignedInt40_50.convertUnsignedInt(src.getReliableCacheElement()));
918    if (src.hasDocumentation())
919      tgt.setDocumentationElement(MarkDown40_50.convertMarkdown(src.getDocumentationElement()));
920    for (org.hl7.fhir.r5.model.CapabilityStatement.CapabilityStatementMessagingSupportedMessageComponent t : src.getSupportedMessage())
921      tgt.addSupportedMessage(convertCapabilityStatementMessagingSupportedMessageComponent(t));
922    return tgt;
923  }
924
925  public static org.hl7.fhir.r5.model.CapabilityStatement.CapabilityStatementMessagingEndpointComponent convertCapabilityStatementMessagingEndpointComponent(org.hl7.fhir.r4.model.CapabilityStatement.CapabilityStatementMessagingEndpointComponent src) throws FHIRException {
926    if (src == null)
927      return null;
928    org.hl7.fhir.r5.model.CapabilityStatement.CapabilityStatementMessagingEndpointComponent tgt = new org.hl7.fhir.r5.model.CapabilityStatement.CapabilityStatementMessagingEndpointComponent();
929    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
930    if (src.hasProtocol())
931      tgt.setProtocol(Coding40_50.convertCoding(src.getProtocol()));
932    if (src.hasAddress())
933      tgt.setAddressElement(Url40_50.convertUrl(src.getAddressElement()));
934    return tgt;
935  }
936
937  public static org.hl7.fhir.r4.model.CapabilityStatement.CapabilityStatementMessagingEndpointComponent convertCapabilityStatementMessagingEndpointComponent(org.hl7.fhir.r5.model.CapabilityStatement.CapabilityStatementMessagingEndpointComponent src) throws FHIRException {
938    if (src == null)
939      return null;
940    org.hl7.fhir.r4.model.CapabilityStatement.CapabilityStatementMessagingEndpointComponent tgt = new org.hl7.fhir.r4.model.CapabilityStatement.CapabilityStatementMessagingEndpointComponent();
941    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
942    if (src.hasProtocol())
943      tgt.setProtocol(Coding40_50.convertCoding(src.getProtocol()));
944    if (src.hasAddress())
945      tgt.setAddressElement(Url40_50.convertUrl(src.getAddressElement()));
946    return tgt;
947  }
948
949  public static org.hl7.fhir.r5.model.CapabilityStatement.CapabilityStatementMessagingSupportedMessageComponent convertCapabilityStatementMessagingSupportedMessageComponent(org.hl7.fhir.r4.model.CapabilityStatement.CapabilityStatementMessagingSupportedMessageComponent src) throws FHIRException {
950    if (src == null)
951      return null;
952    org.hl7.fhir.r5.model.CapabilityStatement.CapabilityStatementMessagingSupportedMessageComponent tgt = new org.hl7.fhir.r5.model.CapabilityStatement.CapabilityStatementMessagingSupportedMessageComponent();
953    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
954    if (src.hasMode())
955      tgt.setModeElement(convertEventCapabilityMode(src.getModeElement()));
956    if (src.hasDefinition())
957      tgt.setDefinitionElement(Canonical40_50.convertCanonical(src.getDefinitionElement()));
958    return tgt;
959  }
960
961  public static org.hl7.fhir.r4.model.CapabilityStatement.CapabilityStatementMessagingSupportedMessageComponent convertCapabilityStatementMessagingSupportedMessageComponent(org.hl7.fhir.r5.model.CapabilityStatement.CapabilityStatementMessagingSupportedMessageComponent src) throws FHIRException {
962    if (src == null)
963      return null;
964    org.hl7.fhir.r4.model.CapabilityStatement.CapabilityStatementMessagingSupportedMessageComponent tgt = new org.hl7.fhir.r4.model.CapabilityStatement.CapabilityStatementMessagingSupportedMessageComponent();
965    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
966    if (src.hasMode())
967      tgt.setModeElement(convertEventCapabilityMode(src.getModeElement()));
968    if (src.hasDefinition())
969      tgt.setDefinitionElement(Canonical40_50.convertCanonical(src.getDefinitionElement()));
970    return tgt;
971  }
972
973  static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.CapabilityStatement.EventCapabilityMode> convertEventCapabilityMode(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.CapabilityStatement.EventCapabilityMode> src) throws FHIRException {
974    if (src == null || src.isEmpty())
975      return null;
976    org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.CapabilityStatement.EventCapabilityMode> tgt = new org.hl7.fhir.r5.model.Enumeration<>(new org.hl7.fhir.r5.model.CapabilityStatement.EventCapabilityModeEnumFactory());
977    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
978    switch (src.getValue()) {
979      case SENDER:
980        tgt.setValue(org.hl7.fhir.r5.model.CapabilityStatement.EventCapabilityMode.SENDER);
981        break;
982      case RECEIVER:
983        tgt.setValue(org.hl7.fhir.r5.model.CapabilityStatement.EventCapabilityMode.RECEIVER);
984        break;
985      default:
986        tgt.setValue(org.hl7.fhir.r5.model.CapabilityStatement.EventCapabilityMode.NULL);
987        break;
988    }
989    return tgt;
990  }
991
992  static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.CapabilityStatement.EventCapabilityMode> convertEventCapabilityMode(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.CapabilityStatement.EventCapabilityMode> src) throws FHIRException {
993    if (src == null || src.isEmpty())
994      return null;
995    org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.CapabilityStatement.EventCapabilityMode> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.CapabilityStatement.EventCapabilityModeEnumFactory());
996    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
997    switch (src.getValue()) {
998      case SENDER:
999        tgt.setValue(org.hl7.fhir.r4.model.CapabilityStatement.EventCapabilityMode.SENDER);
1000        break;
1001      case RECEIVER:
1002        tgt.setValue(org.hl7.fhir.r4.model.CapabilityStatement.EventCapabilityMode.RECEIVER);
1003        break;
1004      default:
1005        tgt.setValue(org.hl7.fhir.r4.model.CapabilityStatement.EventCapabilityMode.NULL);
1006        break;
1007    }
1008    return tgt;
1009  }
1010
1011  public static org.hl7.fhir.r5.model.CapabilityStatement.CapabilityStatementDocumentComponent convertCapabilityStatementDocumentComponent(org.hl7.fhir.r4.model.CapabilityStatement.CapabilityStatementDocumentComponent src) throws FHIRException {
1012    if (src == null)
1013      return null;
1014    org.hl7.fhir.r5.model.CapabilityStatement.CapabilityStatementDocumentComponent tgt = new org.hl7.fhir.r5.model.CapabilityStatement.CapabilityStatementDocumentComponent();
1015    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
1016    if (src.hasMode())
1017      tgt.setModeElement(convertDocumentMode(src.getModeElement()));
1018    if (src.hasDocumentation())
1019      tgt.setDocumentationElement(MarkDown40_50.convertMarkdown(src.getDocumentationElement()));
1020    if (src.hasProfile())
1021      tgt.setProfileElement(Canonical40_50.convertCanonical(src.getProfileElement()));
1022    return tgt;
1023  }
1024
1025  public static org.hl7.fhir.r4.model.CapabilityStatement.CapabilityStatementDocumentComponent convertCapabilityStatementDocumentComponent(org.hl7.fhir.r5.model.CapabilityStatement.CapabilityStatementDocumentComponent src) throws FHIRException {
1026    if (src == null)
1027      return null;
1028    org.hl7.fhir.r4.model.CapabilityStatement.CapabilityStatementDocumentComponent tgt = new org.hl7.fhir.r4.model.CapabilityStatement.CapabilityStatementDocumentComponent();
1029    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
1030    if (src.hasMode())
1031      tgt.setModeElement(convertDocumentMode(src.getModeElement()));
1032    if (src.hasDocumentation())
1033      tgt.setDocumentationElement(MarkDown40_50.convertMarkdown(src.getDocumentationElement()));
1034    if (src.hasProfile())
1035      tgt.setProfileElement(Canonical40_50.convertCanonical(src.getProfileElement()));
1036    return tgt;
1037  }
1038
1039  static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.CapabilityStatement.DocumentMode> convertDocumentMode(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.CapabilityStatement.DocumentMode> src) throws FHIRException {
1040    if (src == null || src.isEmpty())
1041      return null;
1042    org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.CapabilityStatement.DocumentMode> tgt = new org.hl7.fhir.r5.model.Enumeration<>(new org.hl7.fhir.r5.model.CapabilityStatement.DocumentModeEnumFactory());
1043    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
1044    switch (src.getValue()) {
1045      case PRODUCER:
1046        tgt.setValue(org.hl7.fhir.r5.model.CapabilityStatement.DocumentMode.PRODUCER);
1047        break;
1048      case CONSUMER:
1049        tgt.setValue(org.hl7.fhir.r5.model.CapabilityStatement.DocumentMode.CONSUMER);
1050        break;
1051      default:
1052        tgt.setValue(org.hl7.fhir.r5.model.CapabilityStatement.DocumentMode.NULL);
1053        break;
1054    }
1055    return tgt;
1056  }
1057
1058  static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.CapabilityStatement.DocumentMode> convertDocumentMode(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.CapabilityStatement.DocumentMode> src) throws FHIRException {
1059    if (src == null || src.isEmpty())
1060      return null;
1061    org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.CapabilityStatement.DocumentMode> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.CapabilityStatement.DocumentModeEnumFactory());
1062    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
1063    switch (src.getValue()) {
1064      case PRODUCER:
1065        tgt.setValue(org.hl7.fhir.r4.model.CapabilityStatement.DocumentMode.PRODUCER);
1066        break;
1067      case CONSUMER:
1068        tgt.setValue(org.hl7.fhir.r4.model.CapabilityStatement.DocumentMode.CONSUMER);
1069        break;
1070      default:
1071        tgt.setValue(org.hl7.fhir.r4.model.CapabilityStatement.DocumentMode.NULL);
1072        break;
1073    }
1074    return tgt;
1075  }
1076}