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;
006import org.hl7.fhir.r5.model.Address;
007
008public class Address40_50 {
009  public static org.hl7.fhir.r5.model.Address convertAddress(org.hl7.fhir.r4.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    ConversionContext40_50.INSTANCE.getVersionConvertor_40_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(String40_50.convertString(src.getTextElement()));
016    for (org.hl7.fhir.r4.model.StringType t : src.getLine()) tgt.getLine().add(String40_50.convertString(t));
017    if (src.hasCity()) tgt.setCityElement(String40_50.convertString(src.getCityElement()));
018    if (src.hasDistrict()) tgt.setDistrictElement(String40_50.convertString(src.getDistrictElement()));
019    if (src.hasState()) tgt.setStateElement(String40_50.convertString(src.getStateElement()));
020    if (src.hasPostalCode()) tgt.setPostalCodeElement(String40_50.convertString(src.getPostalCodeElement()));
021    if (src.hasCountry()) tgt.setCountryElement(String40_50.convertString(src.getCountryElement()));
022    if (src.hasPeriod()) tgt.setPeriod(Period40_50.convertPeriod(src.getPeriod()));
023    return tgt;
024  }
025
026  public static org.hl7.fhir.r4.model.Address convertAddress(org.hl7.fhir.r5.model.Address src) throws FHIRException {
027    if (src == null) return null;
028    org.hl7.fhir.r4.model.Address tgt = new org.hl7.fhir.r4.model.Address();
029    ConversionContext40_50.INSTANCE.getVersionConvertor_40_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(String40_50.convertString(src.getTextElement()));
033    for (org.hl7.fhir.r5.model.StringType t : src.getLine()) tgt.getLine().add(String40_50.convertString(t));
034    if (src.hasCity()) tgt.setCityElement(String40_50.convertString(src.getCityElement()));
035    if (src.hasDistrict()) tgt.setDistrictElement(String40_50.convertString(src.getDistrictElement()));
036    if (src.hasState()) tgt.setStateElement(String40_50.convertString(src.getStateElement()));
037    if (src.hasPostalCode()) tgt.setPostalCodeElement(String40_50.convertString(src.getPostalCodeElement()));
038    if (src.hasCountry()) tgt.setCountryElement(String40_50.convertString(src.getCountryElement()));
039    if (src.hasPeriod()) tgt.setPeriod(Period40_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.r4.model.Enumeration<org.hl7.fhir.r4.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    ConversionContext40_50.INSTANCE.getVersionConvertor_40_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.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 {
075    if (src == null || src.isEmpty()) return null;
076    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());
077    ConversionContext40_50.INSTANCE.getVersionConvertor_40_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.r4.model.Address.AddressUse.HOME);
084                    break;
085                case WORK:
086                    tgt.setValue(org.hl7.fhir.r4.model.Address.AddressUse.WORK);
087                    break;
088                case TEMP:
089                    tgt.setValue(org.hl7.fhir.r4.model.Address.AddressUse.TEMP);
090                    break;
091                case OLD:
092                    tgt.setValue(org.hl7.fhir.r4.model.Address.AddressUse.OLD);
093                    break;
094                case BILLING:
095                    tgt.setValue(org.hl7.fhir.r4.model.Address.AddressUse.BILLING);
096                    break;
097                default:
098                    tgt.setValue(org.hl7.fhir.r4.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.r4.model.Enumeration<org.hl7.fhir.r4.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    ConversionContext40_50.INSTANCE.getVersionConvertor_40_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.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 {
131    if (src == null || src.isEmpty()) return null;
132    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());
133    ConversionContext40_50.INSTANCE.getVersionConvertor_40_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.r4.model.Address.AddressType.POSTAL);
140                    break;
141                case PHYSICAL:
142                    tgt.setValue(org.hl7.fhir.r4.model.Address.AddressType.PHYSICAL);
143                    break;
144                case BOTH:
145                    tgt.setValue(org.hl7.fhir.r4.model.Address.AddressType.BOTH);
146                    break;
147                default:
148                    tgt.setValue(org.hl7.fhir.r4.model.Address.AddressType.NULL);
149                    break;
150       }
151}
152    return tgt;
153  }
154}