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.datatypes14_40.complextypes14_40.ContactPoint14_40;
005import org.hl7.fhir.convertors.conv14_40.datatypes14_40.primitivetypes14_40.Boolean14_40;
006import org.hl7.fhir.convertors.conv14_40.datatypes14_40.primitivetypes14_40.Code14_40;
007import org.hl7.fhir.convertors.conv14_40.datatypes14_40.primitivetypes14_40.DateTime14_40;
008import org.hl7.fhir.convertors.conv14_40.datatypes14_40.primitivetypes14_40.String14_40;
009import org.hl7.fhir.convertors.conv14_40.datatypes14_40.primitivetypes14_40.Uri14_40;
010import org.hl7.fhir.dstu2016may.model.CompartmentDefinition;
011import org.hl7.fhir.dstu2016may.model.Enumeration;
012import org.hl7.fhir.exceptions.FHIRException;
013
014public class CompartmentDefinition14_40 {
015
016  public static org.hl7.fhir.r4.model.CompartmentDefinition convertCompartmentDefinition(org.hl7.fhir.dstu2016may.model.CompartmentDefinition src) throws FHIRException {
017    if (src == null || src.isEmpty())
018      return null;
019    org.hl7.fhir.r4.model.CompartmentDefinition tgt = new org.hl7.fhir.r4.model.CompartmentDefinition();
020    ConversionContext14_40.INSTANCE.getVersionConvertor_14_40().copyDomainResource(src, tgt);
021    if (src.hasUrlElement())
022      tgt.setUrlElement(Uri14_40.convertUri(src.getUrlElement()));
023    if (src.hasNameElement())
024      tgt.setNameElement(String14_40.convertString(src.getNameElement()));
025    if (src.hasStatus())
026      tgt.setStatusElement(Enumerations14_40.convertConformanceResourceStatus(src.getStatusElement()));
027    if (src.hasExperimental())
028      tgt.setExperimentalElement(Boolean14_40.convertBoolean(src.getExperimentalElement()));
029    if (src.hasPublisher())
030      tgt.setPublisherElement(String14_40.convertString(src.getPublisherElement()));
031    for (org.hl7.fhir.dstu2016may.model.CompartmentDefinition.CompartmentDefinitionContactComponent t : src.getContact())
032      tgt.addContact(convertCompartmentDefinitionContactComponent(t));
033    if (src.hasDate())
034      tgt.setDateElement(DateTime14_40.convertDateTime(src.getDateElement()));
035    if (src.hasDescription())
036      tgt.setDescription(src.getDescription());
037    if (src.hasRequirements())
038      tgt.setPurpose(src.getRequirements());
039    if (src.hasCode())
040      tgt.setCodeElement(convertCompartmentType(src.getCodeElement()));
041    if (src.hasSearchElement())
042      tgt.setSearchElement(Boolean14_40.convertBoolean(src.getSearchElement()));
043    for (org.hl7.fhir.dstu2016may.model.CompartmentDefinition.CompartmentDefinitionResourceComponent t : src.getResource())
044      tgt.addResource(convertCompartmentDefinitionResourceComponent(t));
045    return tgt;
046  }
047
048  public static org.hl7.fhir.dstu2016may.model.CompartmentDefinition convertCompartmentDefinition(org.hl7.fhir.r4.model.CompartmentDefinition src) throws FHIRException {
049    if (src == null || src.isEmpty())
050      return null;
051    org.hl7.fhir.dstu2016may.model.CompartmentDefinition tgt = new org.hl7.fhir.dstu2016may.model.CompartmentDefinition();
052    ConversionContext14_40.INSTANCE.getVersionConvertor_14_40().copyDomainResource(src, tgt);
053    if (src.hasUrlElement())
054      tgt.setUrlElement(Uri14_40.convertUri(src.getUrlElement()));
055    if (src.hasNameElement())
056      tgt.setNameElement(String14_40.convertString(src.getNameElement()));
057    if (src.hasStatus())
058      tgt.setStatusElement(Enumerations14_40.convertConformanceResourceStatus(src.getStatusElement()));
059    if (src.hasExperimental())
060      tgt.setExperimentalElement(Boolean14_40.convertBoolean(src.getExperimentalElement()));
061    if (src.hasPublisher())
062      tgt.setPublisherElement(String14_40.convertString(src.getPublisherElement()));
063    for (org.hl7.fhir.r4.model.ContactDetail t : src.getContact())
064      tgt.addContact(convertCompartmentDefinitionContactComponent(t));
065    if (src.hasDate())
066      tgt.setDateElement(DateTime14_40.convertDateTime(src.getDateElement()));
067    if (src.hasDescription())
068      tgt.setDescription(src.getDescription());
069    if (src.hasPurpose())
070      tgt.setRequirements(src.getPurpose());
071    if (src.hasCode())
072      tgt.setCodeElement(convertCompartmentType(src.getCodeElement()));
073    if (src.hasSearchElement())
074      tgt.setSearchElement(Boolean14_40.convertBoolean(src.getSearchElement()));
075    for (org.hl7.fhir.r4.model.CompartmentDefinition.CompartmentDefinitionResourceComponent t : src.getResource())
076      tgt.addResource(convertCompartmentDefinitionResourceComponent(t));
077    return tgt;
078  }
079
080  public static org.hl7.fhir.r4.model.ContactDetail convertCompartmentDefinitionContactComponent(org.hl7.fhir.dstu2016may.model.CompartmentDefinition.CompartmentDefinitionContactComponent src) throws FHIRException {
081    if (src == null || src.isEmpty())
082      return null;
083    org.hl7.fhir.r4.model.ContactDetail tgt = new org.hl7.fhir.r4.model.ContactDetail();
084    ConversionContext14_40.INSTANCE.getVersionConvertor_14_40().copyElement(src, tgt);
085    if (src.hasName())
086      tgt.setNameElement(String14_40.convertString(src.getNameElement()));
087    for (org.hl7.fhir.dstu2016may.model.ContactPoint t : src.getTelecom())
088      tgt.addTelecom(ContactPoint14_40.convertContactPoint(t));
089    return tgt;
090  }
091
092  public static org.hl7.fhir.dstu2016may.model.CompartmentDefinition.CompartmentDefinitionContactComponent convertCompartmentDefinitionContactComponent(org.hl7.fhir.r4.model.ContactDetail src) throws FHIRException {
093    if (src == null || src.isEmpty())
094      return null;
095    org.hl7.fhir.dstu2016may.model.CompartmentDefinition.CompartmentDefinitionContactComponent tgt = new org.hl7.fhir.dstu2016may.model.CompartmentDefinition.CompartmentDefinitionContactComponent();
096    ConversionContext14_40.INSTANCE.getVersionConvertor_14_40().copyElement(src, tgt);
097    if (src.hasName())
098      tgt.setNameElement(String14_40.convertString(src.getNameElement()));
099    for (org.hl7.fhir.r4.model.ContactPoint t : src.getTelecom())
100      tgt.addTelecom(ContactPoint14_40.convertContactPoint(t));
101    return tgt;
102  }
103
104  public static org.hl7.fhir.r4.model.CompartmentDefinition.CompartmentDefinitionResourceComponent convertCompartmentDefinitionResourceComponent(org.hl7.fhir.dstu2016may.model.CompartmentDefinition.CompartmentDefinitionResourceComponent src) throws FHIRException {
105    if (src == null || src.isEmpty())
106      return null;
107    org.hl7.fhir.r4.model.CompartmentDefinition.CompartmentDefinitionResourceComponent tgt = new org.hl7.fhir.r4.model.CompartmentDefinition.CompartmentDefinitionResourceComponent();
108    ConversionContext14_40.INSTANCE.getVersionConvertor_14_40().copyBackboneElement(src,tgt);
109    if (src.hasCodeElement())
110      tgt.setCodeElement(Code14_40.convertCode(src.getCodeElement()));
111    for (org.hl7.fhir.dstu2016may.model.StringType t : src.getParam()) tgt.addParam(t.getValue());
112    if (src.hasDocumentation())
113      tgt.setDocumentationElement(String14_40.convertString(src.getDocumentationElement()));
114    return tgt;
115  }
116
117  public static org.hl7.fhir.dstu2016may.model.CompartmentDefinition.CompartmentDefinitionResourceComponent convertCompartmentDefinitionResourceComponent(org.hl7.fhir.r4.model.CompartmentDefinition.CompartmentDefinitionResourceComponent src) throws FHIRException {
118    if (src == null || src.isEmpty())
119      return null;
120    org.hl7.fhir.dstu2016may.model.CompartmentDefinition.CompartmentDefinitionResourceComponent tgt = new org.hl7.fhir.dstu2016may.model.CompartmentDefinition.CompartmentDefinitionResourceComponent();
121    ConversionContext14_40.INSTANCE.getVersionConvertor_14_40().copyBackboneElement(src,tgt);
122    if (src.hasCodeElement())
123      tgt.setCodeElement(Code14_40.convertCode(src.getCodeElement()));
124    for (org.hl7.fhir.r4.model.StringType t : src.getParam()) tgt.addParam(t.getValue());
125    if (src.hasDocumentation())
126      tgt.setDocumentationElement(String14_40.convertString(src.getDocumentationElement()));
127    return tgt;
128  }
129
130  static public org.hl7.fhir.dstu2016may.model.Enumeration<org.hl7.fhir.dstu2016may.model.CompartmentDefinition.CompartmentType> convertCompartmentType(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.CompartmentDefinition.CompartmentType> src) throws FHIRException {
131      if (src == null || src.isEmpty())
132          return null;
133      Enumeration<CompartmentDefinition.CompartmentType> tgt = new Enumeration<>(new CompartmentDefinition.CompartmentTypeEnumFactory());
134      ConversionContext14_40.INSTANCE.getVersionConvertor_14_40().copyElement(src, tgt);
135      if (src.getValue() == null) {
136          tgt.setValue(null);
137      } else {
138          switch (src.getValue()) {
139              case PATIENT:
140                  tgt.setValue(CompartmentDefinition.CompartmentType.PATIENT);
141                  break;
142              case ENCOUNTER:
143                  tgt.setValue(CompartmentDefinition.CompartmentType.ENCOUNTER);
144                  break;
145              case RELATEDPERSON:
146                  tgt.setValue(CompartmentDefinition.CompartmentType.RELATEDPERSON);
147                  break;
148              case PRACTITIONER:
149                  tgt.setValue(CompartmentDefinition.CompartmentType.PRACTITIONER);
150                  break;
151              case DEVICE:
152                  tgt.setValue(CompartmentDefinition.CompartmentType.DEVICE);
153                  break;
154              default:
155                  tgt.setValue(CompartmentDefinition.CompartmentType.NULL);
156                  break;
157          }
158      }
159      return tgt;
160  }
161
162  static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.CompartmentDefinition.CompartmentType> convertCompartmentType(org.hl7.fhir.dstu2016may.model.Enumeration<org.hl7.fhir.dstu2016may.model.CompartmentDefinition.CompartmentType> src) throws FHIRException {
163      if (src == null || src.isEmpty())
164          return null;
165      org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.CompartmentDefinition.CompartmentType> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.CompartmentDefinition.CompartmentTypeEnumFactory());
166      ConversionContext14_40.INSTANCE.getVersionConvertor_14_40().copyElement(src, tgt);
167      if (src.getValue() == null) {
168          tgt.setValue(null);
169      } else {
170          switch (src.getValue()) {
171              case PATIENT:
172                  tgt.setValue(org.hl7.fhir.r4.model.CompartmentDefinition.CompartmentType.PATIENT);
173                  break;
174              case ENCOUNTER:
175                  tgt.setValue(org.hl7.fhir.r4.model.CompartmentDefinition.CompartmentType.ENCOUNTER);
176                  break;
177              case RELATEDPERSON:
178                  tgt.setValue(org.hl7.fhir.r4.model.CompartmentDefinition.CompartmentType.RELATEDPERSON);
179                  break;
180              case PRACTITIONER:
181                  tgt.setValue(org.hl7.fhir.r4.model.CompartmentDefinition.CompartmentType.PRACTITIONER);
182                  break;
183              case DEVICE:
184                  tgt.setValue(org.hl7.fhir.r4.model.CompartmentDefinition.CompartmentType.DEVICE);
185                  break;
186              default:
187                  tgt.setValue(org.hl7.fhir.r4.model.CompartmentDefinition.CompartmentType.NULL);
188                  break;
189          }
190      }
191      return tgt;
192  }
193}