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