001package org.hl7.fhir.convertors.conv30_50.resources30_50;
002
003import org.hl7.fhir.convertors.context.ConversionContext30_50;
004import org.hl7.fhir.convertors.conv30_50.datatypes30_50.ContactDetail30_50;
005import org.hl7.fhir.convertors.conv30_50.datatypes30_50.Reference30_50;
006import org.hl7.fhir.convertors.conv30_50.datatypes30_50.UsageContext30_50;
007import org.hl7.fhir.convertors.conv30_50.datatypes30_50.complextypes30_50.CodeableConcept30_50;
008import org.hl7.fhir.convertors.conv30_50.datatypes30_50.complextypes30_50.Coding30_50;
009import org.hl7.fhir.convertors.conv30_50.datatypes30_50.complextypes30_50.Identifier30_50;
010import org.hl7.fhir.convertors.conv30_50.datatypes30_50.primitivetypes30_50.Boolean30_50;
011import org.hl7.fhir.convertors.conv30_50.datatypes30_50.primitivetypes30_50.Code30_50;
012import org.hl7.fhir.convertors.conv30_50.datatypes30_50.primitivetypes30_50.DateTime30_50;
013import org.hl7.fhir.convertors.conv30_50.datatypes30_50.primitivetypes30_50.MarkDown30_50;
014import org.hl7.fhir.convertors.conv30_50.datatypes30_50.primitivetypes30_50.String30_50;
015import org.hl7.fhir.convertors.conv30_50.datatypes30_50.primitivetypes30_50.UnsignedInt30_50;
016import org.hl7.fhir.convertors.conv30_50.datatypes30_50.primitivetypes30_50.Uri30_50;
017import org.hl7.fhir.dstu3.model.Enumeration;
018import org.hl7.fhir.dstu3.model.MessageDefinition;
019import org.hl7.fhir.exceptions.FHIRException;
020
021public class MessageDefinition30_50 {
022
023  public static org.hl7.fhir.dstu3.model.MessageDefinition convertMessageDefinition(org.hl7.fhir.r5.model.MessageDefinition src) throws FHIRException {
024    if (src == null)
025      return null;
026    org.hl7.fhir.dstu3.model.MessageDefinition tgt = new org.hl7.fhir.dstu3.model.MessageDefinition();
027    ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyDomainResource(src, tgt);
028    if (src.hasUrl())
029      tgt.setUrlElement(Uri30_50.convertUri(src.getUrlElement()));
030    if (src.hasIdentifier())
031      tgt.setIdentifier(Identifier30_50.convertIdentifier(src.getIdentifierFirstRep()));
032    if (src.hasVersion())
033      tgt.setVersionElement(String30_50.convertString(src.getVersionElement()));
034    if (src.hasName())
035      tgt.setNameElement(String30_50.convertString(src.getNameElement()));
036    if (src.hasTitle())
037      tgt.setTitleElement(String30_50.convertString(src.getTitleElement()));
038    if (src.hasStatus())
039      tgt.setStatusElement(Enumerations30_50.convertPublicationStatus(src.getStatusElement()));
040    if (src.hasExperimental())
041      tgt.setExperimentalElement(Boolean30_50.convertBoolean(src.getExperimentalElement()));
042    if (src.hasDate())
043      tgt.setDateElement(DateTime30_50.convertDateTime(src.getDateElement()));
044    if (src.hasPublisher())
045      tgt.setPublisherElement(String30_50.convertString(src.getPublisherElement()));
046    for (org.hl7.fhir.r5.model.ContactDetail t : src.getContact())
047      tgt.addContact(ContactDetail30_50.convertContactDetail(t));
048    if (src.hasDescription())
049      tgt.setDescriptionElement(MarkDown30_50.convertMarkdown(src.getDescriptionElement()));
050    for (org.hl7.fhir.r5.model.UsageContext t : src.getUseContext())
051      tgt.addUseContext(UsageContext30_50.convertUsageContext(t));
052    for (org.hl7.fhir.r5.model.CodeableConcept t : src.getJurisdiction())
053      tgt.addJurisdiction(CodeableConcept30_50.convertCodeableConcept(t));
054    if (src.hasPurpose())
055      tgt.setPurposeElement(MarkDown30_50.convertMarkdown(src.getPurposeElement()));
056    if (src.hasCopyright())
057      tgt.setCopyrightElement(MarkDown30_50.convertMarkdown(src.getCopyrightElement()));
058    if (src.hasBase())
059      tgt.setBase(Reference30_50.convertCanonicalToReference(src.getBaseElement()));
060    for (org.hl7.fhir.r5.model.CanonicalType t : src.getParent())
061      tgt.addParent(Reference30_50.convertCanonicalToReference(t));
062    for (org.hl7.fhir.r5.model.CanonicalType t : src.getReplaces())
063      tgt.addReplaces(Reference30_50.convertCanonicalToReference(t));
064    if (src.hasEventCoding())
065      tgt.setEvent(Coding30_50.convertCoding(src.getEventCoding()));
066    if (src.hasCategory())
067      tgt.setCategoryElement(convertMessageSignificanceCategory(src.getCategoryElement()));
068    for (org.hl7.fhir.r5.model.MessageDefinition.MessageDefinitionFocusComponent t : src.getFocus())
069      tgt.addFocus(convertMessageDefinitionFocusComponent(t));
070    if (src.hasResponseRequired())
071      tgt.setResponseRequired(src.getResponseRequired() != org.hl7.fhir.r5.model.MessageDefinition.MessageheaderResponseRequest.NEVER);
072    for (org.hl7.fhir.r5.model.MessageDefinition.MessageDefinitionAllowedResponseComponent t : src.getAllowedResponse())
073      tgt.addAllowedResponse(convertMessageDefinitionAllowedResponseComponent(t));
074    return tgt;
075  }
076
077  public static org.hl7.fhir.r5.model.MessageDefinition convertMessageDefinition(org.hl7.fhir.dstu3.model.MessageDefinition src) throws FHIRException {
078    if (src == null)
079      return null;
080    org.hl7.fhir.r5.model.MessageDefinition tgt = new org.hl7.fhir.r5.model.MessageDefinition();
081    ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyDomainResource(src, tgt);
082    if (src.hasUrl())
083      tgt.setUrlElement(Uri30_50.convertUri(src.getUrlElement()));
084    if (src.hasIdentifier())
085      tgt.addIdentifier(Identifier30_50.convertIdentifier(src.getIdentifier()));
086    if (src.hasVersion())
087      tgt.setVersionElement(String30_50.convertString(src.getVersionElement()));
088    if (src.hasName())
089      tgt.setNameElement(String30_50.convertString(src.getNameElement()));
090    if (src.hasTitle())
091      tgt.setTitleElement(String30_50.convertString(src.getTitleElement()));
092    if (src.hasStatus())
093      tgt.setStatusElement(Enumerations30_50.convertPublicationStatus(src.getStatusElement()));
094    if (src.hasExperimental())
095      tgt.setExperimentalElement(Boolean30_50.convertBoolean(src.getExperimentalElement()));
096    if (src.hasDate())
097      tgt.setDateElement(DateTime30_50.convertDateTime(src.getDateElement()));
098    if (src.hasPublisher())
099      tgt.setPublisherElement(String30_50.convertString(src.getPublisherElement()));
100    for (org.hl7.fhir.dstu3.model.ContactDetail t : src.getContact())
101      tgt.addContact(ContactDetail30_50.convertContactDetail(t));
102    if (src.hasDescription())
103      tgt.setDescriptionElement(MarkDown30_50.convertMarkdown(src.getDescriptionElement()));
104    for (org.hl7.fhir.dstu3.model.UsageContext t : src.getUseContext())
105      tgt.addUseContext(UsageContext30_50.convertUsageContext(t));
106    for (org.hl7.fhir.dstu3.model.CodeableConcept t : src.getJurisdiction())
107      tgt.addJurisdiction(CodeableConcept30_50.convertCodeableConcept(t));
108    if (src.hasPurpose())
109      tgt.setPurposeElement(MarkDown30_50.convertMarkdown(src.getPurposeElement()));
110    if (src.hasCopyright())
111      tgt.setCopyrightElement(MarkDown30_50.convertMarkdown(src.getCopyrightElement()));
112    if (src.hasBase())
113      tgt.setBaseElement(Reference30_50.convertReferenceToCanonical(src.getBase()));
114    for (org.hl7.fhir.dstu3.model.Reference t : src.getParent())
115      tgt.getParent().add(Reference30_50.convertReferenceToCanonical(t));
116    for (org.hl7.fhir.dstu3.model.Reference t : src.getReplaces())
117      tgt.getReplaces().add(Reference30_50.convertReferenceToCanonical(t));
118    if (src.hasEvent())
119      tgt.setEvent(Coding30_50.convertCoding(src.getEvent()));
120    if (src.hasCategory())
121      tgt.setCategoryElement(convertMessageSignificanceCategory(src.getCategoryElement()));
122    for (org.hl7.fhir.dstu3.model.MessageDefinition.MessageDefinitionFocusComponent t : src.getFocus())
123      tgt.addFocus(convertMessageDefinitionFocusComponent(t));
124    if (src.hasResponseRequired())
125      tgt.setResponseRequired(src.getResponseRequired() ? org.hl7.fhir.r5.model.MessageDefinition.MessageheaderResponseRequest.ALWAYS : org.hl7.fhir.r5.model.MessageDefinition.MessageheaderResponseRequest.NEVER);
126    for (org.hl7.fhir.dstu3.model.MessageDefinition.MessageDefinitionAllowedResponseComponent t : src.getAllowedResponse())
127      tgt.addAllowedResponse(convertMessageDefinitionAllowedResponseComponent(t));
128    return tgt;
129  }
130
131  public static org.hl7.fhir.dstu3.model.MessageDefinition.MessageDefinitionAllowedResponseComponent convertMessageDefinitionAllowedResponseComponent(org.hl7.fhir.r5.model.MessageDefinition.MessageDefinitionAllowedResponseComponent src) throws FHIRException {
132    if (src == null)
133      return null;
134    org.hl7.fhir.dstu3.model.MessageDefinition.MessageDefinitionAllowedResponseComponent tgt = new org.hl7.fhir.dstu3.model.MessageDefinition.MessageDefinitionAllowedResponseComponent();
135    ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyBackboneElement(src,tgt);
136    if (src.hasMessage())
137      tgt.setMessage(Reference30_50.convertCanonicalToReference(src.getMessageElement()));
138    if (src.hasSituation())
139      tgt.setSituationElement(MarkDown30_50.convertMarkdown(src.getSituationElement()));
140    return tgt;
141  }
142
143  public static org.hl7.fhir.r5.model.MessageDefinition.MessageDefinitionAllowedResponseComponent convertMessageDefinitionAllowedResponseComponent(org.hl7.fhir.dstu3.model.MessageDefinition.MessageDefinitionAllowedResponseComponent src) throws FHIRException {
144    if (src == null)
145      return null;
146    org.hl7.fhir.r5.model.MessageDefinition.MessageDefinitionAllowedResponseComponent tgt = new org.hl7.fhir.r5.model.MessageDefinition.MessageDefinitionAllowedResponseComponent();
147    ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyBackboneElement(src,tgt);
148    if (src.hasMessage())
149      tgt.setMessageElement(Reference30_50.convertReferenceToCanonical(src.getMessage()));
150    if (src.hasSituation())
151      tgt.setSituationElement(MarkDown30_50.convertMarkdown(src.getSituationElement()));
152    return tgt;
153  }
154
155  public static org.hl7.fhir.dstu3.model.MessageDefinition.MessageDefinitionFocusComponent convertMessageDefinitionFocusComponent(org.hl7.fhir.r5.model.MessageDefinition.MessageDefinitionFocusComponent src) throws FHIRException {
156    if (src == null)
157      return null;
158    org.hl7.fhir.dstu3.model.MessageDefinition.MessageDefinitionFocusComponent tgt = new org.hl7.fhir.dstu3.model.MessageDefinition.MessageDefinitionFocusComponent();
159    ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyBackboneElement(src,tgt);
160    if (src.hasCode())
161      tgt.setCodeElement(Code30_50.convertCode(src.getCodeElement()));
162    if (src.hasProfile())
163      tgt.setProfile(Reference30_50.convertCanonicalToReference(src.getProfileElement()));
164    if (src.hasMin())
165      tgt.setMinElement(UnsignedInt30_50.convertUnsignedInt(src.getMinElement()));
166    if (src.hasMax())
167      tgt.setMaxElement(String30_50.convertString(src.getMaxElement()));
168    return tgt;
169  }
170
171  public static org.hl7.fhir.r5.model.MessageDefinition.MessageDefinitionFocusComponent convertMessageDefinitionFocusComponent(org.hl7.fhir.dstu3.model.MessageDefinition.MessageDefinitionFocusComponent src) throws FHIRException {
172    if (src == null)
173      return null;
174    org.hl7.fhir.r5.model.MessageDefinition.MessageDefinitionFocusComponent tgt = new org.hl7.fhir.r5.model.MessageDefinition.MessageDefinitionFocusComponent();
175    ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyBackboneElement(src,tgt);
176    if (src.hasCode())
177      tgt.setCodeElement(Code30_50.convertCode(src.getCodeElement()));
178    if (src.hasProfile())
179      tgt.setProfileElement(Reference30_50.convertReferenceToCanonical(src.getProfile()));
180    if (src.hasMin())
181      tgt.setMinElement(UnsignedInt30_50.convertUnsignedInt(src.getMinElement()));
182    if (src.hasMax())
183      tgt.setMaxElement(String30_50.convertString(src.getMaxElement()));
184    return tgt;
185  }
186
187  static public org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.MessageDefinition.MessageSignificanceCategory> convertMessageSignificanceCategory(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.MessageDefinition.MessageSignificanceCategory> src) throws FHIRException {
188      if (src == null || src.isEmpty())
189          return null;
190      Enumeration<MessageDefinition.MessageSignificanceCategory> tgt = new Enumeration<>(new MessageDefinition.MessageSignificanceCategoryEnumFactory());
191      ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt);
192      if (src.getValue() == null) {
193          tgt.setValue(null);
194      } else {
195          switch (src.getValue()) {
196              case CONSEQUENCE:
197                  tgt.setValue(MessageDefinition.MessageSignificanceCategory.CONSEQUENCE);
198                  break;
199              case CURRENCY:
200                  tgt.setValue(MessageDefinition.MessageSignificanceCategory.CURRENCY);
201                  break;
202              case NOTIFICATION:
203                  tgt.setValue(MessageDefinition.MessageSignificanceCategory.NOTIFICATION);
204                  break;
205              default:
206                  tgt.setValue(MessageDefinition.MessageSignificanceCategory.NULL);
207                  break;
208          }
209      }
210      return tgt;
211  }
212
213  static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.MessageDefinition.MessageSignificanceCategory> convertMessageSignificanceCategory(org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.MessageDefinition.MessageSignificanceCategory> src) throws FHIRException {
214      if (src == null || src.isEmpty())
215          return null;
216      org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.MessageDefinition.MessageSignificanceCategory> tgt = new org.hl7.fhir.r5.model.Enumeration<>(new org.hl7.fhir.r5.model.MessageDefinition.MessageSignificanceCategoryEnumFactory());
217      ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt);
218      if (src.getValue() == null) {
219          tgt.setValue(null);
220      } else {
221          switch (src.getValue()) {
222              case CONSEQUENCE:
223                  tgt.setValue(org.hl7.fhir.r5.model.MessageDefinition.MessageSignificanceCategory.CONSEQUENCE);
224                  break;
225              case CURRENCY:
226                  tgt.setValue(org.hl7.fhir.r5.model.MessageDefinition.MessageSignificanceCategory.CURRENCY);
227                  break;
228              case NOTIFICATION:
229                  tgt.setValue(org.hl7.fhir.r5.model.MessageDefinition.MessageSignificanceCategory.NOTIFICATION);
230                  break;
231              default:
232                  tgt.setValue(org.hl7.fhir.r5.model.MessageDefinition.MessageSignificanceCategory.NULL);
233                  break;
234          }
235      }
236      return tgt;
237  }
238}