001package org.hl7.fhir.convertors.conv40_50.resources40_50;
002
003import org.hl7.fhir.convertors.context.ConversionContext40_50;
004import org.hl7.fhir.convertors.conv40_50.datatypes40_50.general40_50.CodeableConcept40_50;
005import org.hl7.fhir.convertors.conv40_50.datatypes40_50.general40_50.Identifier40_50;
006import org.hl7.fhir.convertors.conv40_50.datatypes40_50.metadata40_50.ContactDetail40_50;
007import org.hl7.fhir.convertors.conv40_50.datatypes40_50.metadata40_50.UsageContext40_50;
008import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.Boolean40_50;
009import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.Canonical40_50;
010import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.Code40_50;
011import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.DateTime40_50;
012import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.MarkDown40_50;
013import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.String40_50;
014import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.UnsignedInt40_50;
015import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.Uri40_50;
016import org.hl7.fhir.exceptions.FHIRException;
017import org.hl7.fhir.r5.model.Enumeration;
018import org.hl7.fhir.r5.model.MessageDefinition;
019
020/*
021  Copyright (c) 2011+, HL7, Inc.
022  All rights reserved.
023  
024  Redistribution and use in source and binary forms, with or without modification, 
025  are permitted provided that the following conditions are met:
026  
027   * Redistributions of source code must retain the above copyright notice, this 
028     list of conditions and the following disclaimer.
029   * Redistributions in binary form must reproduce the above copyright notice, 
030     this list of conditions and the following disclaimer in the documentation 
031     and/or other materials provided with the distribution.
032   * Neither the name of HL7 nor the names of its contributors may be used to 
033     endorse or promote products derived from this software without specific 
034     prior written permission.
035  
036  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 
037  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
038  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 
039  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 
040  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 
041  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 
042  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
043  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
044  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
045  POSSIBILITY OF SUCH DAMAGE.
046  
047*/
048// Generated on Sun, Feb 24, 2019 11:37+1100 for FHIR v4.0.0
049public class MessageDefinition40_50 {
050
051  public static org.hl7.fhir.r5.model.MessageDefinition convertMessageDefinition(org.hl7.fhir.r4.model.MessageDefinition src) throws FHIRException {
052    if (src == null)
053      return null;
054    org.hl7.fhir.r5.model.MessageDefinition tgt = new org.hl7.fhir.r5.model.MessageDefinition();
055    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyDomainResource(src, tgt);
056    if (src.hasUrl())
057      tgt.setUrlElement(Uri40_50.convertUri(src.getUrlElement()));
058    for (org.hl7.fhir.r4.model.Identifier t : src.getIdentifier())
059      tgt.addIdentifier(Identifier40_50.convertIdentifier(t));
060    if (src.hasVersion())
061      tgt.setVersionElement(String40_50.convertString(src.getVersionElement()));
062    if (src.hasName())
063      tgt.setNameElement(String40_50.convertString(src.getNameElement()));
064    if (src.hasTitle())
065      tgt.setTitleElement(String40_50.convertString(src.getTitleElement()));
066    for (org.hl7.fhir.r4.model.CanonicalType t : src.getReplaces())
067      tgt.getReplaces().add(Canonical40_50.convertCanonical(t));
068    if (src.hasStatus())
069      tgt.setStatusElement(Enumerations40_50.convertPublicationStatus(src.getStatusElement()));
070    if (src.hasExperimental())
071      tgt.setExperimentalElement(Boolean40_50.convertBoolean(src.getExperimentalElement()));
072    if (src.hasDate())
073      tgt.setDateElement(DateTime40_50.convertDateTime(src.getDateElement()));
074    if (src.hasPublisher())
075      tgt.setPublisherElement(String40_50.convertString(src.getPublisherElement()));
076    for (org.hl7.fhir.r4.model.ContactDetail t : src.getContact())
077      tgt.addContact(ContactDetail40_50.convertContactDetail(t));
078    if (src.hasDescription())
079      tgt.setDescriptionElement(MarkDown40_50.convertMarkdown(src.getDescriptionElement()));
080    for (org.hl7.fhir.r4.model.UsageContext t : src.getUseContext())
081      tgt.addUseContext(UsageContext40_50.convertUsageContext(t));
082    for (org.hl7.fhir.r4.model.CodeableConcept t : src.getJurisdiction())
083      tgt.addJurisdiction(CodeableConcept40_50.convertCodeableConcept(t));
084    if (src.hasPurpose())
085      tgt.setPurposeElement(MarkDown40_50.convertMarkdown(src.getPurposeElement()));
086    if (src.hasCopyright())
087      tgt.setCopyrightElement(MarkDown40_50.convertMarkdown(src.getCopyrightElement()));
088    if (src.hasBase())
089      tgt.setBaseElement(Canonical40_50.convertCanonical(src.getBaseElement()));
090    for (org.hl7.fhir.r4.model.CanonicalType t : src.getParent())
091      tgt.getParent().add(Canonical40_50.convertCanonical(t));
092    if (src.hasEvent())
093      tgt.setEvent(ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().convertType(src.getEvent()));
094    if (src.hasCategory())
095      tgt.setCategoryElement(convertMessageSignificanceCategory(src.getCategoryElement()));
096    for (org.hl7.fhir.r4.model.MessageDefinition.MessageDefinitionFocusComponent t : src.getFocus())
097      tgt.addFocus(convertMessageDefinitionFocusComponent(t));
098    if (src.hasResponseRequired())
099      tgt.setResponseRequiredElement(convertMessageheaderResponseRequest(src.getResponseRequiredElement()));
100    for (org.hl7.fhir.r4.model.MessageDefinition.MessageDefinitionAllowedResponseComponent t : src.getAllowedResponse())
101      tgt.addAllowedResponse(convertMessageDefinitionAllowedResponseComponent(t));
102    for (org.hl7.fhir.r4.model.CanonicalType t : src.getGraph()) tgt.setGraphElement(Canonical40_50.convertCanonical(t));
103    return tgt;
104  }
105
106  public static org.hl7.fhir.r4.model.MessageDefinition convertMessageDefinition(org.hl7.fhir.r5.model.MessageDefinition src) throws FHIRException {
107    if (src == null)
108      return null;
109    org.hl7.fhir.r4.model.MessageDefinition tgt = new org.hl7.fhir.r4.model.MessageDefinition();
110    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyDomainResource(src, tgt);
111    if (src.hasUrl())
112      tgt.setUrlElement(Uri40_50.convertUri(src.getUrlElement()));
113    for (org.hl7.fhir.r5.model.Identifier t : src.getIdentifier())
114      tgt.addIdentifier(Identifier40_50.convertIdentifier(t));
115    if (src.hasVersion())
116      tgt.setVersionElement(String40_50.convertString(src.getVersionElement()));
117    if (src.hasName())
118      tgt.setNameElement(String40_50.convertString(src.getNameElement()));
119    if (src.hasTitle())
120      tgt.setTitleElement(String40_50.convertString(src.getTitleElement()));
121    for (org.hl7.fhir.r5.model.CanonicalType t : src.getReplaces())
122      tgt.getReplaces().add(Canonical40_50.convertCanonical(t));
123    if (src.hasStatus())
124      tgt.setStatusElement(Enumerations40_50.convertPublicationStatus(src.getStatusElement()));
125    if (src.hasExperimental())
126      tgt.setExperimentalElement(Boolean40_50.convertBoolean(src.getExperimentalElement()));
127    if (src.hasDate())
128      tgt.setDateElement(DateTime40_50.convertDateTime(src.getDateElement()));
129    if (src.hasPublisher())
130      tgt.setPublisherElement(String40_50.convertString(src.getPublisherElement()));
131    for (org.hl7.fhir.r5.model.ContactDetail t : src.getContact())
132      tgt.addContact(ContactDetail40_50.convertContactDetail(t));
133    if (src.hasDescription())
134      tgt.setDescriptionElement(MarkDown40_50.convertMarkdown(src.getDescriptionElement()));
135    for (org.hl7.fhir.r5.model.UsageContext t : src.getUseContext())
136      tgt.addUseContext(UsageContext40_50.convertUsageContext(t));
137    for (org.hl7.fhir.r5.model.CodeableConcept t : src.getJurisdiction())
138      tgt.addJurisdiction(CodeableConcept40_50.convertCodeableConcept(t));
139    if (src.hasPurpose())
140      tgt.setPurposeElement(MarkDown40_50.convertMarkdown(src.getPurposeElement()));
141    if (src.hasCopyright())
142      tgt.setCopyrightElement(MarkDown40_50.convertMarkdown(src.getCopyrightElement()));
143    if (src.hasBase())
144      tgt.setBaseElement(Canonical40_50.convertCanonical(src.getBaseElement()));
145    for (org.hl7.fhir.r5.model.CanonicalType t : src.getParent())
146      tgt.getParent().add(Canonical40_50.convertCanonical(t));
147    if (src.hasEvent())
148      tgt.setEvent(ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().convertType(src.getEvent()));
149    if (src.hasCategory())
150      tgt.setCategoryElement(convertMessageSignificanceCategory(src.getCategoryElement()));
151    for (org.hl7.fhir.r5.model.MessageDefinition.MessageDefinitionFocusComponent t : src.getFocus())
152      tgt.addFocus(convertMessageDefinitionFocusComponent(t));
153    if (src.hasResponseRequired())
154      tgt.setResponseRequiredElement(convertMessageheaderResponseRequest(src.getResponseRequiredElement()));
155    for (org.hl7.fhir.r5.model.MessageDefinition.MessageDefinitionAllowedResponseComponent t : src.getAllowedResponse())
156      tgt.addAllowedResponse(convertMessageDefinitionAllowedResponseComponent(t));
157    if (src.hasGraph()) 
158      tgt.getGraph().add(Canonical40_50.convertCanonical(src.getGraphElement()));
159    return tgt;
160  }
161
162  static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.MessageDefinition.MessageSignificanceCategory> convertMessageSignificanceCategory(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.MessageDefinition.MessageSignificanceCategory> src) throws FHIRException {
163      if (src == null || src.isEmpty())
164          return null;
165      Enumeration<MessageDefinition.MessageSignificanceCategory> tgt = new Enumeration<>(new MessageDefinition.MessageSignificanceCategoryEnumFactory());
166      ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
167      if (src.getValue() == null) {
168          tgt.setValue(null);
169      } else {
170          switch (src.getValue()) {
171              case CONSEQUENCE:
172                  tgt.setValue(MessageDefinition.MessageSignificanceCategory.CONSEQUENCE);
173                  break;
174              case CURRENCY:
175                  tgt.setValue(MessageDefinition.MessageSignificanceCategory.CURRENCY);
176                  break;
177              case NOTIFICATION:
178                  tgt.setValue(MessageDefinition.MessageSignificanceCategory.NOTIFICATION);
179                  break;
180              default:
181                  tgt.setValue(MessageDefinition.MessageSignificanceCategory.NULL);
182                  break;
183          }
184      }
185      return tgt;
186  }
187
188  static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.MessageDefinition.MessageSignificanceCategory> convertMessageSignificanceCategory(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.MessageDefinition.MessageSignificanceCategory> src) throws FHIRException {
189      if (src == null || src.isEmpty())
190          return null;
191      org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.MessageDefinition.MessageSignificanceCategory> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.MessageDefinition.MessageSignificanceCategoryEnumFactory());
192      ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
193      if (src.getValue() == null) {
194          tgt.setValue(null);
195      } else {
196          switch (src.getValue()) {
197              case CONSEQUENCE:
198                  tgt.setValue(org.hl7.fhir.r4.model.MessageDefinition.MessageSignificanceCategory.CONSEQUENCE);
199                  break;
200              case CURRENCY:
201                  tgt.setValue(org.hl7.fhir.r4.model.MessageDefinition.MessageSignificanceCategory.CURRENCY);
202                  break;
203              case NOTIFICATION:
204                  tgt.setValue(org.hl7.fhir.r4.model.MessageDefinition.MessageSignificanceCategory.NOTIFICATION);
205                  break;
206              default:
207                  tgt.setValue(org.hl7.fhir.r4.model.MessageDefinition.MessageSignificanceCategory.NULL);
208                  break;
209          }
210      }
211      return tgt;
212  }
213
214  static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.MessageDefinition.MessageheaderResponseRequest> convertMessageheaderResponseRequest(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.MessageDefinition.MessageheaderResponseRequest> src) throws FHIRException {
215      if (src == null || src.isEmpty())
216          return null;
217      Enumeration<MessageDefinition.MessageheaderResponseRequest> tgt = new Enumeration<>(new MessageDefinition.MessageheaderResponseRequestEnumFactory());
218      ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
219      if (src.getValue() == null) {
220          tgt.setValue(null);
221      } else {
222          switch (src.getValue()) {
223              case ALWAYS:
224                  tgt.setValue(MessageDefinition.MessageheaderResponseRequest.ALWAYS);
225                  break;
226              case ONERROR:
227                  tgt.setValue(MessageDefinition.MessageheaderResponseRequest.ONERROR);
228                  break;
229              case NEVER:
230                  tgt.setValue(MessageDefinition.MessageheaderResponseRequest.NEVER);
231                  break;
232              case ONSUCCESS:
233                  tgt.setValue(MessageDefinition.MessageheaderResponseRequest.ONSUCCESS);
234                  break;
235              default:
236                  tgt.setValue(MessageDefinition.MessageheaderResponseRequest.NULL);
237                  break;
238          }
239      }
240      return tgt;
241  }
242
243  static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.MessageDefinition.MessageheaderResponseRequest> convertMessageheaderResponseRequest(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.MessageDefinition.MessageheaderResponseRequest> src) throws FHIRException {
244      if (src == null || src.isEmpty())
245          return null;
246      org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.MessageDefinition.MessageheaderResponseRequest> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.MessageDefinition.MessageheaderResponseRequestEnumFactory());
247      ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
248      if (src.getValue() == null) {
249          tgt.setValue(null);
250      } else {
251          switch (src.getValue()) {
252              case ALWAYS:
253                  tgt.setValue(org.hl7.fhir.r4.model.MessageDefinition.MessageheaderResponseRequest.ALWAYS);
254                  break;
255              case ONERROR:
256                  tgt.setValue(org.hl7.fhir.r4.model.MessageDefinition.MessageheaderResponseRequest.ONERROR);
257                  break;
258              case NEVER:
259                  tgt.setValue(org.hl7.fhir.r4.model.MessageDefinition.MessageheaderResponseRequest.NEVER);
260                  break;
261              case ONSUCCESS:
262                  tgt.setValue(org.hl7.fhir.r4.model.MessageDefinition.MessageheaderResponseRequest.ONSUCCESS);
263                  break;
264              default:
265                  tgt.setValue(org.hl7.fhir.r4.model.MessageDefinition.MessageheaderResponseRequest.NULL);
266                  break;
267          }
268      }
269      return tgt;
270  }
271
272  public static org.hl7.fhir.r5.model.MessageDefinition.MessageDefinitionFocusComponent convertMessageDefinitionFocusComponent(org.hl7.fhir.r4.model.MessageDefinition.MessageDefinitionFocusComponent src) throws FHIRException {
273    if (src == null)
274      return null;
275    org.hl7.fhir.r5.model.MessageDefinition.MessageDefinitionFocusComponent tgt = new org.hl7.fhir.r5.model.MessageDefinition.MessageDefinitionFocusComponent();
276    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
277    if (src.hasCode())
278      tgt.setCodeElement(Code40_50.convertCode(src.getCodeElement()));
279    if (src.hasProfile())
280      tgt.setProfileElement(Canonical40_50.convertCanonical(src.getProfileElement()));
281    if (src.hasMin())
282      tgt.setMinElement(UnsignedInt40_50.convertUnsignedInt(src.getMinElement()));
283    if (src.hasMax())
284      tgt.setMaxElement(String40_50.convertString(src.getMaxElement()));
285    return tgt;
286  }
287
288  public static org.hl7.fhir.r4.model.MessageDefinition.MessageDefinitionFocusComponent convertMessageDefinitionFocusComponent(org.hl7.fhir.r5.model.MessageDefinition.MessageDefinitionFocusComponent src) throws FHIRException {
289    if (src == null)
290      return null;
291    org.hl7.fhir.r4.model.MessageDefinition.MessageDefinitionFocusComponent tgt = new org.hl7.fhir.r4.model.MessageDefinition.MessageDefinitionFocusComponent();
292    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
293    if (src.hasCode())
294      tgt.setCodeElement(Code40_50.convertCode(src.getCodeElement()));
295    if (src.hasProfile())
296      tgt.setProfileElement(Canonical40_50.convertCanonical(src.getProfileElement()));
297    if (src.hasMin())
298      tgt.setMinElement(UnsignedInt40_50.convertUnsignedInt(src.getMinElement()));
299    if (src.hasMax())
300      tgt.setMaxElement(String40_50.convertString(src.getMaxElement()));
301    return tgt;
302  }
303
304  public static org.hl7.fhir.r5.model.MessageDefinition.MessageDefinitionAllowedResponseComponent convertMessageDefinitionAllowedResponseComponent(org.hl7.fhir.r4.model.MessageDefinition.MessageDefinitionAllowedResponseComponent src) throws FHIRException {
305    if (src == null)
306      return null;
307    org.hl7.fhir.r5.model.MessageDefinition.MessageDefinitionAllowedResponseComponent tgt = new org.hl7.fhir.r5.model.MessageDefinition.MessageDefinitionAllowedResponseComponent();
308    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
309    if (src.hasMessage())
310      tgt.setMessageElement(Canonical40_50.convertCanonical(src.getMessageElement()));
311    if (src.hasSituation())
312      tgt.setSituationElement(MarkDown40_50.convertMarkdown(src.getSituationElement()));
313    return tgt;
314  }
315
316  public static org.hl7.fhir.r4.model.MessageDefinition.MessageDefinitionAllowedResponseComponent convertMessageDefinitionAllowedResponseComponent(org.hl7.fhir.r5.model.MessageDefinition.MessageDefinitionAllowedResponseComponent src) throws FHIRException {
317    if (src == null)
318      return null;
319    org.hl7.fhir.r4.model.MessageDefinition.MessageDefinitionAllowedResponseComponent tgt = new org.hl7.fhir.r4.model.MessageDefinition.MessageDefinitionAllowedResponseComponent();
320    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
321    if (src.hasMessage())
322      tgt.setMessageElement(Canonical40_50.convertCanonical(src.getMessageElement()));
323    if (src.hasSituation())
324      tgt.setSituationElement(MarkDown40_50.convertMarkdown(src.getSituationElement()));
325    return tgt;
326  }
327}