
001package org.hl7.fhir.convertors.conv30_50.resources30_50; 002 003import org.hl7.fhir.convertors.VersionConvertorConstants; 004import org.hl7.fhir.convertors.context.ConversionContext30_50; 005import org.hl7.fhir.convertors.conv30_50.datatypes30_50.ContactDetail30_50; 006import org.hl7.fhir.convertors.conv30_50.datatypes30_50.Reference30_50; 007import org.hl7.fhir.convertors.conv30_50.datatypes30_50.UsageContext30_50; 008import org.hl7.fhir.convertors.conv30_50.datatypes30_50.complextypes30_50.CodeableConcept30_50; 009import org.hl7.fhir.convertors.conv30_50.datatypes30_50.primitivetypes30_50.Boolean30_50; 010import org.hl7.fhir.convertors.conv30_50.datatypes30_50.primitivetypes30_50.Code30_50; 011import org.hl7.fhir.convertors.conv30_50.datatypes30_50.primitivetypes30_50.DateTime30_50; 012import org.hl7.fhir.convertors.conv30_50.datatypes30_50.primitivetypes30_50.Integer30_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.Uri30_50; 016import org.hl7.fhir.dstu3.model.OperationDefinition; 017import org.hl7.fhir.exceptions.FHIRException; 018import org.hl7.fhir.r5.model.DataType; 019import org.hl7.fhir.r5.model.Enumeration; 020import org.hl7.fhir.r5.model.Enumerations; 021import org.hl7.fhir.r5.model.Enumerations.VersionIndependentResourceTypesAll; 022import org.hl7.fhir.r5.model.Enumerations.VersionIndependentResourceTypesAllEnumFactory; 023 024public class OperationDefinition30_50 { 025 026 public static org.hl7.fhir.r5.model.OperationDefinition convertOperationDefinition(org.hl7.fhir.dstu3.model.OperationDefinition src) throws FHIRException { 027 if (src == null) 028 return null; 029 org.hl7.fhir.r5.model.OperationDefinition tgt = new org.hl7.fhir.r5.model.OperationDefinition(); 030 ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyDomainResource(src, tgt); 031 if (src.hasUrl()) 032 tgt.setUrlElement(Uri30_50.convertUri(src.getUrlElement())); 033 if (src.hasVersion()) 034 tgt.setVersionElement(String30_50.convertString(src.getVersionElement())); 035 if (src.hasName()) 036 tgt.setNameElement(String30_50.convertString(src.getNameElement())); 037 if (src.hasStatus()) 038 tgt.setStatusElement(Enumerations30_50.convertPublicationStatus(src.getStatusElement())); 039 if (src.hasKind()) 040 tgt.setKindElement(convertOperationKind(src.getKindElement())); 041 if (src.hasExperimental()) 042 tgt.setExperimentalElement(Boolean30_50.convertBoolean(src.getExperimentalElement())); 043 if (src.hasDate()) 044 tgt.setDateElement(DateTime30_50.convertDateTime(src.getDateElement())); 045 if (src.hasPublisher()) 046 tgt.setPublisherElement(String30_50.convertString(src.getPublisherElement())); 047 for (org.hl7.fhir.dstu3.model.ContactDetail t : src.getContact()) 048 tgt.addContact(ContactDetail30_50.convertContactDetail(t)); 049 if (src.hasDescription()) 050 tgt.setDescriptionElement(MarkDown30_50.convertMarkdown(src.getDescriptionElement())); 051 for (org.hl7.fhir.dstu3.model.UsageContext t : src.getUseContext()) 052 tgt.addUseContext(UsageContext30_50.convertUsageContext(t)); 053 for (org.hl7.fhir.dstu3.model.CodeableConcept t : src.getJurisdiction()) 054 tgt.addJurisdiction(CodeableConcept30_50.convertCodeableConcept(t)); 055 if (src.hasPurpose()) 056 tgt.setPurposeElement(MarkDown30_50.convertMarkdown(src.getPurposeElement())); 057 if (src.hasIdempotent()) 058 tgt.setAffectsState(!src.getIdempotent()); 059 if (src.hasCode()) 060 tgt.setCodeElement(Code30_50.convertCode(src.getCodeElement())); 061 if (src.hasComment()) 062 tgt.setComment(src.getComment()); 063 if (src.hasBase()) 064 tgt.setBaseElement(Reference30_50.convertReferenceToCanonical(src.getBase())); 065 for (org.hl7.fhir.dstu3.model.CodeType t : src.getResource()) tgt.getResource().add(new Enumeration<VersionIndependentResourceTypesAll>(new VersionIndependentResourceTypesAllEnumFactory(), Code30_50.convertCode(t))); 066 if (src.hasSystem()) 067 tgt.setSystemElement(Boolean30_50.convertBoolean(src.getSystemElement())); 068 if (src.hasType()) 069 tgt.setTypeElement(Boolean30_50.convertBoolean(src.getTypeElement())); 070 if (src.hasInstance()) 071 tgt.setInstanceElement(Boolean30_50.convertBoolean(src.getInstanceElement())); 072 for (org.hl7.fhir.dstu3.model.OperationDefinition.OperationDefinitionParameterComponent t : src.getParameter()) 073 tgt.addParameter(convertOperationDefinitionParameterComponent(t)); 074 for (org.hl7.fhir.dstu3.model.OperationDefinition.OperationDefinitionOverloadComponent t : src.getOverload()) 075 tgt.addOverload(convertOperationDefinitionOverloadComponent(t)); 076 return tgt; 077 } 078 079 public static org.hl7.fhir.dstu3.model.OperationDefinition convertOperationDefinition(org.hl7.fhir.r5.model.OperationDefinition src) throws FHIRException { 080 if (src == null) 081 return null; 082 org.hl7.fhir.dstu3.model.OperationDefinition tgt = new org.hl7.fhir.dstu3.model.OperationDefinition(); 083 ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyDomainResource(src, tgt); 084 if (src.hasUrl()) 085 tgt.setUrlElement(Uri30_50.convertUri(src.getUrlElement())); 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.hasStatus()) 091 tgt.setStatusElement(Enumerations30_50.convertPublicationStatus(src.getStatusElement())); 092 if (src.hasKind()) 093 tgt.setKindElement(convertOperationKind(src.getKindElement())); 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.r5.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.r5.model.UsageContext t : src.getUseContext()) 105 tgt.addUseContext(UsageContext30_50.convertUsageContext(t)); 106 for (org.hl7.fhir.r5.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.hasAffectsState()) 111 tgt.setIdempotent(!src.getAffectsState()); 112 if (src.hasCode()) 113 tgt.setCodeElement(Code30_50.convertCode(src.getCodeElement())); 114 if (src.hasComment()) 115 tgt.setComment(src.getComment()); 116 if (src.hasBase()) 117 tgt.setBase(Reference30_50.convertCanonicalToReference(src.getBaseElement())); 118 for (Enumeration<VersionIndependentResourceTypesAll> t : src.getResource()) tgt.getResource().add(Code30_50.convertCode(t.getCodeType())); 119 if (src.hasSystem()) 120 tgt.setSystemElement(Boolean30_50.convertBoolean(src.getSystemElement())); 121 if (src.hasType()) 122 tgt.setTypeElement(Boolean30_50.convertBoolean(src.getTypeElement())); 123 if (src.hasInstance()) 124 tgt.setInstanceElement(Boolean30_50.convertBoolean(src.getInstanceElement())); 125 for (org.hl7.fhir.r5.model.OperationDefinition.OperationDefinitionParameterComponent t : src.getParameter()) 126 tgt.addParameter(convertOperationDefinitionParameterComponent(t)); 127 for (org.hl7.fhir.r5.model.OperationDefinition.OperationDefinitionOverloadComponent t : src.getOverload()) 128 tgt.addOverload(convertOperationDefinitionOverloadComponent(t)); 129 return tgt; 130 } 131 132 public static org.hl7.fhir.dstu3.model.OperationDefinition.OperationDefinitionOverloadComponent convertOperationDefinitionOverloadComponent(org.hl7.fhir.r5.model.OperationDefinition.OperationDefinitionOverloadComponent src) throws FHIRException { 133 if (src == null) 134 return null; 135 org.hl7.fhir.dstu3.model.OperationDefinition.OperationDefinitionOverloadComponent tgt = new org.hl7.fhir.dstu3.model.OperationDefinition.OperationDefinitionOverloadComponent(); 136 ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyBackboneElement(src,tgt); 137 for (org.hl7.fhir.r5.model.StringType t : src.getParameterName()) tgt.addParameterName(t.getValue()); 138 if (src.hasComment()) 139 tgt.setCommentElement(String30_50.convertString(src.getCommentElement())); 140 return tgt; 141 } 142 143 public static org.hl7.fhir.r5.model.OperationDefinition.OperationDefinitionOverloadComponent convertOperationDefinitionOverloadComponent(org.hl7.fhir.dstu3.model.OperationDefinition.OperationDefinitionOverloadComponent src) throws FHIRException { 144 if (src == null) 145 return null; 146 org.hl7.fhir.r5.model.OperationDefinition.OperationDefinitionOverloadComponent tgt = new org.hl7.fhir.r5.model.OperationDefinition.OperationDefinitionOverloadComponent(); 147 ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyBackboneElement(src,tgt); 148 for (org.hl7.fhir.dstu3.model.StringType t : src.getParameterName()) tgt.addParameterName(t.getValue()); 149 if (src.hasComment()) 150 tgt.setCommentElement(String30_50.convertString(src.getCommentElement())); 151 return tgt; 152 } 153 154 public static org.hl7.fhir.r5.model.OperationDefinition.OperationDefinitionParameterBindingComponent convertOperationDefinitionParameterBindingComponent(org.hl7.fhir.dstu3.model.OperationDefinition.OperationDefinitionParameterBindingComponent src) throws FHIRException { 155 if (src == null) 156 return null; 157 org.hl7.fhir.r5.model.OperationDefinition.OperationDefinitionParameterBindingComponent tgt = new org.hl7.fhir.r5.model.OperationDefinition.OperationDefinitionParameterBindingComponent(); 158 ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyBackboneElement(src,tgt); 159 if (src.hasStrength()) 160 tgt.setStrengthElement(Enumerations30_50.convertBindingStrength(src.getStrengthElement())); 161 if (src.hasValueSet()) { 162 DataType t = ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().convertType(src.getValueSet()); 163 if (t instanceof org.hl7.fhir.r5.model.Reference) 164 tgt.setValueSet(((org.hl7.fhir.r5.model.Reference) t).getReference()); 165 else 166 tgt.setValueSet(t.primitiveValue()); 167 tgt.setValueSet(VersionConvertorConstants.refToVS(tgt.getValueSet())); 168 } 169 return tgt; 170 } 171 172 public static org.hl7.fhir.dstu3.model.OperationDefinition.OperationDefinitionParameterBindingComponent convertOperationDefinitionParameterBindingComponent(org.hl7.fhir.r5.model.OperationDefinition.OperationDefinitionParameterBindingComponent src) throws FHIRException { 173 if (src == null) 174 return null; 175 org.hl7.fhir.dstu3.model.OperationDefinition.OperationDefinitionParameterBindingComponent tgt = new org.hl7.fhir.dstu3.model.OperationDefinition.OperationDefinitionParameterBindingComponent(); 176 ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyBackboneElement(src,tgt); 177 if (src.hasStrength()) 178 tgt.setStrengthElement(Enumerations30_50.convertBindingStrength(src.getStrengthElement())); 179 if (src.hasValueSet()) { 180 String vsr = VersionConvertorConstants.vsToRef(src.getValueSet()); 181 if (vsr != null) 182 tgt.setValueSet(new org.hl7.fhir.dstu3.model.UriType(vsr)); 183 else 184 tgt.setValueSet(new org.hl7.fhir.dstu3.model.Reference(src.getValueSet())); 185 } 186 return tgt; 187 } 188 189 public static org.hl7.fhir.r5.model.OperationDefinition.OperationDefinitionParameterComponent convertOperationDefinitionParameterComponent(org.hl7.fhir.dstu3.model.OperationDefinition.OperationDefinitionParameterComponent src) throws FHIRException { 190 if (src == null) 191 return null; 192 org.hl7.fhir.r5.model.OperationDefinition.OperationDefinitionParameterComponent tgt = new org.hl7.fhir.r5.model.OperationDefinition.OperationDefinitionParameterComponent(); 193 ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyBackboneElement(src,tgt); 194 if (src.hasName()) 195 tgt.setNameElement(Code30_50.convertCode(src.getNameElement())); 196 if (src.hasUse()) 197 tgt.setUseElement(convertOperationParameterUse(src.getUseElement())); 198 if (src.hasMin()) 199 tgt.setMinElement(Integer30_50.convertInteger(src.getMinElement())); 200 if (src.hasMax()) 201 tgt.setMaxElement(String30_50.convertString(src.getMaxElement())); 202 if (src.hasDocumentation()) 203 tgt.setDocumentationElement(String30_50.convertStringToMarkdown(src.getDocumentationElement())); 204 if (src.hasType()) 205 tgt.setType(Enumerations.FHIRTypes.fromCode(src.getType())); 206 if (src.hasSearchType()) 207 tgt.setSearchTypeElement(Enumerations30_50.convertSearchParamType(src.getSearchTypeElement())); 208 if (src.hasProfile()) 209 tgt.addTargetProfile(src.getProfile().getReference()); 210 if (src.hasBinding()) 211 tgt.setBinding(convertOperationDefinitionParameterBindingComponent(src.getBinding())); 212 for (org.hl7.fhir.dstu3.model.OperationDefinition.OperationDefinitionParameterComponent t : src.getPart()) 213 tgt.addPart(convertOperationDefinitionParameterComponent(t)); 214 return tgt; 215 } 216 217 public static org.hl7.fhir.dstu3.model.OperationDefinition.OperationDefinitionParameterComponent convertOperationDefinitionParameterComponent(org.hl7.fhir.r5.model.OperationDefinition.OperationDefinitionParameterComponent src) throws FHIRException { 218 if (src == null) 219 return null; 220 org.hl7.fhir.dstu3.model.OperationDefinition.OperationDefinitionParameterComponent tgt = new org.hl7.fhir.dstu3.model.OperationDefinition.OperationDefinitionParameterComponent(); 221 ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyBackboneElement(src,tgt); 222 if (src.hasName()) 223 tgt.setNameElement(Code30_50.convertCode(src.getNameElement())); 224 if (src.hasUse()) 225 tgt.setUseElement(convertOperationParameterUse(src.getUseElement())); 226 if (src.hasMin()) 227 tgt.setMinElement(Integer30_50.convertInteger(src.getMinElement())); 228 if (src.hasMax()) 229 tgt.setMaxElement(String30_50.convertString(src.getMaxElement())); 230 if (src.hasDocumentation()) 231 tgt.setDocumentationElement(String30_50.convertString(src.getDocumentationElement())); 232 if (src.hasType()) 233 tgt.setType(src.getType().toCode()); 234 if (src.hasSearchType()) 235 tgt.setSearchTypeElement(Enumerations30_50.convertSearchParamType(src.getSearchTypeElement())); 236 for (org.hl7.fhir.r5.model.UriType t : src.getTargetProfile()) 237 tgt.setProfile(new org.hl7.fhir.dstu3.model.Reference(t.getValue())); 238 if (src.hasBinding()) 239 tgt.setBinding(convertOperationDefinitionParameterBindingComponent(src.getBinding())); 240 for (org.hl7.fhir.r5.model.OperationDefinition.OperationDefinitionParameterComponent t : src.getPart()) 241 tgt.addPart(convertOperationDefinitionParameterComponent(t)); 242 return tgt; 243 } 244 245 static public org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.OperationDefinition.OperationKind> convertOperationKind(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.OperationDefinition.OperationKind> src) throws FHIRException { 246 if (src == null || src.isEmpty()) 247 return null; 248 org.hl7.fhir.dstu3.model.Enumeration<OperationDefinition.OperationKind> tgt = new org.hl7.fhir.dstu3.model.Enumeration<>(new OperationDefinition.OperationKindEnumFactory()); 249 ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt); 250 if (src.getValue() == null) { 251 tgt.setValue(null); 252 } else { 253 switch (src.getValue()) { 254 case OPERATION: 255 tgt.setValue(OperationDefinition.OperationKind.OPERATION); 256 break; 257 case QUERY: 258 tgt.setValue(OperationDefinition.OperationKind.QUERY); 259 break; 260 default: 261 tgt.setValue(OperationDefinition.OperationKind.NULL); 262 break; 263 } 264 } 265 return tgt; 266 } 267 268 static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.OperationDefinition.OperationKind> convertOperationKind(org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.OperationDefinition.OperationKind> src) throws FHIRException { 269 if (src == null || src.isEmpty()) 270 return null; 271 Enumeration<org.hl7.fhir.r5.model.OperationDefinition.OperationKind> tgt = new Enumeration<>(new org.hl7.fhir.r5.model.OperationDefinition.OperationKindEnumFactory()); 272 ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt); 273 if (src.getValue() == null) { 274 tgt.setValue(null); 275 } else { 276 switch (src.getValue()) { 277 case OPERATION: 278 tgt.setValue(org.hl7.fhir.r5.model.OperationDefinition.OperationKind.OPERATION); 279 break; 280 case QUERY: 281 tgt.setValue(org.hl7.fhir.r5.model.OperationDefinition.OperationKind.QUERY); 282 break; 283 default: 284 tgt.setValue(org.hl7.fhir.r5.model.OperationDefinition.OperationKind.NULL); 285 break; 286 } 287 } 288 return tgt; 289 } 290 291 static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Enumerations.OperationParameterUse> convertOperationParameterUse(org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.OperationDefinition.OperationParameterUse> src) throws FHIRException { 292 if (src == null || src.isEmpty()) 293 return null; 294 Enumeration<Enumerations.OperationParameterUse> tgt = new Enumeration<>(new Enumerations.OperationParameterUseEnumFactory()); 295 ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt); 296 if (src.getValue() == null) { 297 tgt.setValue(null); 298 } else { 299 switch (src.getValue()) { 300 case IN: 301 tgt.setValue(Enumerations.OperationParameterUse.IN); 302 break; 303 case OUT: 304 tgt.setValue(Enumerations.OperationParameterUse.OUT); 305 break; 306 default: 307 tgt.setValue(Enumerations.OperationParameterUse.NULL); 308 break; 309 } 310 } 311 return tgt; 312 } 313 314 static public org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.OperationDefinition.OperationParameterUse> convertOperationParameterUse(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Enumerations.OperationParameterUse> src) throws FHIRException { 315 if (src == null || src.isEmpty()) 316 return null; 317 org.hl7.fhir.dstu3.model.Enumeration<OperationDefinition.OperationParameterUse> tgt = new org.hl7.fhir.dstu3.model.Enumeration<>(new OperationDefinition.OperationParameterUseEnumFactory()); 318 ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt); 319 if (src.getValue() == null) { 320 tgt.setValue(null); 321 } else { 322 switch (src.getValue()) { 323 case IN: 324 tgt.setValue(OperationDefinition.OperationParameterUse.IN); 325 break; 326 case OUT: 327 tgt.setValue(OperationDefinition.OperationParameterUse.OUT); 328 break; 329 default: 330 tgt.setValue(OperationDefinition.OperationParameterUse.NULL); 331 break; 332 } 333 } 334 return tgt; 335 } 336}