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