001package org.hl7.fhir.convertors.conv43_50.datatypes43_50.metadata43_50;
002
003import org.hl7.fhir.convertors.context.ConversionContext43_50;
004import org.hl7.fhir.convertors.conv43_50.Utilities43_50;
005import org.hl7.fhir.convertors.conv43_50.datatypes43_50.primitive43_50.Canonical43_50;
006import org.hl7.fhir.convertors.conv43_50.datatypes43_50.primitive43_50.Code43_50;
007import org.hl7.fhir.convertors.conv43_50.datatypes43_50.primitive43_50.Integer43_50;
008import org.hl7.fhir.convertors.conv43_50.datatypes43_50.primitive43_50.String43_50;
009import org.hl7.fhir.exceptions.FHIRException;
010import org.hl7.fhir.r5.model.Enumerations;
011
012public class ParameterDefinition43_50 {
013  public static org.hl7.fhir.r5.model.ParameterDefinition convertParameterDefinition(org.hl7.fhir.r4b.model.ParameterDefinition src) throws FHIRException {
014    if (src == null) return null;
015    org.hl7.fhir.r5.model.ParameterDefinition tgt = new org.hl7.fhir.r5.model.ParameterDefinition();
016    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyElement(src, tgt);
017    if (src.hasName()) tgt.setNameElement(Code43_50.convertCode(src.getNameElement()));
018    if (src.hasUse()) tgt.setUseElement(convertParameterUse(src.getUseElement()));
019    if (src.hasMin()) tgt.setMinElement(Integer43_50.convertInteger(src.getMinElement()));
020    if (src.hasMax()) tgt.setMaxElement(String43_50.convertString(src.getMaxElement()));
021    if (src.hasDocumentation()) tgt.setDocumentationElement(String43_50.convertString(src.getDocumentationElement()));
022    if (src.hasType()) {
023      Utilities43_50.convertType(src.getTypeElement(), tgt.getTypeElement());   
024    }
025    if (src.hasProfile()) tgt.setProfileElement(Canonical43_50.convertCanonical(src.getProfileElement()));
026    return tgt;
027  }
028
029  public static org.hl7.fhir.r4b.model.ParameterDefinition convertParameterDefinition(org.hl7.fhir.r5.model.ParameterDefinition src) throws FHIRException {
030    if (src == null) return null;
031    org.hl7.fhir.r4b.model.ParameterDefinition tgt = new org.hl7.fhir.r4b.model.ParameterDefinition();
032    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyElement(src, tgt);
033    if (src.hasName()) tgt.setNameElement(Code43_50.convertCode(src.getNameElement()));
034    if (src.hasUse()) tgt.setUseElement(convertParameterUse(src.getUseElement()));
035    if (src.hasMin()) tgt.setMinElement(Integer43_50.convertInteger(src.getMinElement()));
036    if (src.hasMax()) tgt.setMaxElement(String43_50.convertString(src.getMaxElement()));
037    if (src.hasDocumentation()) tgt.setDocumentationElement(String43_50.convertString(src.getDocumentationElement()));
038    if (src.hasType()) {
039      Utilities43_50.convertType(src.getTypeElement(), tgt.getTypeElement());   
040    }
041    if (src.hasProfile()) tgt.setProfileElement(Canonical43_50.convertCanonical(src.getProfileElement()));
042    return tgt;
043  }
044
045  static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Enumerations.OperationParameterUse> convertParameterUse(org.hl7.fhir.r4b.model.Enumeration<org.hl7.fhir.r4b.model.Enumerations.OperationParameterUse> src) throws FHIRException {
046    if (src == null || src.isEmpty()) return null;
047    org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Enumerations.OperationParameterUse> tgt = new org.hl7.fhir.r5.model.Enumeration<>(new org.hl7.fhir.r5.model.Enumerations.OperationParameterUseEnumFactory());
048    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyElement(src, tgt);
049    if (src.getValue() == null) {
050    tgt.setValue(null);
051} else {
052      switch(src.getValue()) {
053        case IN:
054                    tgt.setValue(Enumerations.OperationParameterUse.IN);
055                    break;
056                case OUT:
057                    tgt.setValue(Enumerations.OperationParameterUse.OUT);
058                    break;
059                default:
060                    tgt.setValue(Enumerations.OperationParameterUse.NULL);
061                    break;
062       }
063}
064    return tgt;
065  }
066
067  static public org.hl7.fhir.r4b.model.Enumeration<org.hl7.fhir.r4b.model.Enumerations.OperationParameterUse> convertParameterUse(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Enumerations.OperationParameterUse> src) throws FHIRException {
068    if (src == null || src.isEmpty()) return null;
069    org.hl7.fhir.r4b.model.Enumeration<org.hl7.fhir.r4b.model.Enumerations.OperationParameterUse> tgt = new org.hl7.fhir.r4b.model.Enumeration<>(new org.hl7.fhir.r4b.model.Enumerations.OperationParameterUseEnumFactory());
070    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyElement(src, tgt);
071    if (src.getValue() == null) {
072    tgt.setValue(null);
073} else {
074      switch(src.getValue()) {
075        case IN:
076                    tgt.setValue(org.hl7.fhir.r4b.model.Enumerations.OperationParameterUse.IN);
077                    break;
078                case OUT:
079                    tgt.setValue(org.hl7.fhir.r4b.model.Enumerations.OperationParameterUse.OUT);
080                    break;
081                default:
082                    tgt.setValue(org.hl7.fhir.r4b.model.Enumerations.OperationParameterUse.NULL);
083                    break;
084       }
085}
086    return tgt;
087  }
088}