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