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