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