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