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.Utilities40_50;
005import org.hl7.fhir.convertors.conv40_50.datatypes40_50.general40_50.CodeableConcept40_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.Integer40_50;
013import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.MarkDown40_50;
014import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.String40_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.Enumerations;
019import org.hl7.fhir.r5.model.Enumerations.VersionIndependentResourceTypesAll;
020import org.hl7.fhir.r5.model.Enumerations.VersionIndependentResourceTypesAllEnumFactory;
021import org.hl7.fhir.r5.model.OperationDefinition;
022
023/*
024  Copyright (c) 2011+, HL7, Inc.
025  All rights reserved.
026  
027  Redistribution and use in source and binary forms, with or without modification, 
028  are permitted provided that the following conditions are met:
029  
030   * Redistributions of source code must retain the above copyright notice, this 
031     list of conditions and the following disclaimer.
032   * Redistributions in binary form must reproduce the above copyright notice, 
033     this list of conditions and the following disclaimer in the documentation 
034     and/or other materials provided with the distribution.
035   * Neither the name of HL7 nor the names of its contributors may be used to 
036     endorse or promote products derived from this software without specific 
037     prior written permission.
038  
039  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 
040  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
041  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 
042  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 
043  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 
044  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 
045  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
046  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
047  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
048  POSSIBILITY OF SUCH DAMAGE.
049  
050*/
051// Generated on Sun, Feb 24, 2019 11:37+1100 for FHIR v4.0.0
052public class OperationDefinition40_50 {
053
054  public static org.hl7.fhir.r5.model.OperationDefinition convertOperationDefinition(org.hl7.fhir.r4.model.OperationDefinition src) throws FHIRException {
055    if (src == null)
056      return null;
057    org.hl7.fhir.r5.model.OperationDefinition tgt = new org.hl7.fhir.r5.model.OperationDefinition();
058    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyDomainResource(src, tgt);
059    if (src.hasUrl())
060      tgt.setUrlElement(Uri40_50.convertUri(src.getUrlElement()));
061    if (src.hasVersion())
062      tgt.setVersionElement(String40_50.convertString(src.getVersionElement()));
063    if (src.hasName())
064      tgt.setNameElement(String40_50.convertString(src.getNameElement()));
065    if (src.hasTitle())
066      tgt.setTitleElement(String40_50.convertString(src.getTitleElement()));
067    if (src.hasStatus())
068      tgt.setStatusElement(Enumerations40_50.convertPublicationStatus(src.getStatusElement()));
069    if (src.hasKind())
070      tgt.setKindElement(convertOperationKind(src.getKindElement()));
071    if (src.hasExperimental())
072      tgt.setExperimentalElement(Boolean40_50.convertBoolean(src.getExperimentalElement()));
073    if (src.hasDate())
074      tgt.setDateElement(DateTime40_50.convertDateTime(src.getDateElement()));
075    if (src.hasPublisher())
076      tgt.setPublisherElement(String40_50.convertString(src.getPublisherElement()));
077    for (org.hl7.fhir.r4.model.ContactDetail t : src.getContact())
078      tgt.addContact(ContactDetail40_50.convertContactDetail(t));
079    if (src.hasDescription())
080      tgt.setDescriptionElement(MarkDown40_50.convertMarkdown(src.getDescriptionElement()));
081    for (org.hl7.fhir.r4.model.UsageContext t : src.getUseContext())
082      tgt.addUseContext(UsageContext40_50.convertUsageContext(t));
083    for (org.hl7.fhir.r4.model.CodeableConcept t : src.getJurisdiction())
084      tgt.addJurisdiction(CodeableConcept40_50.convertCodeableConcept(t));
085    if (src.hasPurpose())
086      tgt.setPurposeElement(MarkDown40_50.convertMarkdown(src.getPurposeElement()));
087    if (src.hasAffectsState())
088      tgt.setAffectsStateElement(Boolean40_50.convertBoolean(src.getAffectsStateElement()));
089    if (src.hasCode())
090      tgt.setCodeElement(Code40_50.convertCode(src.getCodeElement()));
091    if (src.hasComment())
092      tgt.setCommentElement(MarkDown40_50.convertMarkdown(src.getCommentElement()));
093    if (src.hasBase())
094      tgt.setBaseElement(Canonical40_50.convertCanonical(src.getBaseElement()));
095    for (org.hl7.fhir.r4.model.CodeType t : src.getResource()) tgt.getResource().add(new Enumeration<VersionIndependentResourceTypesAll>(new VersionIndependentResourceTypesAllEnumFactory(), Code40_50.convertCode(t)));
096    if (src.hasSystem())
097      tgt.setSystemElement(Boolean40_50.convertBoolean(src.getSystemElement()));
098    if (src.hasType())
099      tgt.setTypeElement(Boolean40_50.convertBoolean(src.getTypeElement()));
100    if (src.hasInstance())
101      tgt.setInstanceElement(Boolean40_50.convertBoolean(src.getInstanceElement()));
102    if (src.hasInputProfile())
103      tgt.setInputProfileElement(Canonical40_50.convertCanonical(src.getInputProfileElement()));
104    if (src.hasOutputProfile())
105      tgt.setOutputProfileElement(Canonical40_50.convertCanonical(src.getOutputProfileElement()));
106    for (org.hl7.fhir.r4.model.OperationDefinition.OperationDefinitionParameterComponent t : src.getParameter())
107      tgt.addParameter(convertOperationDefinitionParameterComponent(t));
108    for (org.hl7.fhir.r4.model.OperationDefinition.OperationDefinitionOverloadComponent t : src.getOverload())
109      tgt.addOverload(convertOperationDefinitionOverloadComponent(t));
110    return tgt;
111  }
112
113  public static org.hl7.fhir.r4.model.OperationDefinition convertOperationDefinition(org.hl7.fhir.r5.model.OperationDefinition src) throws FHIRException {
114    if (src == null)
115      return null;
116    org.hl7.fhir.r4.model.OperationDefinition tgt = new org.hl7.fhir.r4.model.OperationDefinition();
117    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyDomainResource(src, tgt);
118    if (src.hasUrl())
119      tgt.setUrlElement(Uri40_50.convertUri(src.getUrlElement()));
120    if (src.hasVersion())
121      tgt.setVersionElement(String40_50.convertString(src.getVersionElement()));
122    if (src.hasName())
123      tgt.setNameElement(String40_50.convertString(src.getNameElement()));
124    if (src.hasTitle())
125      tgt.setTitleElement(String40_50.convertString(src.getTitleElement()));
126    if (src.hasStatus())
127      tgt.setStatusElement(Enumerations40_50.convertPublicationStatus(src.getStatusElement()));
128    if (src.hasKind())
129      tgt.setKindElement(convertOperationKind(src.getKindElement()));
130    if (src.hasExperimental())
131      tgt.setExperimentalElement(Boolean40_50.convertBoolean(src.getExperimentalElement()));
132    if (src.hasDate())
133      tgt.setDateElement(DateTime40_50.convertDateTime(src.getDateElement()));
134    if (src.hasPublisher())
135      tgt.setPublisherElement(String40_50.convertString(src.getPublisherElement()));
136    for (org.hl7.fhir.r5.model.ContactDetail t : src.getContact())
137      tgt.addContact(ContactDetail40_50.convertContactDetail(t));
138    if (src.hasDescription())
139      tgt.setDescriptionElement(MarkDown40_50.convertMarkdown(src.getDescriptionElement()));
140    for (org.hl7.fhir.r5.model.UsageContext t : src.getUseContext())
141      tgt.addUseContext(UsageContext40_50.convertUsageContext(t));
142    for (org.hl7.fhir.r5.model.CodeableConcept t : src.getJurisdiction())
143      tgt.addJurisdiction(CodeableConcept40_50.convertCodeableConcept(t));
144    if (src.hasPurpose())
145      tgt.setPurposeElement(MarkDown40_50.convertMarkdown(src.getPurposeElement()));
146    if (src.hasAffectsState())
147      tgt.setAffectsStateElement(Boolean40_50.convertBoolean(src.getAffectsStateElement()));
148    if (src.hasCode())
149      tgt.setCodeElement(Code40_50.convertCode(src.getCodeElement()));
150    if (src.hasComment())
151      tgt.setCommentElement(MarkDown40_50.convertMarkdown(src.getCommentElement()));
152    if (src.hasBase())
153      tgt.setBaseElement(Canonical40_50.convertCanonical(src.getBaseElement()));
154    for (Enumeration<VersionIndependentResourceTypesAll> t : src.getResource()) tgt.getResource().add(Code40_50.convertCode(t.getCodeType()));
155    if (src.hasSystem())
156      tgt.setSystemElement(Boolean40_50.convertBoolean(src.getSystemElement()));
157    if (src.hasType())
158      tgt.setTypeElement(Boolean40_50.convertBoolean(src.getTypeElement()));
159    if (src.hasInstance())
160      tgt.setInstanceElement(Boolean40_50.convertBoolean(src.getInstanceElement()));
161    if (src.hasInputProfile())
162      tgt.setInputProfileElement(Canonical40_50.convertCanonical(src.getInputProfileElement()));
163    if (src.hasOutputProfile())
164      tgt.setOutputProfileElement(Canonical40_50.convertCanonical(src.getOutputProfileElement()));
165    for (org.hl7.fhir.r5.model.OperationDefinition.OperationDefinitionParameterComponent t : src.getParameter())
166      tgt.addParameter(convertOperationDefinitionParameterComponent(t));
167    for (org.hl7.fhir.r5.model.OperationDefinition.OperationDefinitionOverloadComponent t : src.getOverload())
168      tgt.addOverload(convertOperationDefinitionOverloadComponent(t));
169    return tgt;
170  }
171
172  static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.OperationDefinition.OperationKind> convertOperationKind(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.OperationDefinition.OperationKind> src) throws FHIRException {
173      if (src == null || src.isEmpty())
174          return null;
175      Enumeration<OperationDefinition.OperationKind> tgt = new Enumeration<>(new OperationDefinition.OperationKindEnumFactory());
176      ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
177      if (src.getValue() == null) {
178          tgt.setValue(null);
179      } else {
180          switch (src.getValue()) {
181              case OPERATION:
182                  tgt.setValue(OperationDefinition.OperationKind.OPERATION);
183                  break;
184              case QUERY:
185                  tgt.setValue(OperationDefinition.OperationKind.QUERY);
186                  break;
187              default:
188                  tgt.setValue(OperationDefinition.OperationKind.NULL);
189                  break;
190          }
191      }
192      return tgt;
193  }
194
195  static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.OperationDefinition.OperationKind> convertOperationKind(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.OperationDefinition.OperationKind> src) throws FHIRException {
196      if (src == null || src.isEmpty())
197          return null;
198      org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.OperationDefinition.OperationKind> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.OperationDefinition.OperationKindEnumFactory());
199      ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
200      if (src.getValue() == null) {
201          tgt.setValue(null);
202      } else {
203          switch (src.getValue()) {
204              case OPERATION:
205                  tgt.setValue(org.hl7.fhir.r4.model.OperationDefinition.OperationKind.OPERATION);
206                  break;
207              case QUERY:
208                  tgt.setValue(org.hl7.fhir.r4.model.OperationDefinition.OperationKind.QUERY);
209                  break;
210              default:
211                  tgt.setValue(org.hl7.fhir.r4.model.OperationDefinition.OperationKind.NULL);
212                  break;
213          }
214      }
215      return tgt;
216  }
217
218  public static org.hl7.fhir.r5.model.OperationDefinition.OperationDefinitionParameterComponent convertOperationDefinitionParameterComponent(org.hl7.fhir.r4.model.OperationDefinition.OperationDefinitionParameterComponent src) throws FHIRException {
219    if (src == null)
220      return null;
221    org.hl7.fhir.r5.model.OperationDefinition.OperationDefinitionParameterComponent tgt = new org.hl7.fhir.r5.model.OperationDefinition.OperationDefinitionParameterComponent();
222    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
223    if (src.hasName())
224      tgt.setNameElement(Code40_50.convertCode(src.getNameElement()));
225    if (src.hasUse())
226      tgt.setUseElement(convertOperationParameterUse(src.getUseElement()));
227    if (src.hasMin())
228      tgt.setMinElement(Integer40_50.convertInteger(src.getMinElement()));
229    if (src.hasMax())
230      tgt.setMaxElement(String40_50.convertString(src.getMaxElement()));
231    if (src.hasDocumentation())
232      tgt.setDocumentationElement(String40_50.convertStringToMarkdown(src.getDocumentationElement()));
233    if (src.hasType()) {
234      Utilities40_50.convertType(src.getTypeElement(), tgt.getTypeElement());      
235    }
236    for (org.hl7.fhir.r4.model.CanonicalType t : src.getTargetProfile())
237      tgt.getTargetProfile().add(Canonical40_50.convertCanonical(t));
238    if (src.hasSearchType())
239      tgt.setSearchTypeElement(Enumerations40_50.convertSearchParamType(src.getSearchTypeElement()));
240    if (src.hasBinding())
241      tgt.setBinding(convertOperationDefinitionParameterBindingComponent(src.getBinding()));
242    for (org.hl7.fhir.r4.model.OperationDefinition.OperationDefinitionParameterReferencedFromComponent t : src.getReferencedFrom())
243      tgt.addReferencedFrom(convertOperationDefinitionParameterReferencedFromComponent(t));
244    for (org.hl7.fhir.r4.model.OperationDefinition.OperationDefinitionParameterComponent t : src.getPart())
245      tgt.addPart(convertOperationDefinitionParameterComponent(t));
246    return tgt;
247  }
248
249  public static org.hl7.fhir.r4.model.OperationDefinition.OperationDefinitionParameterComponent convertOperationDefinitionParameterComponent(org.hl7.fhir.r5.model.OperationDefinition.OperationDefinitionParameterComponent src) throws FHIRException {
250    if (src == null)
251      return null;
252    org.hl7.fhir.r4.model.OperationDefinition.OperationDefinitionParameterComponent tgt = new org.hl7.fhir.r4.model.OperationDefinition.OperationDefinitionParameterComponent();
253    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
254    if (src.hasName())
255      tgt.setNameElement(Code40_50.convertCode(src.getNameElement()));
256    if (src.hasUse())
257      tgt.setUseElement(convertOperationParameterUse(src.getUseElement()));
258    if (src.hasMin())
259      tgt.setMinElement(Integer40_50.convertInteger(src.getMinElement()));
260    if (src.hasMax())
261      tgt.setMaxElement(String40_50.convertString(src.getMaxElement()));
262    if (src.hasDocumentation())
263      tgt.setDocumentationElement(String40_50.convertString(src.getDocumentationElement()));
264    if (src.hasType()) {
265      Utilities40_50.convertType(src.getTypeElement(), tgt.getTypeElement());     
266    }
267    for (org.hl7.fhir.r5.model.CanonicalType t : src.getTargetProfile())
268      tgt.getTargetProfile().add(Canonical40_50.convertCanonical(t));
269    if (src.hasSearchType())
270      tgt.setSearchTypeElement(Enumerations40_50.convertSearchParamType(src.getSearchTypeElement()));
271    if (src.hasBinding())
272      tgt.setBinding(convertOperationDefinitionParameterBindingComponent(src.getBinding()));
273    for (org.hl7.fhir.r5.model.OperationDefinition.OperationDefinitionParameterReferencedFromComponent t : src.getReferencedFrom())
274      tgt.addReferencedFrom(convertOperationDefinitionParameterReferencedFromComponent(t));
275    for (org.hl7.fhir.r5.model.OperationDefinition.OperationDefinitionParameterComponent t : src.getPart())
276      tgt.addPart(convertOperationDefinitionParameterComponent(t));
277    return tgt;
278  }
279
280  static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Enumerations.OperationParameterUse> convertOperationParameterUse(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.OperationDefinition.OperationParameterUse> src) throws FHIRException {
281      if (src == null || src.isEmpty())
282          return null;
283      Enumeration<Enumerations.OperationParameterUse> tgt = new Enumeration<>(new Enumerations.OperationParameterUseEnumFactory());
284      ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
285      if (src.getValue() == null) {
286          tgt.setValue(null);
287      } else {
288          switch (src.getValue()) {
289              case IN:
290                  tgt.setValue(Enumerations.OperationParameterUse.IN);
291                  break;
292              case OUT:
293                  tgt.setValue(Enumerations.OperationParameterUse.OUT);
294                  break;
295              default:
296                  tgt.setValue(Enumerations.OperationParameterUse.NULL);
297                  break;
298          }
299      }
300      return tgt;
301  }
302
303  static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.OperationDefinition.OperationParameterUse> convertOperationParameterUse(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Enumerations.OperationParameterUse> src) throws FHIRException {
304      if (src == null || src.isEmpty())
305          return null;
306      org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.OperationDefinition.OperationParameterUse> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.OperationDefinition.OperationParameterUseEnumFactory());
307      ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
308      if (src.getValue() == null) {
309          tgt.setValue(null);
310      } else {
311          switch (src.getValue()) {
312              case IN:
313                  tgt.setValue(org.hl7.fhir.r4.model.OperationDefinition.OperationParameterUse.IN);
314                  break;
315              case OUT:
316                  tgt.setValue(org.hl7.fhir.r4.model.OperationDefinition.OperationParameterUse.OUT);
317                  break;
318              default:
319                  tgt.setValue(org.hl7.fhir.r4.model.OperationDefinition.OperationParameterUse.NULL);
320                  break;
321          }
322      }
323      return tgt;
324  }
325
326  public static org.hl7.fhir.r5.model.OperationDefinition.OperationDefinitionParameterBindingComponent convertOperationDefinitionParameterBindingComponent(org.hl7.fhir.r4.model.OperationDefinition.OperationDefinitionParameterBindingComponent src) throws FHIRException {
327    if (src == null)
328      return null;
329    org.hl7.fhir.r5.model.OperationDefinition.OperationDefinitionParameterBindingComponent tgt = new org.hl7.fhir.r5.model.OperationDefinition.OperationDefinitionParameterBindingComponent();
330    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
331    if (src.hasStrength())
332      tgt.setStrengthElement(Enumerations40_50.convertBindingStrength(src.getStrengthElement()));
333    if (src.hasValueSet())
334      tgt.setValueSetElement(Canonical40_50.convertCanonical(src.getValueSetElement()));
335    return tgt;
336  }
337
338  public static org.hl7.fhir.r4.model.OperationDefinition.OperationDefinitionParameterBindingComponent convertOperationDefinitionParameterBindingComponent(org.hl7.fhir.r5.model.OperationDefinition.OperationDefinitionParameterBindingComponent src) throws FHIRException {
339    if (src == null)
340      return null;
341    org.hl7.fhir.r4.model.OperationDefinition.OperationDefinitionParameterBindingComponent tgt = new org.hl7.fhir.r4.model.OperationDefinition.OperationDefinitionParameterBindingComponent();
342    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
343    if (src.hasStrength())
344      tgt.setStrengthElement(Enumerations40_50.convertBindingStrength(src.getStrengthElement()));
345    if (src.hasValueSet())
346      tgt.setValueSetElement(Canonical40_50.convertCanonical(src.getValueSetElement()));
347    return tgt;
348  }
349
350  public static org.hl7.fhir.r5.model.OperationDefinition.OperationDefinitionParameterReferencedFromComponent convertOperationDefinitionParameterReferencedFromComponent(org.hl7.fhir.r4.model.OperationDefinition.OperationDefinitionParameterReferencedFromComponent src) throws FHIRException {
351    if (src == null)
352      return null;
353    org.hl7.fhir.r5.model.OperationDefinition.OperationDefinitionParameterReferencedFromComponent tgt = new org.hl7.fhir.r5.model.OperationDefinition.OperationDefinitionParameterReferencedFromComponent();
354    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
355    if (src.hasSource())
356      tgt.setSourceElement(String40_50.convertString(src.getSourceElement()));
357    if (src.hasSourceId())
358      tgt.setSourceIdElement(String40_50.convertString(src.getSourceIdElement()));
359    return tgt;
360  }
361
362  public static org.hl7.fhir.r4.model.OperationDefinition.OperationDefinitionParameterReferencedFromComponent convertOperationDefinitionParameterReferencedFromComponent(org.hl7.fhir.r5.model.OperationDefinition.OperationDefinitionParameterReferencedFromComponent src) throws FHIRException {
363    if (src == null)
364      return null;
365    org.hl7.fhir.r4.model.OperationDefinition.OperationDefinitionParameterReferencedFromComponent tgt = new org.hl7.fhir.r4.model.OperationDefinition.OperationDefinitionParameterReferencedFromComponent();
366    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
367    if (src.hasSource())
368      tgt.setSourceElement(String40_50.convertString(src.getSourceElement()));
369    if (src.hasSourceId())
370      tgt.setSourceIdElement(String40_50.convertString(src.getSourceIdElement()));
371    return tgt;
372  }
373
374  public static org.hl7.fhir.r5.model.OperationDefinition.OperationDefinitionOverloadComponent convertOperationDefinitionOverloadComponent(org.hl7.fhir.r4.model.OperationDefinition.OperationDefinitionOverloadComponent src) throws FHIRException {
375    if (src == null)
376      return null;
377    org.hl7.fhir.r5.model.OperationDefinition.OperationDefinitionOverloadComponent tgt = new org.hl7.fhir.r5.model.OperationDefinition.OperationDefinitionOverloadComponent();
378    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
379    for (org.hl7.fhir.r4.model.StringType t : src.getParameterName())
380      tgt.getParameterName().add(String40_50.convertString(t));
381    if (src.hasComment())
382      tgt.setCommentElement(String40_50.convertString(src.getCommentElement()));
383    return tgt;
384  }
385
386  public static org.hl7.fhir.r4.model.OperationDefinition.OperationDefinitionOverloadComponent convertOperationDefinitionOverloadComponent(org.hl7.fhir.r5.model.OperationDefinition.OperationDefinitionOverloadComponent src) throws FHIRException {
387    if (src == null)
388      return null;
389    org.hl7.fhir.r4.model.OperationDefinition.OperationDefinitionOverloadComponent tgt = new org.hl7.fhir.r4.model.OperationDefinition.OperationDefinitionOverloadComponent();
390    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
391    for (org.hl7.fhir.r5.model.StringType t : src.getParameterName())
392      tgt.getParameterName().add(String40_50.convertString(t));
393    if (src.hasComment())
394      tgt.setCommentElement(String40_50.convertString(src.getCommentElement()));
395    return tgt;
396  }
397}