001package org.hl7.fhir.convertors.conv10_30.resources10_30;
002
003import org.hl7.fhir.convertors.context.ConversionContext10_30;
004import org.hl7.fhir.convertors.conv10_30.datatypes10_30.ElementDefinition10_30;
005import org.hl7.fhir.convertors.conv10_30.datatypes10_30.Reference10_30;
006import org.hl7.fhir.convertors.conv10_30.datatypes10_30.complextypes10_30.ContactPoint10_30;
007import org.hl7.fhir.convertors.conv10_30.datatypes10_30.primitivetypes10_30.*;
008import org.hl7.fhir.dstu3.model.Enumerations.SearchParamType;
009import org.hl7.fhir.exceptions.FHIRException;
010import org.hl7.fhir.utilities.Utilities;
011
012public class OperationDefinition10_30 {
013
014  public static org.hl7.fhir.dstu2.model.OperationDefinition convertOperationDefinition(org.hl7.fhir.dstu3.model.OperationDefinition src) throws FHIRException {
015    if (src == null || src.isEmpty())
016      return null;
017    org.hl7.fhir.dstu2.model.OperationDefinition tgt = new org.hl7.fhir.dstu2.model.OperationDefinition();
018    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyDomainResource(src, tgt);
019    if (src.hasUrlElement())
020      tgt.setUrlElement(Uri10_30.convertUri(src.getUrlElement()));
021    if (src.hasVersionElement())
022      tgt.setVersionElement(String10_30.convertString(src.getVersionElement()));
023    if (src.hasNameElement())
024      tgt.setNameElement(String10_30.convertString(src.getNameElement()));
025    if (src.hasStatus())
026      tgt.setStatusElement(Enumerations10_30.convertConformanceResourceStatus(src.getStatusElement()));
027    if (src.hasKind())
028      tgt.setKindElement(convertOperationKind(src.getKindElement()));
029    if (src.hasExperimental())
030      tgt.setExperimentalElement(Boolean10_30.convertBoolean(src.getExperimentalElement()));
031    if (src.hasDate())
032      tgt.setDateElement(DateTime10_30.convertDateTime(src.getDateElement()));
033    if (src.hasPublisherElement())
034      tgt.setPublisherElement(String10_30.convertString(src.getPublisherElement()));
035    for (org.hl7.fhir.dstu3.model.ContactDetail t : src.getContact())
036      tgt.addContact(convertOperationDefinitionContactComponent(t));
037    if (src.hasDescription())
038      tgt.setDescription(src.getDescription());
039    if (src.hasPurpose())
040      tgt.setRequirements(src.getPurpose());
041    if (src.hasIdempotentElement())
042      tgt.setIdempotentElement(Boolean10_30.convertBoolean(src.getIdempotentElement()));
043    if (src.hasCodeElement())
044      tgt.setCodeElement(Code10_30.convertCode(src.getCodeElement()));
045    if (src.hasCommentElement())
046      tgt.setNotesElement(String10_30.convertString(src.getCommentElement()));
047    if (src.hasBase())
048      tgt.setBase(Reference10_30.convertReference(src.getBase()));
049    if (src.hasSystemElement())
050      tgt.setSystemElement(Boolean10_30.convertBoolean(src.getSystemElement()));
051    if (src.getType())
052      for (org.hl7.fhir.dstu3.model.CodeType t : src.getResource()) tgt.addType(t.getValue());
053    if (src.hasInstanceElement())
054      tgt.setInstanceElement(Boolean10_30.convertBoolean(src.getInstanceElement()));
055    for (org.hl7.fhir.dstu3.model.OperationDefinition.OperationDefinitionParameterComponent t : src.getParameter())
056      tgt.addParameter(convertOperationDefinitionParameterComponent(t));
057    return tgt;
058  }
059
060  public static org.hl7.fhir.dstu3.model.OperationDefinition convertOperationDefinition(org.hl7.fhir.dstu2.model.OperationDefinition src) throws FHIRException {
061    if (src == null || src.isEmpty())
062      return null;
063    org.hl7.fhir.dstu3.model.OperationDefinition tgt = new org.hl7.fhir.dstu3.model.OperationDefinition();
064    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyDomainResource(src, tgt);
065    if (src.hasUrlElement())
066      tgt.setUrlElement(Uri10_30.convertUri(src.getUrlElement()));
067    if (src.hasVersionElement())
068      tgt.setVersionElement(String10_30.convertString(src.getVersionElement()));
069    if (src.hasNameElement())
070      tgt.setNameElement(String10_30.convertString(src.getNameElement()));
071    if (src.hasStatus())
072      tgt.setStatusElement(Enumerations10_30.convertConformanceResourceStatus(src.getStatusElement()));
073    if (src.hasKind())
074      tgt.setKindElement(convertOperationKind(src.getKindElement()));
075    if (src.hasExperimental())
076      tgt.setExperimentalElement(Boolean10_30.convertBoolean(src.getExperimentalElement()));
077    if (src.hasDate())
078      tgt.setDateElement(DateTime10_30.convertDateTime(src.getDateElement()));
079    if (src.hasPublisherElement())
080      tgt.setPublisherElement(String10_30.convertString(src.getPublisherElement()));
081    for (org.hl7.fhir.dstu2.model.OperationDefinition.OperationDefinitionContactComponent t : src.getContact())
082      tgt.addContact(convertOperationDefinitionContactComponent(t));
083    if (src.hasDescription())
084      tgt.setDescription(src.getDescription());
085    if (src.hasRequirements())
086      tgt.setPurpose(src.getRequirements());
087    if (src.hasIdempotent())
088      tgt.setIdempotentElement(Boolean10_30.convertBoolean(src.getIdempotentElement()));
089    if (src.hasCodeElement())
090      tgt.setCodeElement(Code10_30.convertCode(src.getCodeElement()));
091    if (src.hasNotesElement())
092      tgt.setCommentElement(String10_30.convertString(src.getNotesElement()));
093    if (src.hasBase())
094      tgt.setBase(Reference10_30.convertReference(src.getBase()));
095    if (src.hasSystemElement())
096      tgt.setSystemElement(Boolean10_30.convertBoolean(src.getSystemElement()));
097    for (org.hl7.fhir.dstu2.model.CodeType t : src.getType()) tgt.addResource(t.getValue());
098    tgt.setType(tgt.hasResource());
099    if (src.hasInstanceElement())
100      tgt.setInstanceElement(Boolean10_30.convertBoolean(src.getInstanceElement()));
101    for (org.hl7.fhir.dstu2.model.OperationDefinition.OperationDefinitionParameterComponent t : src.getParameter())
102      tgt.addParameter(convertOperationDefinitionParameterComponent(t));
103    return tgt;
104  }
105
106  public static org.hl7.fhir.dstu2.model.OperationDefinition.OperationDefinitionContactComponent convertOperationDefinitionContactComponent(org.hl7.fhir.dstu3.model.ContactDetail src) throws FHIRException {
107    if (src == null || src.isEmpty())
108      return null;
109    org.hl7.fhir.dstu2.model.OperationDefinition.OperationDefinitionContactComponent tgt = new org.hl7.fhir.dstu2.model.OperationDefinition.OperationDefinitionContactComponent();
110    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyElement(src, tgt);
111    if (src.hasNameElement())
112      tgt.setNameElement(String10_30.convertString(src.getNameElement()));
113    for (org.hl7.fhir.dstu3.model.ContactPoint t : src.getTelecom())
114      tgt.addTelecom(ContactPoint10_30.convertContactPoint(t));
115    return tgt;
116  }
117
118  public static org.hl7.fhir.dstu3.model.ContactDetail convertOperationDefinitionContactComponent(org.hl7.fhir.dstu2.model.OperationDefinition.OperationDefinitionContactComponent src) throws FHIRException {
119    if (src == null || src.isEmpty())
120      return null;
121    org.hl7.fhir.dstu3.model.ContactDetail tgt = new org.hl7.fhir.dstu3.model.ContactDetail();
122    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyElement(src, tgt);
123    if (src.hasNameElement())
124      tgt.setNameElement(String10_30.convertString(src.getNameElement()));
125    for (org.hl7.fhir.dstu2.model.ContactPoint t : src.getTelecom())
126      tgt.addTelecom(ContactPoint10_30.convertContactPoint(t));
127    return tgt;
128  }
129
130  public static org.hl7.fhir.dstu3.model.OperationDefinition.OperationDefinitionParameterBindingComponent convertOperationDefinitionParameterBindingComponent(org.hl7.fhir.dstu2.model.OperationDefinition.OperationDefinitionParameterBindingComponent src) throws FHIRException {
131    if (src == null || src.isEmpty())
132      return null;
133    org.hl7.fhir.dstu3.model.OperationDefinition.OperationDefinitionParameterBindingComponent tgt = new org.hl7.fhir.dstu3.model.OperationDefinition.OperationDefinitionParameterBindingComponent();
134    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyElement(src, tgt);
135    if (src.hasStrength())
136      tgt.setStrengthElement(ElementDefinition10_30.convertBindingStrength(src.getStrengthElement()));
137    if (src.hasValueSet())
138      tgt.setValueSet(ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().convertType(src.getValueSet()));
139    return tgt;
140  }
141
142  public static org.hl7.fhir.dstu2.model.OperationDefinition.OperationDefinitionParameterBindingComponent convertOperationDefinitionParameterBindingComponent(org.hl7.fhir.dstu3.model.OperationDefinition.OperationDefinitionParameterBindingComponent src) throws FHIRException {
143    if (src == null || src.isEmpty())
144      return null;
145    org.hl7.fhir.dstu2.model.OperationDefinition.OperationDefinitionParameterBindingComponent tgt = new org.hl7.fhir.dstu2.model.OperationDefinition.OperationDefinitionParameterBindingComponent();
146    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyElement(src, tgt);
147    if (src.hasStrength())
148      tgt.setStrengthElement(ElementDefinition10_30.convertBindingStrength(src.getStrengthElement()));
149    if (src.hasValueSet())
150      tgt.setValueSet(ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().convertType(src.getValueSet()));
151    return tgt;
152  }
153
154  public static org.hl7.fhir.dstu2.model.OperationDefinition.OperationDefinitionParameterComponent convertOperationDefinitionParameterComponent(org.hl7.fhir.dstu3.model.OperationDefinition.OperationDefinitionParameterComponent src) throws FHIRException {
155    if (src == null || src.isEmpty())
156      return null;
157    org.hl7.fhir.dstu2.model.OperationDefinition.OperationDefinitionParameterComponent tgt = new org.hl7.fhir.dstu2.model.OperationDefinition.OperationDefinitionParameterComponent();
158    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyElement(src, tgt);
159    if (src.hasNameElement())
160      tgt.setNameElement(Code10_30.convertCode(src.getNameElement()));
161    if (src.hasUse())
162      tgt.setUseElement(convertOperationParameterUse(src.getUseElement()));
163    if (src.hasMinElement())
164      tgt.setMinElement(Integer10_30.convertInteger(src.getMinElement()));
165    if (src.hasMaxElement())
166      tgt.setMaxElement(String10_30.convertString(src.getMaxElement()));
167    if (src.hasDocumentationElement())
168      tgt.setDocumentationElement(String10_30.convertString(src.getDocumentationElement()));
169    if (src.hasSearchType()) {
170      tgt.setType(src.getSearchType().toCode());
171    } else
172      tgt.setTypeElement(Code10_30.convertCode(src.getTypeElement()));
173    if (src.hasProfile())
174      tgt.setProfile(Reference10_30.convertReference(src.getProfile()));
175    if (src.hasBinding())
176      tgt.setBinding(convertOperationDefinitionParameterBindingComponent(src.getBinding()));
177    for (org.hl7.fhir.dstu3.model.OperationDefinition.OperationDefinitionParameterComponent t : src.getPart())
178      tgt.addPart(convertOperationDefinitionParameterComponent(t));
179    return tgt;
180  }
181
182  public static org.hl7.fhir.dstu3.model.OperationDefinition.OperationDefinitionParameterComponent convertOperationDefinitionParameterComponent(org.hl7.fhir.dstu2.model.OperationDefinition.OperationDefinitionParameterComponent src) throws FHIRException {
183    if (src == null || src.isEmpty())
184      return null;
185    org.hl7.fhir.dstu3.model.OperationDefinition.OperationDefinitionParameterComponent tgt = new org.hl7.fhir.dstu3.model.OperationDefinition.OperationDefinitionParameterComponent();
186    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyElement(src, tgt);
187    if (src.hasNameElement())
188      tgt.setNameElement(Code10_30.convertCode(src.getNameElement()));
189    if (src.hasUse())
190      tgt.setUseElement(convertOperationParameterUse(src.getUseElement()));
191    if (src.hasMinElement())
192      tgt.setMinElement(Integer10_30.convertInteger(src.getMinElement()));
193    if (src.hasMaxElement())
194      tgt.setMaxElement(String10_30.convertString(src.getMaxElement()));
195    if (src.hasDocumentationElement())
196      tgt.setDocumentationElement(String10_30.convertString(src.getDocumentationElement()));
197    if (Utilities.existsInList(src.getType(), "token", "reference", "composite", "number", "date", "quantity", "uri")) {
198      tgt.setType("string");
199      if (src.hasType())
200        tgt.setSearchType(SearchParamType.fromCode(src.getType()));
201    } else {
202      if (src.hasTypeElement())
203        tgt.setTypeElement(Code10_30.convertCode(src.getTypeElement()));
204    }
205    if (src.hasProfile())
206      tgt.setProfile(Reference10_30.convertReference(src.getProfile()));
207    if (src.hasBinding())
208      tgt.setBinding(convertOperationDefinitionParameterBindingComponent(src.getBinding()));
209    for (org.hl7.fhir.dstu2.model.OperationDefinition.OperationDefinitionParameterComponent t : src.getPart())
210      tgt.addPart(convertOperationDefinitionParameterComponent(t));
211    return tgt;
212  }
213
214  static public org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.OperationDefinition.OperationKind> convertOperationKind(org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.OperationDefinition.OperationKind> src) throws FHIRException {
215    if (src == null || src.isEmpty())
216      return null;
217    org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.OperationDefinition.OperationKind> tgt = new org.hl7.fhir.dstu2.model.Enumeration<>(new org.hl7.fhir.dstu2.model.OperationDefinition.OperationKindEnumFactory());
218    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyElement(src, tgt);
219    switch (src.getValue()) {
220      case OPERATION:
221        tgt.setValue(org.hl7.fhir.dstu2.model.OperationDefinition.OperationKind.OPERATION);
222        break;
223      case QUERY:
224        tgt.setValue(org.hl7.fhir.dstu2.model.OperationDefinition.OperationKind.QUERY);
225        break;
226      default:
227        tgt.setValue(org.hl7.fhir.dstu2.model.OperationDefinition.OperationKind.NULL);
228        break;
229    }
230    return tgt;
231  }
232
233  static public org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.OperationDefinition.OperationKind> convertOperationKind(org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.OperationDefinition.OperationKind> src) throws FHIRException {
234    if (src == null || src.isEmpty())
235      return null;
236    org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.OperationDefinition.OperationKind> tgt = new org.hl7.fhir.dstu3.model.Enumeration<>(new org.hl7.fhir.dstu3.model.OperationDefinition.OperationKindEnumFactory());
237    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyElement(src, tgt);
238    switch (src.getValue()) {
239      case OPERATION:
240        tgt.setValue(org.hl7.fhir.dstu3.model.OperationDefinition.OperationKind.OPERATION);
241        break;
242      case QUERY:
243        tgt.setValue(org.hl7.fhir.dstu3.model.OperationDefinition.OperationKind.QUERY);
244        break;
245      default:
246        tgt.setValue(org.hl7.fhir.dstu3.model.OperationDefinition.OperationKind.NULL);
247        break;
248    }
249    return tgt;
250  }
251
252  static public org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.OperationDefinition.OperationParameterUse> convertOperationParameterUse(org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.OperationDefinition.OperationParameterUse> src) throws FHIRException {
253    if (src == null || src.isEmpty())
254      return null;
255    org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.OperationDefinition.OperationParameterUse> tgt = new org.hl7.fhir.dstu2.model.Enumeration<>(new org.hl7.fhir.dstu2.model.OperationDefinition.OperationParameterUseEnumFactory());
256    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyElement(src, tgt);
257    switch (src.getValue()) {
258      case IN:
259        tgt.setValue(org.hl7.fhir.dstu2.model.OperationDefinition.OperationParameterUse.IN);
260        break;
261      case OUT:
262        tgt.setValue(org.hl7.fhir.dstu2.model.OperationDefinition.OperationParameterUse.OUT);
263        break;
264      default:
265        tgt.setValue(org.hl7.fhir.dstu2.model.OperationDefinition.OperationParameterUse.NULL);
266        break;
267    }
268    return tgt;
269  }
270
271  static public org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.OperationDefinition.OperationParameterUse> convertOperationParameterUse(org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.OperationDefinition.OperationParameterUse> src) throws FHIRException {
272    if (src == null || src.isEmpty())
273      return null;
274    org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.OperationDefinition.OperationParameterUse> tgt = new org.hl7.fhir.dstu3.model.Enumeration<>(new org.hl7.fhir.dstu3.model.OperationDefinition.OperationParameterUseEnumFactory());
275    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyElement(src, tgt);
276    switch (src.getValue()) {
277      case IN:
278        tgt.setValue(org.hl7.fhir.dstu3.model.OperationDefinition.OperationParameterUse.IN);
279        break;
280      case OUT:
281        tgt.setValue(org.hl7.fhir.dstu3.model.OperationDefinition.OperationParameterUse.OUT);
282        break;
283      default:
284        tgt.setValue(org.hl7.fhir.dstu3.model.OperationDefinition.OperationParameterUse.NULL);
285        break;
286    }
287    return tgt;
288  }
289}