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