001package org.hl7.fhir.convertors.conv43_50.datatypes43_50.general43_50;
002
003import org.hl7.fhir.convertors.context.ConversionContext43_50;
004import org.hl7.fhir.convertors.conv43_50.datatypes43_50.primitive43_50.String43_50;
005import org.hl7.fhir.exceptions.FHIRException;
006import org.hl7.fhir.r5.model.Address;
007
008public class Address43_50 {
009  public static org.hl7.fhir.r5.model.Address convertAddress(org.hl7.fhir.r4b.model.Address src) throws FHIRException {
010    if (src == null) return null;
011    org.hl7.fhir.r5.model.Address tgt = new org.hl7.fhir.r5.model.Address();
012    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyElement(src, tgt);
013    if (src.hasUse()) tgt.setUseElement(convertAddressUse(src.getUseElement()));
014    if (src.hasType()) tgt.setTypeElement(convertAddressType(src.getTypeElement()));
015    if (src.hasText()) tgt.setTextElement(String43_50.convertString(src.getTextElement()));
016    for (org.hl7.fhir.r4b.model.StringType t : src.getLine()) tgt.getLine().add(String43_50.convertString(t));
017    if (src.hasCity()) tgt.setCityElement(String43_50.convertString(src.getCityElement()));
018    if (src.hasDistrict()) tgt.setDistrictElement(String43_50.convertString(src.getDistrictElement()));
019    if (src.hasState()) tgt.setStateElement(String43_50.convertString(src.getStateElement()));
020    if (src.hasPostalCode()) tgt.setPostalCodeElement(String43_50.convertString(src.getPostalCodeElement()));
021    if (src.hasCountry()) tgt.setCountryElement(String43_50.convertString(src.getCountryElement()));
022    if (src.hasPeriod()) tgt.setPeriod(Period43_50.convertPeriod(src.getPeriod()));
023    return tgt;
024  }
025
026  public static org.hl7.fhir.r4b.model.Address convertAddress(org.hl7.fhir.r5.model.Address src) throws FHIRException {
027    if (src == null) return null;
028    org.hl7.fhir.r4b.model.Address tgt = new org.hl7.fhir.r4b.model.Address();
029    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyElement(src, tgt);
030    if (src.hasUse()) tgt.setUseElement(convertAddressUse(src.getUseElement()));
031    if (src.hasType()) tgt.setTypeElement(convertAddressType(src.getTypeElement()));
032    if (src.hasText()) tgt.setTextElement(String43_50.convertString(src.getTextElement()));
033    for (org.hl7.fhir.r5.model.StringType t : src.getLine()) tgt.getLine().add(String43_50.convertString(t));
034    if (src.hasCity()) tgt.setCityElement(String43_50.convertString(src.getCityElement()));
035    if (src.hasDistrict()) tgt.setDistrictElement(String43_50.convertString(src.getDistrictElement()));
036    if (src.hasState()) tgt.setStateElement(String43_50.convertString(src.getStateElement()));
037    if (src.hasPostalCode()) tgt.setPostalCodeElement(String43_50.convertString(src.getPostalCodeElement()));
038    if (src.hasCountry()) tgt.setCountryElement(String43_50.convertString(src.getCountryElement()));
039    if (src.hasPeriod()) tgt.setPeriod(Period43_50.convertPeriod(src.getPeriod()));
040    return tgt;
041  }
042
043  static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Address.AddressUse> convertAddressUse(org.hl7.fhir.r4b.model.Enumeration<org.hl7.fhir.r4b.model.Address.AddressUse> src) throws FHIRException {
044    if (src == null || src.isEmpty()) return null;
045    org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Address.AddressUse> tgt = new org.hl7.fhir.r5.model.Enumeration<>(new org.hl7.fhir.r5.model.Address.AddressUseEnumFactory());
046    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyElement(src, tgt);
047    if (src.getValue() == null) {
048    tgt.setValue(null);
049} else {
050      switch(src.getValue()) {
051        case HOME:
052            tgt.setValue(Address.AddressUse.HOME);
053            break;
054          case WORK:
055            tgt.setValue(Address.AddressUse.WORK);
056            break;
057          case TEMP:
058            tgt.setValue(Address.AddressUse.TEMP);
059            break;
060          case OLD:
061            tgt.setValue(Address.AddressUse.OLD);
062            break;
063          case BILLING:
064            tgt.setValue(Address.AddressUse.BILLING);
065            break;
066          default:
067            tgt.setValue(Address.AddressUse.NULL);
068            break;
069       }
070}
071    return tgt;
072  }
073
074  static public org.hl7.fhir.r4b.model.Enumeration<org.hl7.fhir.r4b.model.Address.AddressUse> convertAddressUse(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Address.AddressUse> src) throws FHIRException {
075    if (src == null || src.isEmpty()) return null;
076    org.hl7.fhir.r4b.model.Enumeration<org.hl7.fhir.r4b.model.Address.AddressUse> tgt = new org.hl7.fhir.r4b.model.Enumeration<>(new org.hl7.fhir.r4b.model.Address.AddressUseEnumFactory());
077    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyElement(src, tgt);
078    if (src.getValue() == null) {
079    tgt.setValue(null);
080} else {
081      switch(src.getValue()) {
082        case HOME:
083            tgt.setValue(org.hl7.fhir.r4b.model.Address.AddressUse.HOME);
084            break;
085          case WORK:
086            tgt.setValue(org.hl7.fhir.r4b.model.Address.AddressUse.WORK);
087            break;
088          case TEMP:
089            tgt.setValue(org.hl7.fhir.r4b.model.Address.AddressUse.TEMP);
090            break;
091          case OLD:
092            tgt.setValue(org.hl7.fhir.r4b.model.Address.AddressUse.OLD);
093            break;
094          case BILLING:
095            tgt.setValue(org.hl7.fhir.r4b.model.Address.AddressUse.BILLING);
096            break;
097          default:
098            tgt.setValue(org.hl7.fhir.r4b.model.Address.AddressUse.NULL);
099            break;
100       }
101}
102    return tgt;
103  }
104
105  static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Address.AddressType> convertAddressType(org.hl7.fhir.r4b.model.Enumeration<org.hl7.fhir.r4b.model.Address.AddressType> src) throws FHIRException {
106    if (src == null || src.isEmpty()) return null;
107    org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Address.AddressType> tgt = new org.hl7.fhir.r5.model.Enumeration<>(new org.hl7.fhir.r5.model.Address.AddressTypeEnumFactory());
108    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyElement(src, tgt);
109    if (src.getValue() == null) {
110    tgt.setValue(null);
111} else {
112      switch(src.getValue()) {
113        case POSTAL:
114            tgt.setValue(Address.AddressType.POSTAL);
115            break;
116          case PHYSICAL:
117            tgt.setValue(Address.AddressType.PHYSICAL);
118            break;
119          case BOTH:
120            tgt.setValue(Address.AddressType.BOTH);
121            break;
122          default:
123            tgt.setValue(Address.AddressType.NULL);
124            break;
125       }
126}
127    return tgt;
128  }
129
130  static public org.hl7.fhir.r4b.model.Enumeration<org.hl7.fhir.r4b.model.Address.AddressType> convertAddressType(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Address.AddressType> src) throws FHIRException {
131    if (src == null || src.isEmpty()) return null;
132    org.hl7.fhir.r4b.model.Enumeration<org.hl7.fhir.r4b.model.Address.AddressType> tgt = new org.hl7.fhir.r4b.model.Enumeration<>(new org.hl7.fhir.r4b.model.Address.AddressTypeEnumFactory());
133    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyElement(src, tgt);
134    if (src.getValue() == null) {
135    tgt.setValue(null);
136} else {
137      switch(src.getValue()) {
138        case POSTAL:
139            tgt.setValue(org.hl7.fhir.r4b.model.Address.AddressType.POSTAL);
140            break;
141          case PHYSICAL:
142            tgt.setValue(org.hl7.fhir.r4b.model.Address.AddressType.PHYSICAL);
143            break;
144          case BOTH:
145            tgt.setValue(org.hl7.fhir.r4b.model.Address.AddressType.BOTH);
146            break;
147          default:
148            tgt.setValue(org.hl7.fhir.r4b.model.Address.AddressType.NULL);
149            break;
150       }
151}
152    return tgt;
153  }
154}