001package org.hl7.fhir.convertors.conv40_50.datatypes40_50.metadata40_50;
002
003import org.hl7.fhir.convertors.context.ConversionContext40_50;
004import org.hl7.fhir.convertors.conv40_50.datatypes40_50.Utilities40_50;
005import org.hl7.fhir.convertors.conv40_50.datatypes40_50.general40_50.Coding40_50;
006import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.Canonical40_50;
007import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.PositiveInt40_50;
008import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.String40_50;
009import org.hl7.fhir.exceptions.FHIRException;
010import org.hl7.fhir.r5.model.DataRequirement;
011
012public class DataRequirement40_50 {
013  public static org.hl7.fhir.r5.model.DataRequirement convertDataRequirement(org.hl7.fhir.r4.model.DataRequirement src) throws FHIRException {
014    if (src == null) return null;
015    org.hl7.fhir.r5.model.DataRequirement tgt = new org.hl7.fhir.r5.model.DataRequirement();
016    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
017    if (src.hasType()) {
018      Utilities40_50.convertType(src.getTypeElement(), tgt.getTypeElement());   
019    }
020    for (org.hl7.fhir.r4.model.CanonicalType t : src.getProfile())
021      tgt.getProfile().add(Canonical40_50.convertCanonical(t));
022    if (src.hasSubject())
023      tgt.setSubject(ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().convertType(src.getSubject()));
024    for (org.hl7.fhir.r4.model.StringType t : src.getMustSupport())
025      tgt.getMustSupport().add(String40_50.convertString(t));
026    for (org.hl7.fhir.r4.model.DataRequirement.DataRequirementCodeFilterComponent t : src.getCodeFilter())
027      tgt.addCodeFilter(convertDataRequirementCodeFilterComponent(t));
028    for (org.hl7.fhir.r4.model.DataRequirement.DataRequirementDateFilterComponent t : src.getDateFilter())
029      tgt.addDateFilter(convertDataRequirementDateFilterComponent(t));
030    if (src.hasLimit()) tgt.setLimitElement(PositiveInt40_50.convertPositiveInt(src.getLimitElement()));
031    for (org.hl7.fhir.r4.model.DataRequirement.DataRequirementSortComponent t : src.getSort())
032      tgt.addSort(convertDataRequirementSortComponent(t));
033    return tgt;
034  }
035
036  public static org.hl7.fhir.r4.model.DataRequirement convertDataRequirement(org.hl7.fhir.r5.model.DataRequirement src) throws FHIRException {
037    if (src == null) return null;
038    org.hl7.fhir.r4.model.DataRequirement tgt = new org.hl7.fhir.r4.model.DataRequirement();
039    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
040    if (src.hasType()) {
041      Utilities40_50.convertType(src.getTypeElement(), tgt.getTypeElement());   
042    }
043    for (org.hl7.fhir.r5.model.CanonicalType t : src.getProfile())
044      tgt.getProfile().add(Canonical40_50.convertCanonical(t));
045    if (src.hasSubject())
046      tgt.setSubject(ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().convertType(src.getSubject()));
047    for (org.hl7.fhir.r5.model.StringType t : src.getMustSupport())
048      tgt.getMustSupport().add(String40_50.convertString(t));
049    for (org.hl7.fhir.r5.model.DataRequirement.DataRequirementCodeFilterComponent t : src.getCodeFilter())
050      tgt.addCodeFilter(convertDataRequirementCodeFilterComponent(t));
051    for (org.hl7.fhir.r5.model.DataRequirement.DataRequirementDateFilterComponent t : src.getDateFilter())
052      tgt.addDateFilter(convertDataRequirementDateFilterComponent(t));
053    if (src.hasLimit()) tgt.setLimitElement(PositiveInt40_50.convertPositiveInt(src.getLimitElement()));
054    for (org.hl7.fhir.r5.model.DataRequirement.DataRequirementSortComponent t : src.getSort())
055      tgt.addSort(convertDataRequirementSortComponent(t));
056    return tgt;
057  }
058
059  public static org.hl7.fhir.r5.model.DataRequirement.DataRequirementCodeFilterComponent convertDataRequirementCodeFilterComponent(org.hl7.fhir.r4.model.DataRequirement.DataRequirementCodeFilterComponent src) throws FHIRException {
060    if (src == null) return null;
061    org.hl7.fhir.r5.model.DataRequirement.DataRequirementCodeFilterComponent tgt = new org.hl7.fhir.r5.model.DataRequirement.DataRequirementCodeFilterComponent();
062    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
063    if (src.hasPath()) tgt.setPathElement(String40_50.convertString(src.getPathElement()));
064    if (src.hasSearchParam()) tgt.setSearchParamElement(String40_50.convertString(src.getSearchParamElement()));
065    if (src.hasValueSet()) tgt.setValueSetElement(Canonical40_50.convertCanonical(src.getValueSetElement()));
066    for (org.hl7.fhir.r4.model.Coding t : src.getCode()) tgt.addCode(Coding40_50.convertCoding(t));
067    return tgt;
068  }
069
070  public static org.hl7.fhir.r4.model.DataRequirement.DataRequirementCodeFilterComponent convertDataRequirementCodeFilterComponent(org.hl7.fhir.r5.model.DataRequirement.DataRequirementCodeFilterComponent src) throws FHIRException {
071    if (src == null) return null;
072    org.hl7.fhir.r4.model.DataRequirement.DataRequirementCodeFilterComponent tgt = new org.hl7.fhir.r4.model.DataRequirement.DataRequirementCodeFilterComponent();
073    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
074    if (src.hasPath()) tgt.setPathElement(String40_50.convertString(src.getPathElement()));
075    if (src.hasSearchParam()) tgt.setSearchParamElement(String40_50.convertString(src.getSearchParamElement()));
076    if (src.hasValueSet()) tgt.setValueSetElement(Canonical40_50.convertCanonical(src.getValueSetElement()));
077    for (org.hl7.fhir.r5.model.Coding t : src.getCode()) tgt.addCode(Coding40_50.convertCoding(t));
078    return tgt;
079  }
080
081  public static org.hl7.fhir.r5.model.DataRequirement.DataRequirementDateFilterComponent convertDataRequirementDateFilterComponent(org.hl7.fhir.r4.model.DataRequirement.DataRequirementDateFilterComponent src) throws FHIRException {
082    if (src == null) return null;
083    org.hl7.fhir.r5.model.DataRequirement.DataRequirementDateFilterComponent tgt = new org.hl7.fhir.r5.model.DataRequirement.DataRequirementDateFilterComponent();
084    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
085    if (src.hasPath()) tgt.setPathElement(String40_50.convertString(src.getPathElement()));
086    if (src.hasSearchParam()) tgt.setSearchParamElement(String40_50.convertString(src.getSearchParamElement()));
087    if (src.hasValue())
088      tgt.setValue(ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().convertType(src.getValue()));
089    return tgt;
090  }
091
092  public static org.hl7.fhir.r4.model.DataRequirement.DataRequirementDateFilterComponent convertDataRequirementDateFilterComponent(org.hl7.fhir.r5.model.DataRequirement.DataRequirementDateFilterComponent src) throws FHIRException {
093    if (src == null) return null;
094    org.hl7.fhir.r4.model.DataRequirement.DataRequirementDateFilterComponent tgt = new org.hl7.fhir.r4.model.DataRequirement.DataRequirementDateFilterComponent();
095    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
096    if (src.hasPath()) tgt.setPathElement(String40_50.convertString(src.getPathElement()));
097    if (src.hasSearchParam()) tgt.setSearchParamElement(String40_50.convertString(src.getSearchParamElement()));
098    if (src.hasValue())
099      tgt.setValue(ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().convertType(src.getValue()));
100    return tgt;
101  }
102
103  public static org.hl7.fhir.r5.model.DataRequirement.DataRequirementSortComponent convertDataRequirementSortComponent(org.hl7.fhir.r4.model.DataRequirement.DataRequirementSortComponent src) throws FHIRException {
104    if (src == null) return null;
105    org.hl7.fhir.r5.model.DataRequirement.DataRequirementSortComponent tgt = new org.hl7.fhir.r5.model.DataRequirement.DataRequirementSortComponent();
106    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
107    if (src.hasPath()) tgt.setPathElement(String40_50.convertString(src.getPathElement()));
108    if (src.hasDirection()) tgt.setDirectionElement(convertSortDirection(src.getDirectionElement()));
109    return tgt;
110  }
111
112  public static org.hl7.fhir.r4.model.DataRequirement.DataRequirementSortComponent convertDataRequirementSortComponent(org.hl7.fhir.r5.model.DataRequirement.DataRequirementSortComponent src) throws FHIRException {
113    if (src == null) return null;
114    org.hl7.fhir.r4.model.DataRequirement.DataRequirementSortComponent tgt = new org.hl7.fhir.r4.model.DataRequirement.DataRequirementSortComponent();
115    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
116    if (src.hasPath()) tgt.setPathElement(String40_50.convertString(src.getPathElement()));
117    if (src.hasDirection()) tgt.setDirectionElement(convertSortDirection(src.getDirectionElement()));
118    return tgt;
119  }
120
121  static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.DataRequirement.SortDirection> convertSortDirection(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.DataRequirement.SortDirection> src) throws FHIRException {
122    if (src == null || src.isEmpty()) return null;
123    org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.DataRequirement.SortDirection> tgt = new org.hl7.fhir.r5.model.Enumeration<>(new org.hl7.fhir.r5.model.DataRequirement.SortDirectionEnumFactory());
124    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
125    if (src.getValue() == null) {
126    tgt.setValue(null);
127} else {
128      switch(src.getValue()) {
129        case ASCENDING:
130                    tgt.setValue(DataRequirement.SortDirection.ASCENDING);
131                    break;
132                case DESCENDING:
133                    tgt.setValue(DataRequirement.SortDirection.DESCENDING);
134                    break;
135                default:
136                    tgt.setValue(DataRequirement.SortDirection.NULL);
137                    break;
138       }
139}
140    return tgt;
141  }
142
143  static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.DataRequirement.SortDirection> convertSortDirection(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.DataRequirement.SortDirection> src) throws FHIRException {
144    if (src == null || src.isEmpty()) return null;
145    org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.DataRequirement.SortDirection> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.DataRequirement.SortDirectionEnumFactory());
146    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
147    if (src.getValue() == null) {
148    tgt.setValue(null);
149} else {
150      switch(src.getValue()) {
151        case ASCENDING:
152                    tgt.setValue(org.hl7.fhir.r4.model.DataRequirement.SortDirection.ASCENDING);
153                    break;
154                case DESCENDING:
155                    tgt.setValue(org.hl7.fhir.r4.model.DataRequirement.SortDirection.DESCENDING);
156                    break;
157                default:
158                    tgt.setValue(org.hl7.fhir.r4.model.DataRequirement.SortDirection.NULL);
159                    break;
160       }
161}
162    return tgt;
163  }
164}