001package org.hl7.fhir.convertors.conv10_40.datatypes10_40;
002
003import org.hl7.fhir.convertors.context.ConversionContext10_40;
004import org.hl7.fhir.convertors.conv10_40.VersionConvertor_10_40;
005import org.hl7.fhir.convertors.conv10_40.datatypes10_40.primitivetypes10_40.Canonical10_40;
006import org.hl7.fhir.convertors.conv10_40.datatypes10_40.primitivetypes10_40.Uri10_40;
007import org.hl7.fhir.dstu2.model.Reference;
008import org.hl7.fhir.exceptions.FHIRException;
009import org.hl7.fhir.r4.model.CanonicalType;
010
011public class Extension10_40 {
012  public static org.hl7.fhir.r4.model.Extension convertExtension(org.hl7.fhir.dstu2.model.Extension src) throws FHIRException {
013    if (src == null || src.isEmpty()) return null;
014    org.hl7.fhir.r4.model.Extension tgt = new org.hl7.fhir.r4.model.Extension();
015    ConversionContext10_40.INSTANCE.getVersionConvertor_10_40().copyElement(src, tgt);
016    if (src.hasUrlElement()) tgt.setUrlElement(Uri10_40.convertUri(src.getUrlElement()));
017    if (src.hasValue())
018      if (VersionConvertor_10_40.CANONICAL_URLS.contains(src.getUrl()) && src.getValue() instanceof org.hl7.fhir.dstu2.model.Reference)
019        tgt.setValue(Canonical10_40.convertReferenceToCanonical((Reference) src.getValue()));
020      else tgt.setValue(ConversionContext10_40.INSTANCE.getVersionConvertor_10_40().convertType(src.getValue()));
021    return tgt;
022  }
023
024  public static org.hl7.fhir.dstu2.model.Extension convertExtension(org.hl7.fhir.r4.model.Extension src) throws FHIRException {
025    if (src == null || src.isEmpty()) return null;
026    org.hl7.fhir.dstu2.model.Extension tgt = new org.hl7.fhir.dstu2.model.Extension();
027    ConversionContext10_40.INSTANCE.getVersionConvertor_10_40().copyElement(src, tgt);
028    if (src.hasUrlElement()) tgt.setUrlElement(Uri10_40.convertUri(src.getUrlElement()));
029    if (src.hasValue())
030      if (VersionConvertor_10_40.CANONICAL_URLS.contains(src.getUrl()) && src.getValue() instanceof org.hl7.fhir.r4.model.CanonicalType)
031        tgt.setValue(Canonical10_40.convertCanonicalToReference((CanonicalType) src.getValue()));
032      else if (src.hasValue())
033        tgt.setValue(ConversionContext10_40.INSTANCE.getVersionConvertor_10_40().convertType(src.getValue()));
034    if (src.hasValue())
035      tgt.setValue(ConversionContext10_40.INSTANCE.getVersionConvertor_10_40().convertType(src.getValue()));
036    return tgt;
037  }
038}