001package org.hl7.fhir.convertors.conv30_50.datatypes30_50;
002
003import org.hl7.fhir.convertors.context.ConversionContext30_50;
004import org.hl7.fhir.convertors.conv30_50.datatypes30_50.primitivetypes30_50.Code30_50;
005import org.hl7.fhir.convertors.conv30_50.datatypes30_50.primitivetypes30_50.Integer30_50;
006import org.hl7.fhir.convertors.conv30_50.datatypes30_50.primitivetypes30_50.String30_50;
007import org.hl7.fhir.dstu3.model.ParameterDefinition;
008import org.hl7.fhir.exceptions.FHIRException;
009import org.hl7.fhir.r5.model.Enumerations;
010
011public class ParameterDefinition30_50 {
012  public static org.hl7.fhir.r5.model.ParameterDefinition convertParameterDefinition(org.hl7.fhir.dstu3.model.ParameterDefinition src) throws FHIRException {
013    if (src == null) return null;
014    org.hl7.fhir.r5.model.ParameterDefinition tgt = new org.hl7.fhir.r5.model.ParameterDefinition();
015    ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt);
016    if (src.hasName()) tgt.setNameElement(Code30_50.convertCode(src.getNameElement()));
017    if (src.hasUse()) tgt.setUseElement(convertParameterUse(src.getUseElement()));
018    if (src.hasMin()) tgt.setMinElement(Integer30_50.convertInteger(src.getMinElement()));
019    if (src.hasMax()) tgt.setMaxElement(String30_50.convertString(src.getMaxElement()));
020    if (src.hasDocumentation()) tgt.setDocumentationElement(String30_50.convertString(src.getDocumentationElement()));
021    if (src.hasType()) tgt.setType(org.hl7.fhir.r5.model.Enumerations.FHIRTypes.fromCode(src.getType()));
022    if (src.hasProfile()) {
023      tgt.setProfile(Reference30_50.convertReference(src.getProfile()).getReference());
024    }
025    return tgt;
026  }
027
028  public static org.hl7.fhir.dstu3.model.ParameterDefinition convertParameterDefinition(org.hl7.fhir.r5.model.ParameterDefinition src) throws FHIRException {
029    if (src == null) return null;
030    org.hl7.fhir.dstu3.model.ParameterDefinition tgt = new org.hl7.fhir.dstu3.model.ParameterDefinition();
031    ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt);
032    if (src.hasName()) tgt.setNameElement(Code30_50.convertCode(src.getNameElement()));
033    if (src.hasUse()) tgt.setUseElement(convertParameterUse(src.getUseElement()));
034    if (src.hasMin()) tgt.setMinElement(Integer30_50.convertInteger(src.getMinElement()));
035    if (src.hasMax()) tgt.setMaxElement(String30_50.convertString(src.getMaxElement()));
036    if (src.hasDocumentation()) tgt.setDocumentationElement(String30_50.convertString(src.getDocumentationElement()));
037    if (src.hasType()) tgt.setType(src.getType().toCode());
038    if (src.hasProfile()) tgt.setProfile(new org.hl7.fhir.dstu3.model.Reference(src.getProfile()));
039    return tgt;
040  }
041
042  static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Enumerations.OperationParameterUse> convertParameterUse(org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.ParameterDefinition.ParameterUse> src) throws FHIRException {
043    if (src == null || src.isEmpty()) return null;
044    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());
045    ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt);
046    if (src.getValue() == null) {
047    tgt.setValue(null);
048} else {
049      switch(src.getValue()) {
050        case IN:
051                    tgt.setValue(Enumerations.OperationParameterUse.IN);
052                    break;
053                case OUT:
054                    tgt.setValue(Enumerations.OperationParameterUse.OUT);
055                    break;
056                default:
057                    tgt.setValue(Enumerations.OperationParameterUse.NULL);
058                    break;
059       }
060}
061    return tgt;
062  }
063
064  static public org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.ParameterDefinition.ParameterUse> convertParameterUse(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Enumerations.OperationParameterUse> src) throws FHIRException {
065    if (src == null || src.isEmpty()) return null;
066    org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.ParameterDefinition.ParameterUse> tgt = new org.hl7.fhir.dstu3.model.Enumeration<>(new org.hl7.fhir.dstu3.model.ParameterDefinition.ParameterUseEnumFactory());
067    ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt);
068    if (src.getValue() == null) {
069    tgt.setValue(null);
070} else {
071      switch(src.getValue()) {
072        case IN:
073                    tgt.setValue(ParameterDefinition.ParameterUse.IN);
074                    break;
075                case OUT:
076                    tgt.setValue(ParameterDefinition.ParameterUse.OUT);
077                    break;
078                default:
079                    tgt.setValue(ParameterDefinition.ParameterUse.NULL);
080                    break;
081       }
082}
083    return tgt;
084  }
085}