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