001package org.hl7.fhir.convertors.conv43_50.resources43_50;
002
003import java.util.stream.Collectors;
004
005import org.hl7.fhir.convertors.context.ConversionContext43_50;
006import org.hl7.fhir.convertors.conv43_50.datatypes43_50.general43_50.CodeableConcept43_50;
007import org.hl7.fhir.convertors.conv43_50.datatypes43_50.metadata43_50.ContactDetail43_50;
008import org.hl7.fhir.convertors.conv43_50.datatypes43_50.metadata43_50.UsageContext43_50;
009import org.hl7.fhir.convertors.conv43_50.datatypes43_50.primitive43_50.Boolean43_50;
010import org.hl7.fhir.convertors.conv43_50.datatypes43_50.primitive43_50.Canonical43_50;
011import org.hl7.fhir.convertors.conv43_50.datatypes43_50.primitive43_50.Code43_50;
012import org.hl7.fhir.convertors.conv43_50.datatypes43_50.primitive43_50.DateTime43_50;
013import org.hl7.fhir.convertors.conv43_50.datatypes43_50.primitive43_50.Id43_50;
014import org.hl7.fhir.convertors.conv43_50.datatypes43_50.primitive43_50.MarkDown43_50;
015import org.hl7.fhir.convertors.conv43_50.datatypes43_50.primitive43_50.String43_50;
016import org.hl7.fhir.convertors.conv43_50.datatypes43_50.primitive43_50.Uri43_50;
017import org.hl7.fhir.convertors.conv43_50.datatypes43_50.primitive43_50.Url43_50;
018import org.hl7.fhir.convertors.conv43_50.datatypes43_50.special43_50.Reference43_50;
019import org.hl7.fhir.exceptions.FHIRException;
020import org.hl7.fhir.utilities.Utilities;
021
022/*
023  Copyright (c) 2011+, HL7, Inc.
024  All rights reserved.
025  
026  Redistribution and use in source and binary forms, with or without modification, 
027  are permitted provided that the following conditions are met:
028  
029   * Redistributions of source code must retain the above copyright notice, this 
030     list of conditions and the following disclaimer.
031   * Redistributions in binary form must reproduce the above copyright notice, 
032     this list of conditions and the following disclaimer in the documentation 
033     and/or other materials provided with the distribution.
034   * Neither the name of HL7 nor the names of its contributors may be used to 
035     endorse or promote products derived from this software without specific 
036     prior written permission.
037  
038  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 
039  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
040  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 
041  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 
042  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 
043  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 
044  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
045  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
046  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
047  POSSIBILITY OF SUCH DAMAGE.
048  
049*/
050// Generated on Sun, Feb 24, 2019 11:37+1100 for FHIR v4.0.0
051public class ImplementationGuide43_50 {
052
053  static final String EXT_IG_DEFINITION_PARAMETER = "http://hl7.org/fhir/tools/StructureDefinition/ig-parameter";
054
055  public static org.hl7.fhir.r5.model.ImplementationGuide convertImplementationGuide(org.hl7.fhir.r4b.model.ImplementationGuide src) throws FHIRException {
056    if (src == null)
057      return null;
058    org.hl7.fhir.r5.model.ImplementationGuide tgt = new org.hl7.fhir.r5.model.ImplementationGuide();
059    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyDomainResource(src, tgt);
060    if (src.hasUrl())
061      tgt.setUrlElement(Uri43_50.convertUri(src.getUrlElement()));
062    if (src.hasVersion())
063      tgt.setVersionElement(String43_50.convertString(src.getVersionElement()));
064    if (src.hasName())
065      tgt.setNameElement(String43_50.convertString(src.getNameElement()));
066    if (src.hasTitle())
067      tgt.setTitleElement(String43_50.convertString(src.getTitleElement()));
068    if (src.hasStatus())
069      tgt.setStatusElement(Enumerations43_50.convertPublicationStatus(src.getStatusElement()));
070    if (src.hasExperimental())
071      tgt.setExperimentalElement(Boolean43_50.convertBoolean(src.getExperimentalElement()));
072    if (src.hasDate())
073      tgt.setDateElement(DateTime43_50.convertDateTime(src.getDateElement()));
074    if (src.hasPublisher())
075      tgt.setPublisherElement(String43_50.convertString(src.getPublisherElement()));
076    for (org.hl7.fhir.r4b.model.ContactDetail t : src.getContact())
077      tgt.addContact(ContactDetail43_50.convertContactDetail(t));
078    if (src.hasDescription())
079      tgt.setDescriptionElement(MarkDown43_50.convertMarkdown(src.getDescriptionElement()));
080    for (org.hl7.fhir.r4b.model.UsageContext t : src.getUseContext())
081      tgt.addUseContext(UsageContext43_50.convertUsageContext(t));
082    for (org.hl7.fhir.r4b.model.CodeableConcept t : src.getJurisdiction())
083      tgt.addJurisdiction(CodeableConcept43_50.convertCodeableConcept(t));
084    if (src.hasCopyright())
085      tgt.setCopyrightElement(MarkDown43_50.convertMarkdown(src.getCopyrightElement()));
086    if (src.hasPackageId())
087      tgt.setPackageIdElement(Id43_50.convertId(src.getPackageIdElement()));
088    if (src.hasLicense())
089      tgt.setLicenseElement(convertSPDXLicense(src.getLicenseElement()));
090    tgt.setFhirVersion(src.getFhirVersion().stream()
091      .map(Enumerations43_50::convertFHIRVersion)
092      .collect(Collectors.toList()));
093    for (org.hl7.fhir.r4b.model.ImplementationGuide.ImplementationGuideDependsOnComponent t : src.getDependsOn())
094      tgt.addDependsOn(convertImplementationGuideDependsOnComponent(t));
095    for (org.hl7.fhir.r4b.model.ImplementationGuide.ImplementationGuideGlobalComponent t : src.getGlobal())
096      tgt.addGlobal(convertImplementationGuideGlobalComponent(t));
097    if (src.hasDefinition())
098      tgt.setDefinition(convertImplementationGuideDefinitionComponent(src.getDefinition()));
099    if (src.hasManifest())
100      tgt.setManifest(convertImplementationGuideManifestComponent(src.getManifest()));
101    return tgt;
102  }
103
104  public static org.hl7.fhir.r4b.model.ImplementationGuide convertImplementationGuide(org.hl7.fhir.r5.model.ImplementationGuide src) throws FHIRException {
105    if (src == null)
106      return null;
107    org.hl7.fhir.r4b.model.ImplementationGuide tgt = new org.hl7.fhir.r4b.model.ImplementationGuide();
108    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyDomainResource(src, tgt);
109    if (src.hasUrl())
110      tgt.setUrlElement(Uri43_50.convertUri(src.getUrlElement()));
111    if (src.hasVersion())
112      tgt.setVersionElement(String43_50.convertString(src.getVersionElement()));
113    if (src.hasName())
114      tgt.setNameElement(String43_50.convertString(src.getNameElement()));
115    if (src.hasTitle())
116      tgt.setTitleElement(String43_50.convertString(src.getTitleElement()));
117    if (src.hasStatus())
118      tgt.setStatusElement(Enumerations43_50.convertPublicationStatus(src.getStatusElement()));
119    if (src.hasExperimental())
120      tgt.setExperimentalElement(Boolean43_50.convertBoolean(src.getExperimentalElement()));
121    if (src.hasDate())
122      tgt.setDateElement(DateTime43_50.convertDateTime(src.getDateElement()));
123    if (src.hasPublisher())
124      tgt.setPublisherElement(String43_50.convertString(src.getPublisherElement()));
125    for (org.hl7.fhir.r5.model.ContactDetail t : src.getContact())
126      tgt.addContact(ContactDetail43_50.convertContactDetail(t));
127    if (src.hasDescription())
128      tgt.setDescriptionElement(MarkDown43_50.convertMarkdown(src.getDescriptionElement()));
129    for (org.hl7.fhir.r5.model.UsageContext t : src.getUseContext())
130      tgt.addUseContext(UsageContext43_50.convertUsageContext(t));
131    for (org.hl7.fhir.r5.model.CodeableConcept t : src.getJurisdiction())
132      tgt.addJurisdiction(CodeableConcept43_50.convertCodeableConcept(t));
133    if (src.hasCopyright())
134      tgt.setCopyrightElement(MarkDown43_50.convertMarkdown(src.getCopyrightElement()));
135    if (src.hasPackageId())
136      tgt.setPackageIdElement(Id43_50.convertId(src.getPackageIdElement()));
137    if (src.hasLicense())
138      tgt.setLicenseElement(convertSPDXLicense(src.getLicenseElement()));
139    tgt.setFhirVersion(src.getFhirVersion().stream()
140      .map(Enumerations43_50::convertFHIRVersion)
141      .collect(Collectors.toList()));
142    for (org.hl7.fhir.r5.model.ImplementationGuide.ImplementationGuideDependsOnComponent t : src.getDependsOn())
143      tgt.addDependsOn(convertImplementationGuideDependsOnComponent(t));
144    for (org.hl7.fhir.r5.model.ImplementationGuide.ImplementationGuideGlobalComponent t : src.getGlobal())
145      tgt.addGlobal(convertImplementationGuideGlobalComponent(t));
146    if (src.hasDefinition())
147      tgt.setDefinition(convertImplementationGuideDefinitionComponent(src.getDefinition()));
148    if (src.hasManifest())
149      tgt.setManifest(convertImplementationGuideManifestComponent(src.getManifest()));
150    return tgt;
151  }
152
153  static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.ImplementationGuide.SPDXLicense> convertSPDXLicense(org.hl7.fhir.r4b.model.Enumeration<org.hl7.fhir.r4b.model.ImplementationGuide.SPDXLicense> src) throws FHIRException {
154    if (src == null || src.isEmpty())
155      return null;
156    org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.ImplementationGuide.SPDXLicense> tgt = new org.hl7.fhir.r5.model.Enumeration<>(new org.hl7.fhir.r5.model.ImplementationGuide.SPDXLicenseEnumFactory());
157    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyElement(src, tgt);
158    tgt.setValue(org.hl7.fhir.r5.model.ImplementationGuide.SPDXLicense.fromCode(src.getValue().toCode()));
159    return tgt;
160  }
161
162  static public org.hl7.fhir.r4b.model.Enumeration<org.hl7.fhir.r4b.model.ImplementationGuide.SPDXLicense> convertSPDXLicense(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.ImplementationGuide.SPDXLicense> src) throws FHIRException {
163    if (src == null || src.isEmpty())
164      return null;
165    org.hl7.fhir.r4b.model.Enumeration<org.hl7.fhir.r4b.model.ImplementationGuide.SPDXLicense> tgt = new org.hl7.fhir.r4b.model.Enumeration<>(new org.hl7.fhir.r4b.model.ImplementationGuide.SPDXLicenseEnumFactory());
166    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyElement(src, tgt);
167    tgt.setValue(org.hl7.fhir.r4b.model.ImplementationGuide.SPDXLicense.fromCode(src.getValue().toCode()));
168    return tgt;
169  }
170
171  public static org.hl7.fhir.r5.model.ImplementationGuide.ImplementationGuideDependsOnComponent convertImplementationGuideDependsOnComponent(org.hl7.fhir.r4b.model.ImplementationGuide.ImplementationGuideDependsOnComponent src) throws FHIRException {
172    if (src == null)
173      return null;
174    org.hl7.fhir.r5.model.ImplementationGuide.ImplementationGuideDependsOnComponent tgt = new org.hl7.fhir.r5.model.ImplementationGuide.ImplementationGuideDependsOnComponent();
175    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
176    if (src.hasUri())
177      tgt.setUriElement(Canonical43_50.convertCanonical(src.getUriElement()));
178    if (src.hasPackageId())
179      tgt.setPackageIdElement(Id43_50.convertId(src.getPackageIdElement()));
180    if (src.hasVersion())
181      tgt.setVersionElement(String43_50.convertString(src.getVersionElement()));
182    return tgt;
183  }
184
185  public static org.hl7.fhir.r4b.model.ImplementationGuide.ImplementationGuideDependsOnComponent convertImplementationGuideDependsOnComponent(org.hl7.fhir.r5.model.ImplementationGuide.ImplementationGuideDependsOnComponent src) throws FHIRException {
186    if (src == null)
187      return null;
188    org.hl7.fhir.r4b.model.ImplementationGuide.ImplementationGuideDependsOnComponent tgt = new org.hl7.fhir.r4b.model.ImplementationGuide.ImplementationGuideDependsOnComponent();
189    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
190    if (src.hasUri())
191      tgt.setUriElement(Canonical43_50.convertCanonical(src.getUriElement()));
192    if (src.hasPackageId())
193      tgt.setPackageIdElement(Id43_50.convertId(src.getPackageIdElement()));
194    if (src.hasVersion())
195      tgt.setVersionElement(String43_50.convertString(src.getVersionElement()));
196    return tgt;
197  }
198
199  public static org.hl7.fhir.r5.model.ImplementationGuide.ImplementationGuideGlobalComponent convertImplementationGuideGlobalComponent(org.hl7.fhir.r4b.model.ImplementationGuide.ImplementationGuideGlobalComponent src) throws FHIRException {
200    if (src == null)
201      return null;
202    org.hl7.fhir.r5.model.ImplementationGuide.ImplementationGuideGlobalComponent tgt = new org.hl7.fhir.r5.model.ImplementationGuide.ImplementationGuideGlobalComponent();
203    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
204    if (src.hasType())
205      tgt.setTypeElement(Code43_50.convertCode(src.getTypeElement()));
206    if (src.hasProfile())
207      tgt.setProfileElement(Canonical43_50.convertCanonical(src.getProfileElement()));
208    return tgt;
209  }
210
211  public static org.hl7.fhir.r4b.model.ImplementationGuide.ImplementationGuideGlobalComponent convertImplementationGuideGlobalComponent(org.hl7.fhir.r5.model.ImplementationGuide.ImplementationGuideGlobalComponent src) throws FHIRException {
212    if (src == null)
213      return null;
214    org.hl7.fhir.r4b.model.ImplementationGuide.ImplementationGuideGlobalComponent tgt = new org.hl7.fhir.r4b.model.ImplementationGuide.ImplementationGuideGlobalComponent();
215    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
216    if (src.hasType())
217      tgt.setTypeElement(Code43_50.convertCode(src.getTypeElement()));
218    if (src.hasProfile())
219      tgt.setProfileElement(Canonical43_50.convertCanonical(src.getProfileElement()));
220    return tgt;
221  }
222
223  public static org.hl7.fhir.r5.model.ImplementationGuide.ImplementationGuideDefinitionComponent convertImplementationGuideDefinitionComponent(org.hl7.fhir.r4b.model.ImplementationGuide.ImplementationGuideDefinitionComponent src) throws FHIRException {
224    if (src == null)
225      return null;
226    org.hl7.fhir.r5.model.ImplementationGuide.ImplementationGuideDefinitionComponent tgt = new org.hl7.fhir.r5.model.ImplementationGuide.ImplementationGuideDefinitionComponent();
227    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
228    for (org.hl7.fhir.r4b.model.ImplementationGuide.ImplementationGuideDefinitionGroupingComponent t : src.getGrouping())
229      tgt.addGrouping(convertImplementationGuideDefinitionGroupingComponent(t));
230    for (org.hl7.fhir.r4b.model.ImplementationGuide.ImplementationGuideDefinitionResourceComponent t : src.getResource())
231      tgt.addResource(convertImplementationGuideDefinitionResourceComponent(t));
232    if (src.hasPage())
233      tgt.setPage(convertImplementationGuideDefinitionPageComponent(src.getPage()));
234    for (org.hl7.fhir.r4b.model.ImplementationGuide.ImplementationGuideDefinitionParameterComponent t : src.getParameter())
235      tgt.addParameter(convertImplementationGuideDefinitionParameterComponent(t));
236    for (org.hl7.fhir.r4b.model.Extension e : org.hl7.fhir.r4b.utils.ToolingExtensions.getExtensions(src, EXT_IG_DEFINITION_PARAMETER)) {
237      org.hl7.fhir.r5.model.ImplementationGuide.ImplementationGuideDefinitionParameterComponent p = new org.hl7.fhir.r5.model.ImplementationGuide.ImplementationGuideDefinitionParameterComponent();
238      p.getCode().setCode(org.hl7.fhir.r4b.utils.ToolingExtensions.readStringExtension(e, "code"));
239      p.setValue(org.hl7.fhir.r4b.utils.ToolingExtensions.readStringExtension(e, "Value"));
240      tgt.addParameter(p);
241    }
242    for (org.hl7.fhir.r4b.model.ImplementationGuide.ImplementationGuideDefinitionTemplateComponent t : src.getTemplate())
243      tgt.addTemplate(convertImplementationGuideDefinitionTemplateComponent(t));
244    return tgt;
245  }
246
247  public static org.hl7.fhir.r4b.model.ImplementationGuide.ImplementationGuideDefinitionComponent convertImplementationGuideDefinitionComponent(org.hl7.fhir.r5.model.ImplementationGuide.ImplementationGuideDefinitionComponent src) throws FHIRException {
248    if (src == null)
249      return null;
250    org.hl7.fhir.r4b.model.ImplementationGuide.ImplementationGuideDefinitionComponent tgt = new org.hl7.fhir.r4b.model.ImplementationGuide.ImplementationGuideDefinitionComponent();
251    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
252    for (org.hl7.fhir.r5.model.ImplementationGuide.ImplementationGuideDefinitionGroupingComponent t : src.getGrouping())
253      tgt.addGrouping(convertImplementationGuideDefinitionGroupingComponent(t));
254    for (org.hl7.fhir.r5.model.ImplementationGuide.ImplementationGuideDefinitionResourceComponent t : src.getResource())
255      tgt.addResource(convertImplementationGuideDefinitionResourceComponent(t));
256    if (src.hasPage())
257      tgt.setPage(convertImplementationGuideDefinitionPageComponent(src.getPage()));
258    for (org.hl7.fhir.r5.model.ImplementationGuide.ImplementationGuideDefinitionParameterComponent t : src.getParameter()) {
259      if (Utilities.existsInList(t.getCode().getCode(), "apply", "path-resource", "path-pages", "path-tx-cache", "expansion-parameter", "rule-broken-links", "generate-xml", "generate-json", "generate-turtle", "html-template"))
260        tgt.addParameter(convertImplementationGuideDefinitionParameterComponent(t));
261      else {
262        org.hl7.fhir.r4b.model.Extension e = new org.hl7.fhir.r4b.model.Extension(EXT_IG_DEFINITION_PARAMETER);
263        org.hl7.fhir.r4b.model.Extension eCode = new org.hl7.fhir.r4b.model.Extension("code", new org.hl7.fhir.r4b.model.CodeType(t.getCode().getCode()));
264        org.hl7.fhir.r4b.model.Extension eValue = new org.hl7.fhir.r4b.model.Extension("value", new org.hl7.fhir.r4b.model.StringType(t.getValue()));
265        e.addExtension(eCode);
266        e.addExtension(eValue);
267        tgt.addExtension(e);
268      }
269    }
270    for (org.hl7.fhir.r5.model.ImplementationGuide.ImplementationGuideDefinitionTemplateComponent t : src.getTemplate())
271      tgt.addTemplate(convertImplementationGuideDefinitionTemplateComponent(t));
272    return tgt;
273  }
274
275  public static org.hl7.fhir.r5.model.ImplementationGuide.ImplementationGuideDefinitionGroupingComponent convertImplementationGuideDefinitionGroupingComponent(org.hl7.fhir.r4b.model.ImplementationGuide.ImplementationGuideDefinitionGroupingComponent src) throws FHIRException {
276    if (src == null)
277      return null;
278    org.hl7.fhir.r5.model.ImplementationGuide.ImplementationGuideDefinitionGroupingComponent tgt = new org.hl7.fhir.r5.model.ImplementationGuide.ImplementationGuideDefinitionGroupingComponent();
279    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
280    if (src.hasName())
281      tgt.setNameElement(String43_50.convertString(src.getNameElement()));
282    if (src.hasDescription())
283      tgt.setDescriptionElement(String43_50.convertStringToMarkdown(src.getDescriptionElement()));
284    return tgt;
285  }
286
287  public static org.hl7.fhir.r4b.model.ImplementationGuide.ImplementationGuideDefinitionGroupingComponent convertImplementationGuideDefinitionGroupingComponent(org.hl7.fhir.r5.model.ImplementationGuide.ImplementationGuideDefinitionGroupingComponent src) throws FHIRException {
288    if (src == null)
289      return null;
290    org.hl7.fhir.r4b.model.ImplementationGuide.ImplementationGuideDefinitionGroupingComponent tgt = new org.hl7.fhir.r4b.model.ImplementationGuide.ImplementationGuideDefinitionGroupingComponent();
291    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
292    if (src.hasName())
293      tgt.setNameElement(String43_50.convertString(src.getNameElement()));
294    if (src.hasDescription())
295      tgt.setDescriptionElement(String43_50.convertString(src.getDescriptionElement()));
296    return tgt;
297  }
298
299  public static org.hl7.fhir.r5.model.ImplementationGuide.ImplementationGuideDefinitionResourceComponent convertImplementationGuideDefinitionResourceComponent(org.hl7.fhir.r4b.model.ImplementationGuide.ImplementationGuideDefinitionResourceComponent src) throws FHIRException {
300    if (src == null)
301      return null;
302    org.hl7.fhir.r5.model.ImplementationGuide.ImplementationGuideDefinitionResourceComponent tgt = new org.hl7.fhir.r5.model.ImplementationGuide.ImplementationGuideDefinitionResourceComponent();
303    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
304    if (src.hasReference())
305      tgt.setReference(Reference43_50.convertReference(src.getReference()));
306    tgt.setFhirVersion(src.getFhirVersion().stream()
307      .map(Enumerations43_50::convertFHIRVersion)
308      .collect(Collectors.toList()));
309    if (src.hasName())
310      tgt.setNameElement(String43_50.convertString(src.getNameElement()));
311    if (src.hasDescription())
312      tgt.setDescriptionElement(String43_50.convertStringToMarkdown(src.getDescriptionElement()));
313    if (src.hasExampleBooleanType())
314      tgt.setIsExampleElement(Boolean43_50.convertBoolean(src.getExampleBooleanType()));
315    if (src.hasExampleCanonicalType())
316      tgt.getProfile().add(Canonical43_50.convertCanonical(src.getExampleCanonicalType()));
317    if (src.hasGroupingId())
318      tgt.setGroupingIdElement(Id43_50.convertId(src.getGroupingIdElement()));
319    return tgt;
320  }
321
322  public static org.hl7.fhir.r4b.model.ImplementationGuide.ImplementationGuideDefinitionResourceComponent convertImplementationGuideDefinitionResourceComponent(org.hl7.fhir.r5.model.ImplementationGuide.ImplementationGuideDefinitionResourceComponent src) throws FHIRException {
323    if (src == null)
324      return null;
325    org.hl7.fhir.r4b.model.ImplementationGuide.ImplementationGuideDefinitionResourceComponent tgt = new org.hl7.fhir.r4b.model.ImplementationGuide.ImplementationGuideDefinitionResourceComponent();
326    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
327    if (src.hasReference())
328      tgt.setReference(Reference43_50.convertReference(src.getReference()));
329    tgt.setFhirVersion(src.getFhirVersion().stream()
330      .map(Enumerations43_50::convertFHIRVersion)
331      .collect(Collectors.toList()));
332    if (src.hasName())
333      tgt.setNameElement(String43_50.convertString(src.getNameElement()));
334    if (src.hasDescription())
335      tgt.setDescriptionElement(String43_50.convertString(src.getDescriptionElement()));
336    if (src.hasIsExample())
337      tgt.setExample(ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().convertType(src.getIsExampleElement()));
338    if (src.hasProfile())
339      tgt.setExample(ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().convertType(src.getProfile().get(0)));
340    if (src.hasGroupingId())
341      tgt.setGroupingIdElement(Id43_50.convertId(src.getGroupingIdElement()));
342    return tgt;
343  }
344
345  public static org.hl7.fhir.r5.model.ImplementationGuide.ImplementationGuideDefinitionPageComponent convertImplementationGuideDefinitionPageComponent(org.hl7.fhir.r4b.model.ImplementationGuide.ImplementationGuideDefinitionPageComponent src) throws FHIRException {
346    if (src == null)
347      return null;
348    org.hl7.fhir.r5.model.ImplementationGuide.ImplementationGuideDefinitionPageComponent tgt = new org.hl7.fhir.r5.model.ImplementationGuide.ImplementationGuideDefinitionPageComponent();
349    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
350    if (src.hasNameReference())
351      tgt.setName(src.getNameReference().getReference());
352    else if (src.hasNameUrlType())
353      tgt.setName(src.getNameUrlType().getValue());
354    if (src.hasTitle())
355      tgt.setTitleElement(String43_50.convertString(src.getTitleElement()));
356    if (src.hasGeneration())
357      tgt.setGenerationElement(convertGuidePageGeneration(src.getGenerationElement()));
358    for (org.hl7.fhir.r4b.model.ImplementationGuide.ImplementationGuideDefinitionPageComponent t : src.getPage())
359      tgt.addPage(convertImplementationGuideDefinitionPageComponent(t));
360    return tgt;
361  }
362
363  public static org.hl7.fhir.r4b.model.ImplementationGuide.ImplementationGuideDefinitionPageComponent convertImplementationGuideDefinitionPageComponent(org.hl7.fhir.r5.model.ImplementationGuide.ImplementationGuideDefinitionPageComponent src) throws FHIRException {
364    if (src == null)
365      return null;
366    org.hl7.fhir.r4b.model.ImplementationGuide.ImplementationGuideDefinitionPageComponent tgt = new org.hl7.fhir.r4b.model.ImplementationGuide.ImplementationGuideDefinitionPageComponent();
367    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
368    if (src.hasName())
369      tgt.setName(ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().convertType(src.getNameElement()));
370    if (src.hasTitle())
371      tgt.setTitleElement(String43_50.convertString(src.getTitleElement()));
372    if (src.hasGeneration())
373      tgt.setGenerationElement(convertGuidePageGeneration(src.getGenerationElement()));
374    for (org.hl7.fhir.r5.model.ImplementationGuide.ImplementationGuideDefinitionPageComponent t : src.getPage())
375      tgt.addPage(convertImplementationGuideDefinitionPageComponent(t));
376    return tgt;
377  }
378
379  static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.ImplementationGuide.GuidePageGeneration> convertGuidePageGeneration(org.hl7.fhir.r4b.model.Enumeration<org.hl7.fhir.r4b.model.ImplementationGuide.GuidePageGeneration> src) throws FHIRException {
380    if (src == null || src.isEmpty())
381      return null;
382    org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.ImplementationGuide.GuidePageGeneration> tgt = new org.hl7.fhir.r5.model.Enumeration<>(new org.hl7.fhir.r5.model.ImplementationGuide.GuidePageGenerationEnumFactory());
383    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyElement(src, tgt);
384    switch (src.getValue()) {
385      case HTML:
386        tgt.setValue(org.hl7.fhir.r5.model.ImplementationGuide.GuidePageGeneration.HTML);
387        break;
388      case MARKDOWN:
389        tgt.setValue(org.hl7.fhir.r5.model.ImplementationGuide.GuidePageGeneration.MARKDOWN);
390        break;
391      case XML:
392        tgt.setValue(org.hl7.fhir.r5.model.ImplementationGuide.GuidePageGeneration.XML);
393        break;
394      case GENERATED:
395        tgt.setValue(org.hl7.fhir.r5.model.ImplementationGuide.GuidePageGeneration.GENERATED);
396        break;
397      default:
398        tgt.setValue(org.hl7.fhir.r5.model.ImplementationGuide.GuidePageGeneration.NULL);
399        break;
400    }
401    return tgt;
402  }
403
404  static public org.hl7.fhir.r4b.model.Enumeration<org.hl7.fhir.r4b.model.ImplementationGuide.GuidePageGeneration> convertGuidePageGeneration(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.ImplementationGuide.GuidePageGeneration> src) throws FHIRException {
405    if (src == null || src.isEmpty())
406      return null;
407    org.hl7.fhir.r4b.model.Enumeration<org.hl7.fhir.r4b.model.ImplementationGuide.GuidePageGeneration> tgt = new org.hl7.fhir.r4b.model.Enumeration<>(new org.hl7.fhir.r4b.model.ImplementationGuide.GuidePageGenerationEnumFactory());
408    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyElement(src, tgt);
409    switch (src.getValue()) {
410      case HTML:
411        tgt.setValue(org.hl7.fhir.r4b.model.ImplementationGuide.GuidePageGeneration.HTML);
412        break;
413      case MARKDOWN:
414        tgt.setValue(org.hl7.fhir.r4b.model.ImplementationGuide.GuidePageGeneration.MARKDOWN);
415        break;
416      case XML:
417        tgt.setValue(org.hl7.fhir.r4b.model.ImplementationGuide.GuidePageGeneration.XML);
418        break;
419      case GENERATED:
420        tgt.setValue(org.hl7.fhir.r4b.model.ImplementationGuide.GuidePageGeneration.GENERATED);
421        break;
422      default:
423        tgt.setValue(org.hl7.fhir.r4b.model.ImplementationGuide.GuidePageGeneration.NULL);
424        break;
425    }
426    return tgt;
427  }
428
429  public static org.hl7.fhir.r5.model.ImplementationGuide.ImplementationGuideDefinitionParameterComponent convertImplementationGuideDefinitionParameterComponent(org.hl7.fhir.r4b.model.ImplementationGuide.ImplementationGuideDefinitionParameterComponent src) throws FHIRException {
430    if (src == null)
431      return null;
432    org.hl7.fhir.r5.model.ImplementationGuide.ImplementationGuideDefinitionParameterComponent tgt = new org.hl7.fhir.r5.model.ImplementationGuide.ImplementationGuideDefinitionParameterComponent();
433    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
434    if (src.hasCode())
435      tgt.getCode().setCode(src.getCode());
436    if (src.hasValue())
437      tgt.setValueElement(String43_50.convertString(src.getValueElement()));
438    return tgt;
439  }
440
441  public static org.hl7.fhir.r4b.model.ImplementationGuide.ImplementationGuideDefinitionParameterComponent convertImplementationGuideDefinitionParameterComponent(org.hl7.fhir.r5.model.ImplementationGuide.ImplementationGuideDefinitionParameterComponent src) throws FHIRException {
442    if (src == null)
443      return null;
444    org.hl7.fhir.r4b.model.ImplementationGuide.ImplementationGuideDefinitionParameterComponent tgt = new org.hl7.fhir.r4b.model.ImplementationGuide.ImplementationGuideDefinitionParameterComponent();
445    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
446    if (src.hasCode())
447      tgt.getCodeElement().setValueAsString(src.getCode().getCode());
448    if (src.hasValue())
449      tgt.setValueElement(String43_50.convertString(src.getValueElement()));
450    return tgt;
451  }
452
453  public static org.hl7.fhir.r5.utils.GuideParameterCode convertGuideParameterCode(org.hl7.fhir.r4b.model.ImplementationGuide.GuideParameterCode src) throws FHIRException {
454    if (src == null)
455      return null;
456    switch (src) {
457      case APPLY:
458        return org.hl7.fhir.r5.utils.GuideParameterCode.APPLY;
459      case PATHRESOURCE:
460        return org.hl7.fhir.r5.utils.GuideParameterCode.PATHRESOURCE;
461      case PATHPAGES:
462        return org.hl7.fhir.r5.utils.GuideParameterCode.PATHPAGES;
463      case PATHTXCACHE:
464        return org.hl7.fhir.r5.utils.GuideParameterCode.PATHTXCACHE;
465      case EXPANSIONPARAMETER:
466        return org.hl7.fhir.r5.utils.GuideParameterCode.EXPANSIONPARAMETER;
467      case RULEBROKENLINKS:
468        return org.hl7.fhir.r5.utils.GuideParameterCode.RULEBROKENLINKS;
469      case GENERATEXML:
470        return org.hl7.fhir.r5.utils.GuideParameterCode.GENERATEXML;
471      case GENERATEJSON:
472        return org.hl7.fhir.r5.utils.GuideParameterCode.GENERATEJSON;
473      case GENERATETURTLE:
474        return org.hl7.fhir.r5.utils.GuideParameterCode.GENERATETURTLE;
475      case HTMLTEMPLATE:
476        return org.hl7.fhir.r5.utils.GuideParameterCode.HTMLTEMPLATE;
477      default:
478        return org.hl7.fhir.r5.utils.GuideParameterCode.NULL;
479    }
480  }
481
482  public static org.hl7.fhir.r4b.model.ImplementationGuide.GuideParameterCode convertGuideParameterCode(org.hl7.fhir.r5.utils.GuideParameterCode src) throws FHIRException {
483    if (src == null)
484      return null;
485    switch (src) {
486      case APPLY:
487        return org.hl7.fhir.r4b.model.ImplementationGuide.GuideParameterCode.APPLY;
488      case PATHRESOURCE:
489        return org.hl7.fhir.r4b.model.ImplementationGuide.GuideParameterCode.PATHRESOURCE;
490      case PATHPAGES:
491        return org.hl7.fhir.r4b.model.ImplementationGuide.GuideParameterCode.PATHPAGES;
492      case PATHTXCACHE:
493        return org.hl7.fhir.r4b.model.ImplementationGuide.GuideParameterCode.PATHTXCACHE;
494      case EXPANSIONPARAMETER:
495        return org.hl7.fhir.r4b.model.ImplementationGuide.GuideParameterCode.EXPANSIONPARAMETER;
496      case RULEBROKENLINKS:
497        return org.hl7.fhir.r4b.model.ImplementationGuide.GuideParameterCode.RULEBROKENLINKS;
498      case GENERATEXML:
499        return org.hl7.fhir.r4b.model.ImplementationGuide.GuideParameterCode.GENERATEXML;
500      case GENERATEJSON:
501        return org.hl7.fhir.r4b.model.ImplementationGuide.GuideParameterCode.GENERATEJSON;
502      case GENERATETURTLE:
503        return org.hl7.fhir.r4b.model.ImplementationGuide.GuideParameterCode.GENERATETURTLE;
504      case HTMLTEMPLATE:
505        return org.hl7.fhir.r4b.model.ImplementationGuide.GuideParameterCode.HTMLTEMPLATE;
506      default:
507        return org.hl7.fhir.r4b.model.ImplementationGuide.GuideParameterCode.NULL;
508    }
509  }
510
511  public static org.hl7.fhir.r5.model.ImplementationGuide.ImplementationGuideDefinitionTemplateComponent convertImplementationGuideDefinitionTemplateComponent(org.hl7.fhir.r4b.model.ImplementationGuide.ImplementationGuideDefinitionTemplateComponent src) throws FHIRException {
512    if (src == null)
513      return null;
514    org.hl7.fhir.r5.model.ImplementationGuide.ImplementationGuideDefinitionTemplateComponent tgt = new org.hl7.fhir.r5.model.ImplementationGuide.ImplementationGuideDefinitionTemplateComponent();
515    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
516    if (src.hasCode())
517      tgt.setCodeElement(Code43_50.convertCode(src.getCodeElement()));
518    if (src.hasSource())
519      tgt.setSourceElement(String43_50.convertString(src.getSourceElement()));
520    if (src.hasScope())
521      tgt.setScopeElement(String43_50.convertString(src.getScopeElement()));
522    return tgt;
523  }
524
525  public static org.hl7.fhir.r4b.model.ImplementationGuide.ImplementationGuideDefinitionTemplateComponent convertImplementationGuideDefinitionTemplateComponent(org.hl7.fhir.r5.model.ImplementationGuide.ImplementationGuideDefinitionTemplateComponent src) throws FHIRException {
526    if (src == null)
527      return null;
528    org.hl7.fhir.r4b.model.ImplementationGuide.ImplementationGuideDefinitionTemplateComponent tgt = new org.hl7.fhir.r4b.model.ImplementationGuide.ImplementationGuideDefinitionTemplateComponent();
529    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
530    if (src.hasCode())
531      tgt.setCodeElement(Code43_50.convertCode(src.getCodeElement()));
532    if (src.hasSource())
533      tgt.setSourceElement(String43_50.convertString(src.getSourceElement()));
534    if (src.hasScope())
535      tgt.setScopeElement(String43_50.convertString(src.getScopeElement()));
536    return tgt;
537  }
538
539  public static org.hl7.fhir.r5.model.ImplementationGuide.ImplementationGuideManifestComponent convertImplementationGuideManifestComponent(org.hl7.fhir.r4b.model.ImplementationGuide.ImplementationGuideManifestComponent src) throws FHIRException {
540    if (src == null)
541      return null;
542    org.hl7.fhir.r5.model.ImplementationGuide.ImplementationGuideManifestComponent tgt = new org.hl7.fhir.r5.model.ImplementationGuide.ImplementationGuideManifestComponent();
543    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
544    if (src.hasRendering())
545      tgt.setRenderingElement(Url43_50.convertUrl(src.getRenderingElement()));
546    for (org.hl7.fhir.r4b.model.ImplementationGuide.ManifestResourceComponent t : src.getResource())
547      tgt.addResource(convertManifestResourceComponent(t));
548    for (org.hl7.fhir.r4b.model.ImplementationGuide.ManifestPageComponent t : src.getPage())
549      tgt.addPage(convertManifestPageComponent(t));
550    for (org.hl7.fhir.r4b.model.StringType t : src.getImage()) tgt.getImage().add(String43_50.convertString(t));
551    for (org.hl7.fhir.r4b.model.StringType t : src.getOther()) tgt.getOther().add(String43_50.convertString(t));
552    return tgt;
553  }
554
555  public static org.hl7.fhir.r4b.model.ImplementationGuide.ImplementationGuideManifestComponent convertImplementationGuideManifestComponent(org.hl7.fhir.r5.model.ImplementationGuide.ImplementationGuideManifestComponent src) throws FHIRException {
556    if (src == null)
557      return null;
558    org.hl7.fhir.r4b.model.ImplementationGuide.ImplementationGuideManifestComponent tgt = new org.hl7.fhir.r4b.model.ImplementationGuide.ImplementationGuideManifestComponent();
559    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
560    if (src.hasRendering())
561      tgt.setRenderingElement(Url43_50.convertUrl(src.getRenderingElement()));
562    for (org.hl7.fhir.r5.model.ImplementationGuide.ManifestResourceComponent t : src.getResource())
563      tgt.addResource(convertManifestResourceComponent(t));
564    for (org.hl7.fhir.r5.model.ImplementationGuide.ManifestPageComponent t : src.getPage())
565      tgt.addPage(convertManifestPageComponent(t));
566    for (org.hl7.fhir.r5.model.StringType t : src.getImage()) tgt.getImage().add(String43_50.convertString(t));
567    for (org.hl7.fhir.r5.model.StringType t : src.getOther()) tgt.getOther().add(String43_50.convertString(t));
568    return tgt;
569  }
570
571  public static org.hl7.fhir.r5.model.ImplementationGuide.ManifestResourceComponent convertManifestResourceComponent(org.hl7.fhir.r4b.model.ImplementationGuide.ManifestResourceComponent src) throws FHIRException {
572    if (src == null)
573      return null;
574    org.hl7.fhir.r5.model.ImplementationGuide.ManifestResourceComponent tgt = new org.hl7.fhir.r5.model.ImplementationGuide.ManifestResourceComponent();
575    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
576    if (src.hasReference())
577      tgt.setReference(Reference43_50.convertReference(src.getReference()));
578    if (src.hasExampleBooleanType())
579      tgt.setIsExampleElement(Boolean43_50.convertBoolean(src.getExampleBooleanType()));
580    if (src.hasExampleCanonicalType())
581      tgt.getProfile().add((Canonical43_50.convertCanonical(src.getExampleCanonicalType())));
582    if (src.hasRelativePath())
583      tgt.setRelativePathElement(Url43_50.convertUrl(src.getRelativePathElement()));
584    return tgt;
585  }
586
587  public static org.hl7.fhir.r4b.model.ImplementationGuide.ManifestResourceComponent convertManifestResourceComponent(org.hl7.fhir.r5.model.ImplementationGuide.ManifestResourceComponent src) throws FHIRException {
588    if (src == null)
589      return null;
590    org.hl7.fhir.r4b.model.ImplementationGuide.ManifestResourceComponent tgt = new org.hl7.fhir.r4b.model.ImplementationGuide.ManifestResourceComponent();
591    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
592    if (src.hasReference())
593      tgt.setReference(Reference43_50.convertReference(src.getReference()));
594    if (src.hasIsExample())
595      tgt.setExample(Boolean43_50.convertBoolean(src.getIsExampleElement()));
596    if (src.hasProfile())
597      tgt.setExample(Canonical43_50.convertCanonical(src.getProfile().get(0)));
598    if (src.hasRelativePath())
599      tgt.setRelativePathElement(Url43_50.convertUrl(src.getRelativePathElement()));
600    return tgt;
601  }
602
603  public static org.hl7.fhir.r5.model.ImplementationGuide.ManifestPageComponent convertManifestPageComponent(org.hl7.fhir.r4b.model.ImplementationGuide.ManifestPageComponent src) throws FHIRException {
604    if (src == null)
605      return null;
606    org.hl7.fhir.r5.model.ImplementationGuide.ManifestPageComponent tgt = new org.hl7.fhir.r5.model.ImplementationGuide.ManifestPageComponent();
607    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
608    if (src.hasName())
609      tgt.setNameElement(String43_50.convertString(src.getNameElement()));
610    if (src.hasTitle())
611      tgt.setTitleElement(String43_50.convertString(src.getTitleElement()));
612    for (org.hl7.fhir.r4b.model.StringType t : src.getAnchor()) tgt.getAnchor().add(String43_50.convertString(t));
613    return tgt;
614  }
615
616  public static org.hl7.fhir.r4b.model.ImplementationGuide.ManifestPageComponent convertManifestPageComponent(org.hl7.fhir.r5.model.ImplementationGuide.ManifestPageComponent src) throws FHIRException {
617    if (src == null)
618      return null;
619    org.hl7.fhir.r4b.model.ImplementationGuide.ManifestPageComponent tgt = new org.hl7.fhir.r4b.model.ImplementationGuide.ManifestPageComponent();
620    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
621    if (src.hasName())
622      tgt.setNameElement(String43_50.convertString(src.getNameElement()));
623    if (src.hasTitle())
624      tgt.setTitleElement(String43_50.convertString(src.getTitleElement()));
625    for (org.hl7.fhir.r5.model.StringType t : src.getAnchor()) tgt.getAnchor().add(String43_50.convertString(t));
626    return tgt;
627  }
628}