001package org.hl7.fhir.convertors.conv14_40.resources14_40;
002
003import org.hl7.fhir.convertors.context.ConversionContext14_40;
004import org.hl7.fhir.convertors.conv14_40.VersionConvertor_14_40;
005import org.hl7.fhir.convertors.conv14_40.datatypes14_40.complextypes14_40.CodeableConcept14_40;
006import org.hl7.fhir.convertors.conv14_40.datatypes14_40.complextypes14_40.ContactPoint14_40;
007import org.hl7.fhir.convertors.conv14_40.datatypes14_40.complextypes14_40.Period14_40;
008import org.hl7.fhir.convertors.conv14_40.datatypes14_40.primitivetypes14_40.Boolean14_40;
009import org.hl7.fhir.convertors.conv14_40.datatypes14_40.primitivetypes14_40.DateTime14_40;
010import org.hl7.fhir.convertors.conv14_40.datatypes14_40.primitivetypes14_40.String14_40;
011import org.hl7.fhir.dstu2016may.model.Enumeration;
012import org.hl7.fhir.dstu2016may.model.NamingSystem;
013import org.hl7.fhir.exceptions.FHIRException;
014
015public class NamingSystem14_40 {
016
017  public static org.hl7.fhir.r4.model.NamingSystem convertNamingSystem(org.hl7.fhir.dstu2016may.model.NamingSystem src) throws FHIRException {
018    if (src == null || src.isEmpty())
019      return null;
020    org.hl7.fhir.r4.model.NamingSystem tgt = new org.hl7.fhir.r4.model.NamingSystem();
021    ConversionContext14_40.INSTANCE.getVersionConvertor_14_40().copyDomainResource(src, tgt);
022    if (src.hasNameElement())
023      tgt.setNameElement(String14_40.convertString(src.getNameElement()));
024    if (src.hasStatus())
025      tgt.setStatusElement(Enumerations14_40.convertConformanceResourceStatus(src.getStatusElement()));
026    if (src.hasKind())
027      tgt.setKindElement(convertNamingSystemType(src.getKindElement()));
028    if (src.hasDateElement())
029      tgt.setDateElement(DateTime14_40.convertDateTime(src.getDateElement()));
030    if (src.hasPublisher())
031      tgt.setPublisherElement(String14_40.convertString(src.getPublisherElement()));
032    for (org.hl7.fhir.dstu2016may.model.NamingSystem.NamingSystemContactComponent t : src.getContact())
033      tgt.addContact(convertNamingSystemContactComponent(t));
034    if (src.hasResponsible())
035      tgt.setResponsibleElement(String14_40.convertString(src.getResponsibleElement()));
036    if (src.hasType())
037      tgt.setType(CodeableConcept14_40.convertCodeableConcept(src.getType()));
038    if (src.hasDescription())
039      tgt.setDescription(src.getDescription());
040    for (org.hl7.fhir.dstu2016may.model.CodeableConcept t : src.getUseContext())
041      if (VersionConvertor_14_40.isJurisdiction(t))
042        tgt.addJurisdiction(CodeableConcept14_40.convertCodeableConcept(t));
043      else
044        tgt.addUseContext(CodeableConcept14_40.convertCodeableConceptToUsageContext(t));
045    if (src.hasUsage())
046      tgt.setUsageElement(String14_40.convertString(src.getUsageElement()));
047    for (org.hl7.fhir.dstu2016may.model.NamingSystem.NamingSystemUniqueIdComponent t : src.getUniqueId())
048      tgt.addUniqueId(convertNamingSystemUniqueIdComponent(t));
049    return tgt;
050  }
051
052  public static org.hl7.fhir.dstu2016may.model.NamingSystem convertNamingSystem(org.hl7.fhir.r4.model.NamingSystem src) throws FHIRException {
053    if (src == null || src.isEmpty())
054      return null;
055    org.hl7.fhir.dstu2016may.model.NamingSystem tgt = new org.hl7.fhir.dstu2016may.model.NamingSystem();
056    ConversionContext14_40.INSTANCE.getVersionConvertor_14_40().copyDomainResource(src, tgt);
057    if (src.hasNameElement())
058      tgt.setNameElement(String14_40.convertString(src.getNameElement()));
059    if (src.hasStatus())
060      tgt.setStatusElement(Enumerations14_40.convertConformanceResourceStatus(src.getStatusElement()));
061    if (src.hasKind())
062      tgt.setKindElement(convertNamingSystemType(src.getKindElement()));
063    if (src.hasDateElement())
064      tgt.setDateElement(DateTime14_40.convertDateTime(src.getDateElement()));
065    if (src.hasPublisher())
066      tgt.setPublisherElement(String14_40.convertString(src.getPublisherElement()));
067    for (org.hl7.fhir.r4.model.ContactDetail t : src.getContact())
068      tgt.addContact(convertNamingSystemContactComponent(t));
069    if (src.hasResponsible())
070      tgt.setResponsibleElement(String14_40.convertString(src.getResponsibleElement()));
071    if (src.hasType())
072      tgt.setType(CodeableConcept14_40.convertCodeableConcept(src.getType()));
073    if (src.hasDescription())
074      tgt.setDescription(src.getDescription());
075    for (org.hl7.fhir.r4.model.UsageContext t : src.getUseContext())
076      if (t.hasValueCodeableConcept())
077        tgt.addUseContext(CodeableConcept14_40.convertCodeableConcept(t.getValueCodeableConcept()));
078    for (org.hl7.fhir.r4.model.CodeableConcept t : src.getJurisdiction())
079      tgt.addUseContext(CodeableConcept14_40.convertCodeableConcept(t));
080    if (src.hasUsage())
081      tgt.setUsageElement(String14_40.convertString(src.getUsageElement()));
082    for (org.hl7.fhir.r4.model.NamingSystem.NamingSystemUniqueIdComponent t : src.getUniqueId())
083      tgt.addUniqueId(convertNamingSystemUniqueIdComponent(t));
084    return tgt;
085  }
086
087  public static org.hl7.fhir.dstu2016may.model.NamingSystem.NamingSystemContactComponent convertNamingSystemContactComponent(org.hl7.fhir.r4.model.ContactDetail src) throws FHIRException {
088    if (src == null || src.isEmpty())
089      return null;
090    org.hl7.fhir.dstu2016may.model.NamingSystem.NamingSystemContactComponent tgt = new org.hl7.fhir.dstu2016may.model.NamingSystem.NamingSystemContactComponent();
091    ConversionContext14_40.INSTANCE.getVersionConvertor_14_40().copyElement(src, tgt);
092    if (src.hasName())
093      tgt.setNameElement(String14_40.convertString(src.getNameElement()));
094    for (org.hl7.fhir.r4.model.ContactPoint t : src.getTelecom())
095      tgt.addTelecom(ContactPoint14_40.convertContactPoint(t));
096    return tgt;
097  }
098
099  public static org.hl7.fhir.r4.model.ContactDetail convertNamingSystemContactComponent(org.hl7.fhir.dstu2016may.model.NamingSystem.NamingSystemContactComponent src) throws FHIRException {
100    if (src == null || src.isEmpty())
101      return null;
102    org.hl7.fhir.r4.model.ContactDetail tgt = new org.hl7.fhir.r4.model.ContactDetail();
103    ConversionContext14_40.INSTANCE.getVersionConvertor_14_40().copyElement(src, tgt);
104    if (src.hasName())
105      tgt.setNameElement(String14_40.convertString(src.getNameElement()));
106    for (org.hl7.fhir.dstu2016may.model.ContactPoint t : src.getTelecom())
107      tgt.addTelecom(ContactPoint14_40.convertContactPoint(t));
108    return tgt;
109  }
110
111  static public org.hl7.fhir.dstu2016may.model.Enumeration<org.hl7.fhir.dstu2016may.model.NamingSystem.NamingSystemIdentifierType> convertNamingSystemIdentifierType(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.NamingSystem.NamingSystemIdentifierType> src) throws FHIRException {
112      if (src == null || src.isEmpty())
113          return null;
114      Enumeration<NamingSystem.NamingSystemIdentifierType> tgt = new Enumeration<>(new NamingSystem.NamingSystemIdentifierTypeEnumFactory());
115      ConversionContext14_40.INSTANCE.getVersionConvertor_14_40().copyElement(src, tgt);
116      if (src.getValue() == null) {
117          tgt.setValue(null);
118      } else {
119          switch (src.getValue()) {
120              case OID:
121                  tgt.setValue(NamingSystem.NamingSystemIdentifierType.OID);
122                  break;
123              case UUID:
124                  tgt.setValue(NamingSystem.NamingSystemIdentifierType.UUID);
125                  break;
126              case URI:
127                  tgt.setValue(NamingSystem.NamingSystemIdentifierType.URI);
128                  break;
129              case OTHER:
130                  tgt.setValue(NamingSystem.NamingSystemIdentifierType.OTHER);
131                  break;
132              default:
133                  tgt.setValue(NamingSystem.NamingSystemIdentifierType.NULL);
134                  break;
135          }
136      }
137      return tgt;
138  }
139
140  static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.NamingSystem.NamingSystemIdentifierType> convertNamingSystemIdentifierType(org.hl7.fhir.dstu2016may.model.Enumeration<org.hl7.fhir.dstu2016may.model.NamingSystem.NamingSystemIdentifierType> src) throws FHIRException {
141      if (src == null || src.isEmpty())
142          return null;
143      org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.NamingSystem.NamingSystemIdentifierType> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.NamingSystem.NamingSystemIdentifierTypeEnumFactory());
144      ConversionContext14_40.INSTANCE.getVersionConvertor_14_40().copyElement(src, tgt);
145      if (src.getValue() == null) {
146          tgt.setValue(null);
147      } else {
148          switch (src.getValue()) {
149              case OID:
150                  tgt.setValue(org.hl7.fhir.r4.model.NamingSystem.NamingSystemIdentifierType.OID);
151                  break;
152              case UUID:
153                  tgt.setValue(org.hl7.fhir.r4.model.NamingSystem.NamingSystemIdentifierType.UUID);
154                  break;
155              case URI:
156                  tgt.setValue(org.hl7.fhir.r4.model.NamingSystem.NamingSystemIdentifierType.URI);
157                  break;
158              case OTHER:
159                  tgt.setValue(org.hl7.fhir.r4.model.NamingSystem.NamingSystemIdentifierType.OTHER);
160                  break;
161              default:
162                  tgt.setValue(org.hl7.fhir.r4.model.NamingSystem.NamingSystemIdentifierType.NULL);
163                  break;
164          }
165      }
166      return tgt;
167  }
168
169  static public org.hl7.fhir.dstu2016may.model.Enumeration<org.hl7.fhir.dstu2016may.model.NamingSystem.NamingSystemType> convertNamingSystemType(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.NamingSystem.NamingSystemType> src) throws FHIRException {
170      if (src == null || src.isEmpty())
171          return null;
172      Enumeration<NamingSystem.NamingSystemType> tgt = new Enumeration<>(new NamingSystem.NamingSystemTypeEnumFactory());
173      ConversionContext14_40.INSTANCE.getVersionConvertor_14_40().copyElement(src, tgt);
174      if (src.getValue() == null) {
175          tgt.setValue(null);
176      } else {
177          switch (src.getValue()) {
178              case CODESYSTEM:
179                  tgt.setValue(NamingSystem.NamingSystemType.CODESYSTEM);
180                  break;
181              case IDENTIFIER:
182                  tgt.setValue(NamingSystem.NamingSystemType.IDENTIFIER);
183                  break;
184              case ROOT:
185                  tgt.setValue(NamingSystem.NamingSystemType.ROOT);
186                  break;
187              default:
188                  tgt.setValue(NamingSystem.NamingSystemType.NULL);
189                  break;
190          }
191      }
192      return tgt;
193  }
194
195  static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.NamingSystem.NamingSystemType> convertNamingSystemType(org.hl7.fhir.dstu2016may.model.Enumeration<org.hl7.fhir.dstu2016may.model.NamingSystem.NamingSystemType> src) throws FHIRException {
196      if (src == null || src.isEmpty())
197          return null;
198      org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.NamingSystem.NamingSystemType> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.NamingSystem.NamingSystemTypeEnumFactory());
199      ConversionContext14_40.INSTANCE.getVersionConvertor_14_40().copyElement(src, tgt);
200      if (src.getValue() == null) {
201          tgt.setValue(null);
202      } else {
203          switch (src.getValue()) {
204              case CODESYSTEM:
205                  tgt.setValue(org.hl7.fhir.r4.model.NamingSystem.NamingSystemType.CODESYSTEM);
206                  break;
207              case IDENTIFIER:
208                  tgt.setValue(org.hl7.fhir.r4.model.NamingSystem.NamingSystemType.IDENTIFIER);
209                  break;
210              case ROOT:
211                  tgt.setValue(org.hl7.fhir.r4.model.NamingSystem.NamingSystemType.ROOT);
212                  break;
213              default:
214                  tgt.setValue(org.hl7.fhir.r4.model.NamingSystem.NamingSystemType.NULL);
215                  break;
216          }
217      }
218      return tgt;
219  }
220
221  public static org.hl7.fhir.dstu2016may.model.NamingSystem.NamingSystemUniqueIdComponent convertNamingSystemUniqueIdComponent(org.hl7.fhir.r4.model.NamingSystem.NamingSystemUniqueIdComponent src) throws FHIRException {
222    if (src == null || src.isEmpty())
223      return null;
224    org.hl7.fhir.dstu2016may.model.NamingSystem.NamingSystemUniqueIdComponent tgt = new org.hl7.fhir.dstu2016may.model.NamingSystem.NamingSystemUniqueIdComponent();
225    ConversionContext14_40.INSTANCE.getVersionConvertor_14_40().copyBackboneElement(src,tgt);
226    if (src.hasType())
227      tgt.setTypeElement(convertNamingSystemIdentifierType(src.getTypeElement()));
228    if (src.hasValueElement())
229      tgt.setValueElement(String14_40.convertString(src.getValueElement()));
230    if (src.hasPreferred())
231      tgt.setPreferredElement(Boolean14_40.convertBoolean(src.getPreferredElement()));
232    if (src.hasPeriod())
233      tgt.setPeriod(Period14_40.convertPeriod(src.getPeriod()));
234    return tgt;
235  }
236
237  public static org.hl7.fhir.r4.model.NamingSystem.NamingSystemUniqueIdComponent convertNamingSystemUniqueIdComponent(org.hl7.fhir.dstu2016may.model.NamingSystem.NamingSystemUniqueIdComponent src) throws FHIRException {
238    if (src == null || src.isEmpty())
239      return null;
240    org.hl7.fhir.r4.model.NamingSystem.NamingSystemUniqueIdComponent tgt = new org.hl7.fhir.r4.model.NamingSystem.NamingSystemUniqueIdComponent();
241    ConversionContext14_40.INSTANCE.getVersionConvertor_14_40().copyBackboneElement(src,tgt);
242    if (src.hasType())
243      tgt.setTypeElement(convertNamingSystemIdentifierType(src.getTypeElement()));
244    if (src.hasValueElement())
245      tgt.setValueElement(String14_40.convertString(src.getValueElement()));
246    if (src.hasPreferred())
247      tgt.setPreferredElement(Boolean14_40.convertBoolean(src.getPreferredElement()));
248    if (src.hasPeriod())
249      tgt.setPeriod(Period14_40.convertPeriod(src.getPeriod()));
250    return tgt;
251  }
252}