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