001package org.hl7.fhir.convertors.conv10_50.datatypes10_50; 002 003import org.hl7.fhir.convertors.VersionConvertorConstants; 004import org.hl7.fhir.convertors.context.ConversionContext10_50; 005import org.hl7.fhir.convertors.conv10_50.datatypes10_50.complextypes10_50.Coding10_50; 006import org.hl7.fhir.convertors.conv10_50.datatypes10_50.primitivetypes10_50.*; 007import org.hl7.fhir.convertors.conv10_50.resources10_50.Enumerations10_50; 008import org.hl7.fhir.dstu2.utils.ToolingExtensions; 009import org.hl7.fhir.exceptions.FHIRException; 010import org.hl7.fhir.r5.conformance.ProfileUtilities; 011import org.hl7.fhir.r5.model.ElementDefinition; 012import org.hl7.fhir.utilities.Utilities; 013 014import java.util.List; 015import java.util.stream.Collectors; 016 017public class ElementDefinition10_50 { 018 public static org.hl7.fhir.r5.model.ElementDefinition convertElementDefinition(org.hl7.fhir.dstu2.model.ElementDefinition src, List<String> slicePaths, List<org.hl7.fhir.dstu2.model.ElementDefinition> context, int pos) throws FHIRException { 019 if (src == null || src.isEmpty()) return null; 020 org.hl7.fhir.r5.model.ElementDefinition tgt = new org.hl7.fhir.r5.model.ElementDefinition(); 021 ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().copyElement(src, tgt); 022 if (src.hasPathElement()) tgt.setPathElement(String10_50.convertString(src.getPathElement())); 023 tgt.setRepresentation(src.getRepresentation().stream().map(ElementDefinition10_50::convertPropertyRepresentation).collect(Collectors.toList())); 024 if (src.hasName()) { 025 if (slicePaths.contains(src.getPath())) tgt.setSliceNameElement(String10_50.convertString(src.getNameElement())); 026 if (src.hasNameElement()) tgt.setIdElement(String10_50.convertString(src.getNameElement())); 027 } 028 if (src.hasLabel()) tgt.setLabelElement(String10_50.convertString(src.getLabelElement())); 029 for (org.hl7.fhir.dstu2.model.Coding t : src.getCode()) tgt.addCode(Coding10_50.convertCoding(t)); 030 if (src.hasSlicing()) tgt.setSlicing(convertElementDefinitionSlicingComponent(src.getSlicing(), context, pos)); 031 if (src.hasShort()) tgt.setShortElement(String10_50.convertString(src.getShortElement())); 032 if (src.hasDefinition()) tgt.setDefinitionElement(MarkDown10_50.convertMarkdown(src.getDefinitionElement())); 033 if (src.hasComments()) tgt.setCommentElement(MarkDown10_50.convertMarkdown(src.getCommentsElement())); 034 if (src.hasRequirements()) tgt.setRequirementsElement(MarkDown10_50.convertMarkdown(src.getRequirementsElement())); 035 for (org.hl7.fhir.dstu2.model.StringType t : src.getAlias()) tgt.addAlias(t.getValue()); 036 if (src.hasMin()) tgt.setMin(src.getMin()); 037 if (src.hasMax()) tgt.setMaxElement(String10_50.convertString(src.getMaxElement())); 038 if (src.hasBase()) tgt.setBase(convertElementDefinitionBaseComponent(src.getBase())); 039 if (src.hasNameReference()) tgt.setContentReference("#" + src.getNameReference()); 040 for (org.hl7.fhir.dstu2.model.ElementDefinition.TypeRefComponent t : src.getType()) 041 convertElementDefinitionTypeComponent(t, tgt.getType()); 042 if (src.hasDefaultValue()) 043 tgt.setDefaultValue(ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().convertType(src.getDefaultValue())); 044 if (src.hasMeaningWhenMissing()) 045 tgt.setMeaningWhenMissingElement(MarkDown10_50.convertMarkdown(src.getMeaningWhenMissingElement())); 046 if (src.hasFixed()) 047 tgt.setFixed(ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().convertType(src.getFixed())); 048 if (src.hasPattern()) 049 tgt.setPattern(ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().convertType(src.getPattern())); 050 if (src.hasExample()) 051 tgt.addExample().setLabel("General").setValue(ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().convertType(src.getExample())); 052 if (src.hasMinValue()) 053 tgt.setMinValue(ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().convertType(src.getMinValue())); 054 if (src.hasMaxValue()) 055 tgt.setMaxValue(ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().convertType(src.getMaxValue())); 056 if (src.hasMaxLength()) tgt.setMaxLengthElement(Integer10_50.convertInteger(src.getMaxLengthElement())); 057 for (org.hl7.fhir.dstu2.model.IdType t : src.getCondition()) tgt.addCondition(t.getValue()); 058 for (org.hl7.fhir.dstu2.model.ElementDefinition.ElementDefinitionConstraintComponent t : src.getConstraint()) 059 tgt.addConstraint(convertElementDefinitionConstraintComponent(t)); 060 if (src.hasMustSupport()) tgt.setMustSupportElement(Boolean10_50.convertBoolean(src.getMustSupportElement())); 061 if (src.hasIsModifier()) tgt.setIsModifierElement(Boolean10_50.convertBoolean(src.getIsModifierElement())); 062 if (tgt.getIsModifier()) { 063 String reason = org.hl7.fhir.dstu2.utils.ToolingExtensions.readStringExtension(src, VersionConvertorConstants.MODIFIER_REASON_EXTENSION); 064 if (Utilities.noString(reason)) reason = VersionConvertorConstants.MODIFIER_REASON_LEGACY; 065 tgt.setIsModifierReason(reason); 066 } 067 if (src.hasIsSummary()) tgt.setIsSummaryElement(Boolean10_50.convertBoolean(src.getIsSummaryElement())); 068 if (src.hasBinding()) tgt.setBinding(convertElementDefinitionBindingComponent(src.getBinding())); 069 for (org.hl7.fhir.dstu2.model.ElementDefinition.ElementDefinitionMappingComponent t : src.getMapping()) 070 tgt.addMapping(convertElementDefinitionMappingComponent(t)); 071 if (!tgt.hasId()) tgt.setId(tgt.getPath()); 072 return tgt; 073 } 074 075 public static org.hl7.fhir.dstu2.model.ElementDefinition convertElementDefinition(org.hl7.fhir.r5.model.ElementDefinition src) throws FHIRException { 076 if (src == null || src.isEmpty()) return null; 077 org.hl7.fhir.dstu2.model.ElementDefinition tgt = new org.hl7.fhir.dstu2.model.ElementDefinition(); 078 ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().copyElement(src, tgt); 079 if (src.hasPathElement()) tgt.setPathElement(String10_50.convertString(src.getPathElement())); 080 tgt.setRepresentation(src.getRepresentation().stream().map(ElementDefinition10_50::convertPropertyRepresentation).collect(Collectors.toList())); 081 if (src.hasSliceName()) tgt.setNameElement(String10_50.convertString(src.getSliceNameElement())); 082 else tgt.setNameElement(String10_50.convertString(src.getIdElement())); 083 if (src.hasLabelElement()) tgt.setLabelElement(String10_50.convertString(src.getLabelElement())); 084 for (org.hl7.fhir.r5.model.Coding t : src.getCode()) tgt.addCode(Coding10_50.convertCoding(t)); 085 if (src.hasSlicing()) tgt.setSlicing(convertElementDefinitionSlicingComponent(src.getSlicing())); 086 if (src.hasShortElement()) tgt.setShortElement(String10_50.convertString(src.getShortElement())); 087 if (src.hasDefinitionElement()) tgt.setDefinitionElement(MarkDown10_50.convertMarkdown(src.getDefinitionElement())); 088 if (src.hasCommentElement()) tgt.setCommentsElement(MarkDown10_50.convertMarkdown(src.getCommentElement())); 089 if (src.hasRequirementsElement()) 090 tgt.setRequirementsElement(MarkDown10_50.convertMarkdown(src.getRequirementsElement())); 091 for (org.hl7.fhir.r5.model.StringType t : src.getAlias()) tgt.addAlias(t.getValue()); 092 tgt.setMin(src.getMin()); 093 if (src.hasMaxElement()) tgt.setMaxElement(String10_50.convertString(src.getMaxElement())); 094 if (src.hasBase()) tgt.setBase(convertElementDefinitionBaseComponent(src.getBase())); 095 if (src.hasContentReference()) tgt.setNameReference(src.getContentReference().substring(1)); 096 for (org.hl7.fhir.r5.model.ElementDefinition.TypeRefComponent t : src.getType()) 097 convertElementDefinitionTypeComponent(t, tgt.getType()); 098 if (src.hasDefaultValue()) 099 tgt.setDefaultValue(ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().convertType(src.getDefaultValue())); 100 if (src.hasMeaningWhenMissingElement()) 101 tgt.setMeaningWhenMissingElement(MarkDown10_50.convertMarkdown(src.getMeaningWhenMissingElement())); 102 if (src.hasFixed()) 103 tgt.setFixed(ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().convertType(src.getFixed())); 104 if (src.hasPattern()) 105 tgt.setPattern(ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().convertType(src.getPattern())); 106 if (src.hasExample()) 107 tgt.setExample(ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().convertType(src.getExampleFirstRep().getValue())); 108 if (src.hasMinValue()) 109 tgt.setMinValue(ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().convertType(src.getMinValue())); 110 if (src.hasMaxValue()) 111 tgt.setMaxValue(ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().convertType(src.getMaxValue())); 112 if (src.hasMaxLengthElement()) tgt.setMaxLengthElement(Integer10_50.convertInteger(src.getMaxLengthElement())); 113 for (org.hl7.fhir.r5.model.IdType t : src.getCondition()) tgt.addCondition(t.getValue()); 114 for (org.hl7.fhir.r5.model.ElementDefinition.ElementDefinitionConstraintComponent t : src.getConstraint()) 115 tgt.addConstraint(convertElementDefinitionConstraintComponent(t)); 116 if (src.hasMustSupportElement()) 117 tgt.setMustSupportElement(Boolean10_50.convertBoolean(src.getMustSupportElement())); 118 if (src.hasIsModifierElement()) tgt.setIsModifierElement(Boolean10_50.convertBoolean(src.getIsModifierElement())); 119 if (src.hasIsModifierReason() && !VersionConvertorConstants.MODIFIER_REASON_LEGACY.equals(src.getIsModifierReason())) 120 org.hl7.fhir.dstu2.utils.ToolingExtensions.setStringExtension(tgt, VersionConvertorConstants.MODIFIER_REASON_EXTENSION, src.getIsModifierReason()); 121 if (src.hasIsSummaryElement()) tgt.setIsSummaryElement(Boolean10_50.convertBoolean(src.getIsSummaryElement())); 122 if (src.hasBinding()) tgt.setBinding(convertElementDefinitionBindingComponent(src.getBinding())); 123 for (org.hl7.fhir.r5.model.ElementDefinition.ElementDefinitionMappingComponent t : src.getMapping()) 124 tgt.addMapping(convertElementDefinitionMappingComponent(t)); 125 return tgt; 126 } 127 128 static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.ElementDefinition.PropertyRepresentation> convertPropertyRepresentation(org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.ElementDefinition.PropertyRepresentation> src) throws FHIRException { 129 if (src == null || src.isEmpty()) return null; 130 org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.ElementDefinition.PropertyRepresentation> tgt = new org.hl7.fhir.r5.model.Enumeration<>(new org.hl7.fhir.r5.model.ElementDefinition.PropertyRepresentationEnumFactory()); 131 ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().copyElement(src, tgt); 132 if (src.getValue() == null) { 133 tgt.setValue(org.hl7.fhir.r5.model.ElementDefinition.PropertyRepresentation.NULL); 134 } else { 135 switch (src.getValue()) { 136 case XMLATTR: 137 tgt.setValue(org.hl7.fhir.r5.model.ElementDefinition.PropertyRepresentation.XMLATTR); 138 break; 139 default: 140 tgt.setValue(org.hl7.fhir.r5.model.ElementDefinition.PropertyRepresentation.NULL); 141 break; 142 } 143 } 144 return tgt; 145 } 146 147 static public org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.ElementDefinition.PropertyRepresentation> convertPropertyRepresentation(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.ElementDefinition.PropertyRepresentation> src) throws FHIRException { 148 if (src == null || src.isEmpty()) return null; 149 org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.ElementDefinition.PropertyRepresentation> tgt = new org.hl7.fhir.dstu2.model.Enumeration<>(new org.hl7.fhir.dstu2.model.ElementDefinition.PropertyRepresentationEnumFactory()); 150 ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().copyElement(src, tgt); 151 if (src.getValue() == null) { 152 tgt.setValue(org.hl7.fhir.dstu2.model.ElementDefinition.PropertyRepresentation.NULL); 153 } else { 154 switch (src.getValue()) { 155 case XMLATTR: 156 tgt.setValue(org.hl7.fhir.dstu2.model.ElementDefinition.PropertyRepresentation.XMLATTR); 157 break; 158 default: 159 tgt.setValue(org.hl7.fhir.dstu2.model.ElementDefinition.PropertyRepresentation.NULL); 160 break; 161 } 162 } 163 return tgt; 164 } 165 166 public static org.hl7.fhir.r5.model.ElementDefinition.ElementDefinitionSlicingComponent convertElementDefinitionSlicingComponent(org.hl7.fhir.dstu2.model.ElementDefinition.ElementDefinitionSlicingComponent src, List<org.hl7.fhir.dstu2.model.ElementDefinition> context, int pos) throws FHIRException { 167 if (src == null || src.isEmpty()) return null; 168 org.hl7.fhir.r5.model.ElementDefinition.ElementDefinitionSlicingComponent tgt = new org.hl7.fhir.r5.model.ElementDefinition.ElementDefinitionSlicingComponent(); 169 ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().copyElement(src, tgt); 170 org.hl7.fhir.dstu2.model.ElementDefinition slicingElement = context.get(pos); 171 for (org.hl7.fhir.dstu2.model.StringType t : src.getDiscriminator()) { 172 boolean isExists = false; 173 if (!t.asStringValue().contains("@")) { 174 int slices = 0; 175 boolean existsSlicePresent = false; 176 boolean notExistsSlicePresent = false; 177 String existsPath = slicingElement.getPath() + "." + t.asStringValue(); 178 for (int i = pos + 1; i < context.size(); i++) { 179 org.hl7.fhir.dstu2.model.ElementDefinition e = context.get(i); 180 if (e.getPath().equals(slicingElement.getPath())) slices++; 181 else if (!e.getPath().startsWith(slicingElement.getPath() + ".")) break; 182 else if (e.getPath().equals(existsPath)) { 183 if (e.hasMin() && e.getMin() > 0) existsSlicePresent = true; 184 else if (e.hasMax() && e.getMax().equals("0")) notExistsSlicePresent = true; 185 } 186 } 187 isExists = (slices == 2 && existsSlicePresent && notExistsSlicePresent) || (slices == 1 && existsSlicePresent != notExistsSlicePresent); 188 } 189 tgt.addDiscriminator(ProfileUtilities.interpretR2Discriminator(t.getValue(), isExists)); 190 } 191 if (src.hasDescriptionElement()) tgt.setDescriptionElement(String10_50.convertString(src.getDescriptionElement())); 192 if (src.hasOrderedElement()) tgt.setOrderedElement(Boolean10_50.convertBoolean(src.getOrderedElement())); 193 if (src.hasRules()) tgt.setRulesElement(convertSlicingRules(src.getRulesElement())); 194 return tgt; 195 } 196 197 public static org.hl7.fhir.dstu2.model.ElementDefinition.ElementDefinitionSlicingComponent convertElementDefinitionSlicingComponent(org.hl7.fhir.r5.model.ElementDefinition.ElementDefinitionSlicingComponent src) throws FHIRException { 198 if (src == null || src.isEmpty()) return null; 199 org.hl7.fhir.dstu2.model.ElementDefinition.ElementDefinitionSlicingComponent tgt = new org.hl7.fhir.dstu2.model.ElementDefinition.ElementDefinitionSlicingComponent(); 200 ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().copyElement(src, tgt); 201 for (ElementDefinition.ElementDefinitionSlicingDiscriminatorComponent t : src.getDiscriminator()) 202 tgt.addDiscriminator(ProfileUtilities.buildR2Discriminator(t)); 203 if (src.hasDescriptionElement()) tgt.setDescriptionElement(String10_50.convertString(src.getDescriptionElement())); 204 if (src.hasOrderedElement()) tgt.setOrderedElement(Boolean10_50.convertBoolean(src.getOrderedElement())); 205 if (src.hasRules()) tgt.setRulesElement(convertSlicingRules(src.getRulesElement())); 206 return tgt; 207 } 208 209 static public org.hl7.fhir.r5.model.Enumeration<ElementDefinition.SlicingRules> convertSlicingRules(org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.ElementDefinition.SlicingRules> src) throws FHIRException { 210 if (src == null || src.isEmpty()) return null; 211 org.hl7.fhir.r5.model.Enumeration<ElementDefinition.SlicingRules> tgt = new org.hl7.fhir.r5.model.Enumeration<>(new ElementDefinition.SlicingRulesEnumFactory()); 212 ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().copyElement(src, tgt); 213 if (src.getValue() == null) { 214 tgt.setValue(ElementDefinition.SlicingRules.NULL); 215 } else { 216 switch (src.getValue()) { 217 case CLOSED: 218 tgt.setValue(ElementDefinition.SlicingRules.CLOSED); 219 break; 220 case OPEN: 221 tgt.setValue(ElementDefinition.SlicingRules.OPEN); 222 break; 223 case OPENATEND: 224 tgt.setValue(ElementDefinition.SlicingRules.OPENATEND); 225 break; 226 default: 227 tgt.setValue(ElementDefinition.SlicingRules.NULL); 228 break; 229 } 230 } 231 return tgt; 232 } 233 234 static public org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.ElementDefinition.SlicingRules> convertSlicingRules(org.hl7.fhir.r5.model.Enumeration<ElementDefinition.SlicingRules> src) throws FHIRException { 235 if (src == null || src.isEmpty()) return null; 236 org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.ElementDefinition.SlicingRules> tgt = new org.hl7.fhir.dstu2.model.Enumeration<>(new org.hl7.fhir.dstu2.model.ElementDefinition.SlicingRulesEnumFactory()); 237 ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().copyElement(src, tgt); 238 if (src.getValue() == null) { 239 tgt.setValue(org.hl7.fhir.dstu2.model.ElementDefinition.SlicingRules.NULL); 240 } else { 241 switch (src.getValue()) { 242 case CLOSED: 243 tgt.setValue(org.hl7.fhir.dstu2.model.ElementDefinition.SlicingRules.CLOSED); 244 break; 245 case OPEN: 246 tgt.setValue(org.hl7.fhir.dstu2.model.ElementDefinition.SlicingRules.OPEN); 247 break; 248 case OPENATEND: 249 tgt.setValue(org.hl7.fhir.dstu2.model.ElementDefinition.SlicingRules.OPENATEND); 250 break; 251 default: 252 tgt.setValue(org.hl7.fhir.dstu2.model.ElementDefinition.SlicingRules.NULL); 253 break; 254 } 255 } 256 return tgt; 257 } 258 259 public static ElementDefinition.ElementDefinitionBaseComponent convertElementDefinitionBaseComponent(org.hl7.fhir.dstu2.model.ElementDefinition.ElementDefinitionBaseComponent src) throws FHIRException { 260 if (src == null || src.isEmpty()) return null; 261 ElementDefinition.ElementDefinitionBaseComponent tgt = new ElementDefinition.ElementDefinitionBaseComponent(); 262 ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().copyElement(src, tgt); 263 if (src.hasPathElement()) tgt.setPathElement(String10_50.convertString(src.getPathElement())); 264 if (src.hasMin()) tgt.setMin(src.getMin()); 265 if (src.hasMaxElement()) tgt.setMaxElement(String10_50.convertString(src.getMaxElement())); 266 return tgt; 267 } 268 269 public static org.hl7.fhir.dstu2.model.ElementDefinition.ElementDefinitionBaseComponent convertElementDefinitionBaseComponent(ElementDefinition.ElementDefinitionBaseComponent src) throws FHIRException { 270 if (src == null || src.isEmpty()) return null; 271 org.hl7.fhir.dstu2.model.ElementDefinition.ElementDefinitionBaseComponent tgt = new org.hl7.fhir.dstu2.model.ElementDefinition.ElementDefinitionBaseComponent(); 272 ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().copyElement(src, tgt); 273 if (src.hasPathElement()) tgt.setPathElement(String10_50.convertString(src.getPathElement())); 274 if (src.hasMin()) tgt.setMin(src.getMin()); 275 if (src.hasMaxElement()) tgt.setMaxElement(String10_50.convertString(src.getMaxElement())); 276 return tgt; 277 } 278 279 public static void convertElementDefinitionTypeComponent(org.hl7.fhir.dstu2.model.ElementDefinition.TypeRefComponent src, List<ElementDefinition.TypeRefComponent> list) throws FHIRException { 280 if (src == null) return; 281 ElementDefinition.TypeRefComponent tgt = null; 282 for (ElementDefinition.TypeRefComponent t : list) 283 if (t.getCode().equals(src.getCode())) tgt = t; 284 if (tgt == null) { 285 tgt = new ElementDefinition.TypeRefComponent(); 286 list.add(tgt); 287 ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().copyElement(src, tgt); 288 tgt.setCode(src.getCode()); 289 } 290 if (tgt.hasTarget()) { 291 for (org.hl7.fhir.dstu2.model.UriType u : src.getProfile()) tgt.addTargetProfile(u.getValue()); 292 } else { 293 for (org.hl7.fhir.dstu2.model.UriType u : src.getProfile()) tgt.addProfile(u.getValue()); 294 } 295 for (org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.ElementDefinition.AggregationMode> t : src.getAggregation()) { 296 org.hl7.fhir.r5.model.Enumeration<ElementDefinition.AggregationMode> a = convertAggregationMode(t); 297 if (!tgt.hasAggregation(a.getValue())) 298 ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().copyElement(t, tgt.addAggregation(a.getValue())); 299 } 300 } 301 302 public static void convertElementDefinitionTypeComponent(ElementDefinition.TypeRefComponent src, List<org.hl7.fhir.dstu2.model.ElementDefinition.TypeRefComponent> list) throws FHIRException { 303 if (src == null) return; 304 org.hl7.fhir.dstu2.model.ElementDefinition.TypeRefComponent tgt = new org.hl7.fhir.dstu2.model.ElementDefinition.TypeRefComponent(); 305 ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().copyElement(src, tgt); 306 if (src.hasCode()) tgt.setCode(src.getCode()); 307 list.add(tgt); 308 if (src.hasTarget()) { 309 for (org.hl7.fhir.r5.model.UriType u : src.getTargetProfile()) { 310 tgt.addProfile(u.getValue()); 311 } 312 } else { 313 for (org.hl7.fhir.r5.model.UriType u : src.getProfile()) { 314 tgt.addProfile(u.getValue()); 315 } 316 } 317 } 318 319 static public org.hl7.fhir.r5.model.Enumeration<ElementDefinition.AggregationMode> convertAggregationMode(org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.ElementDefinition.AggregationMode> src) throws FHIRException { 320 if (src == null || src.isEmpty()) return null; 321 org.hl7.fhir.r5.model.Enumeration<ElementDefinition.AggregationMode> tgt = new org.hl7.fhir.r5.model.Enumeration<>(new ElementDefinition.AggregationModeEnumFactory()); 322 ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().copyElement(src, tgt); 323 if (src.getValue() == null) { 324 tgt.setValue(ElementDefinition.AggregationMode.NULL); 325 } else { 326 switch (src.getValue()) { 327 case CONTAINED: 328 tgt.setValue(ElementDefinition.AggregationMode.CONTAINED); 329 break; 330 case REFERENCED: 331 tgt.setValue(ElementDefinition.AggregationMode.REFERENCED); 332 break; 333 case BUNDLED: 334 tgt.setValue(ElementDefinition.AggregationMode.BUNDLED); 335 break; 336 default: 337 tgt.setValue(ElementDefinition.AggregationMode.NULL); 338 break; 339 } 340 } 341 return tgt; 342 } 343 344 static public org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.ElementDefinition.AggregationMode> convertAggregationMode(org.hl7.fhir.r5.model.Enumeration<ElementDefinition.AggregationMode> src) throws FHIRException { 345 if (src == null || src.isEmpty()) return null; 346 org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.ElementDefinition.AggregationMode> tgt = new org.hl7.fhir.dstu2.model.Enumeration<>(new org.hl7.fhir.dstu2.model.ElementDefinition.AggregationModeEnumFactory()); 347 ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().copyElement(src, tgt); 348 if (src.getValue() == null) { 349 tgt.setValue(org.hl7.fhir.dstu2.model.ElementDefinition.AggregationMode.NULL); 350 } else { 351 switch (src.getValue()) { 352 case CONTAINED: 353 tgt.setValue(org.hl7.fhir.dstu2.model.ElementDefinition.AggregationMode.CONTAINED); 354 break; 355 case REFERENCED: 356 tgt.setValue(org.hl7.fhir.dstu2.model.ElementDefinition.AggregationMode.REFERENCED); 357 break; 358 case BUNDLED: 359 tgt.setValue(org.hl7.fhir.dstu2.model.ElementDefinition.AggregationMode.BUNDLED); 360 break; 361 default: 362 tgt.setValue(org.hl7.fhir.dstu2.model.ElementDefinition.AggregationMode.NULL); 363 break; 364 } 365 } 366 return tgt; 367 } 368 369 public static ElementDefinition.ElementDefinitionConstraintComponent convertElementDefinitionConstraintComponent(org.hl7.fhir.dstu2.model.ElementDefinition.ElementDefinitionConstraintComponent src) throws FHIRException { 370 if (src == null || src.isEmpty()) return null; 371 ElementDefinition.ElementDefinitionConstraintComponent tgt = new ElementDefinition.ElementDefinitionConstraintComponent(); 372 ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().copyElement(src, tgt); 373 if (src.hasKeyElement()) tgt.setKeyElement(Id10_50.convertId(src.getKeyElement())); 374 if (src.hasRequirementsElement()) 375 tgt.setRequirementsElement(String10_50.convertString(src.getRequirementsElement())); 376 if (src.hasSeverity()) tgt.setSeverityElement(convertConstraintSeverity(src.getSeverityElement())); 377 if (src.hasHumanElement()) tgt.setHumanElement(String10_50.convertString(src.getHumanElement())); 378 tgt.setExpression(ToolingExtensions.readStringExtension(src, ToolingExtensions.EXT_EXPRESSION)); 379 if (src.hasXpathElement()) tgt.setXpathElement(String10_50.convertString(src.getXpathElement())); 380 return tgt; 381 } 382 383 public static org.hl7.fhir.dstu2.model.ElementDefinition.ElementDefinitionConstraintComponent convertElementDefinitionConstraintComponent(ElementDefinition.ElementDefinitionConstraintComponent src) throws FHIRException { 384 if (src == null || src.isEmpty()) return null; 385 org.hl7.fhir.dstu2.model.ElementDefinition.ElementDefinitionConstraintComponent tgt = new org.hl7.fhir.dstu2.model.ElementDefinition.ElementDefinitionConstraintComponent(); 386 ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().copyElement(src, tgt); 387 if (src.hasKeyElement()) tgt.setKeyElement(Id10_50.convertId(src.getKeyElement())); 388 if (src.hasRequirementsElement()) 389 tgt.setRequirementsElement(String10_50.convertString(src.getRequirementsElement())); 390 if (src.hasSeverity()) tgt.setSeverityElement(convertConstraintSeverity(src.getSeverityElement())); 391 if (src.hasHumanElement()) tgt.setHumanElement(String10_50.convertString(src.getHumanElement())); 392 if (src.hasExpression()) 393 ToolingExtensions.addStringExtension(tgt, ToolingExtensions.EXT_EXPRESSION, src.getExpression()); 394 if (src.hasXpathElement()) tgt.setXpathElement(String10_50.convertString(src.getXpathElement())); 395 return tgt; 396 } 397 398 static public org.hl7.fhir.r5.model.Enumeration<ElementDefinition.ConstraintSeverity> convertConstraintSeverity(org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.ElementDefinition.ConstraintSeverity> src) throws FHIRException { 399 if (src == null || src.isEmpty()) return null; 400 org.hl7.fhir.r5.model.Enumeration<ElementDefinition.ConstraintSeverity> tgt = new org.hl7.fhir.r5.model.Enumeration<>(new ElementDefinition.ConstraintSeverityEnumFactory()); 401 ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().copyElement(src, tgt); 402 if (src.getValue() == null) { 403 tgt.setValue(ElementDefinition.ConstraintSeverity.NULL); 404 } else { 405 switch (src.getValue()) { 406 case ERROR: 407 tgt.setValue(ElementDefinition.ConstraintSeverity.ERROR); 408 break; 409 case WARNING: 410 tgt.setValue(ElementDefinition.ConstraintSeverity.WARNING); 411 break; 412 default: 413 tgt.setValue(ElementDefinition.ConstraintSeverity.NULL); 414 break; 415 } 416 } 417 return tgt; 418 } 419 420 static public org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.ElementDefinition.ConstraintSeverity> convertConstraintSeverity(org.hl7.fhir.r5.model.Enumeration<ElementDefinition.ConstraintSeverity> src) throws FHIRException { 421 if (src == null || src.isEmpty()) return null; 422 org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.ElementDefinition.ConstraintSeverity> tgt = new org.hl7.fhir.dstu2.model.Enumeration<>(new org.hl7.fhir.dstu2.model.ElementDefinition.ConstraintSeverityEnumFactory()); 423 ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().copyElement(src, tgt); 424 if (src.getValue() == null) { 425 tgt.setValue(org.hl7.fhir.dstu2.model.ElementDefinition.ConstraintSeverity.NULL); 426 } else { 427 switch (src.getValue()) { 428 case ERROR: 429 tgt.setValue(org.hl7.fhir.dstu2.model.ElementDefinition.ConstraintSeverity.ERROR); 430 break; 431 case WARNING: 432 tgt.setValue(org.hl7.fhir.dstu2.model.ElementDefinition.ConstraintSeverity.WARNING); 433 break; 434 default: 435 tgt.setValue(org.hl7.fhir.dstu2.model.ElementDefinition.ConstraintSeverity.NULL); 436 break; 437 } 438 } 439 return tgt; 440 } 441 442 public static ElementDefinition.ElementDefinitionBindingComponent convertElementDefinitionBindingComponent(org.hl7.fhir.dstu2.model.ElementDefinition.ElementDefinitionBindingComponent src) throws FHIRException { 443 if (src == null || src.isEmpty()) return null; 444 ElementDefinition.ElementDefinitionBindingComponent tgt = new ElementDefinition.ElementDefinitionBindingComponent(); 445 ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().copyElement(src, tgt); 446 if (src.hasStrength()) tgt.setStrengthElement(Enumerations10_50.convertBindingStrength(src.getStrengthElement())); 447 if (src.hasDescriptionElement()) tgt.setDescriptionElement(String10_50.convertString(src.getDescriptionElement())); 448 if (src.hasValueSet()) { 449 org.hl7.fhir.r5.model.DataType vs = ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().convertType(src.getValueSet()); 450 if (vs != null) { 451 tgt.setValueSet(vs instanceof org.hl7.fhir.r5.model.Reference ? ((org.hl7.fhir.r5.model.Reference) vs).getReference() : vs.primitiveValue()); 452 tgt.setValueSet(VersionConvertorConstants.refToVS(tgt.getValueSet())); 453 } 454 } 455 return tgt; 456 } 457 458 public static org.hl7.fhir.dstu2.model.ElementDefinition.ElementDefinitionBindingComponent convertElementDefinitionBindingComponent(ElementDefinition.ElementDefinitionBindingComponent src) throws FHIRException { 459 if (src == null || src.isEmpty()) return null; 460 org.hl7.fhir.dstu2.model.ElementDefinition.ElementDefinitionBindingComponent tgt = new org.hl7.fhir.dstu2.model.ElementDefinition.ElementDefinitionBindingComponent(); 461 ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().copyElement(src, tgt); 462 if (src.hasStrength()) tgt.setStrengthElement(Enumerations10_50.convertBindingStrength(src.getStrengthElement())); 463 if (src.hasDescriptionElement()) tgt.setDescriptionElement(String10_50.convertString(src.getDescriptionElement())); 464 if (src.hasValueSet()) { 465 String vsr = VersionConvertorConstants.vsToRef(src.getValueSet()); 466 if (vsr != null) tgt.setValueSet(new org.hl7.fhir.dstu2.model.UriType(vsr)); 467 else tgt.setValueSet(new org.hl7.fhir.dstu2.model.Reference(src.getValueSet())); 468 } 469 return tgt; 470 } 471 472 public static ElementDefinition.ElementDefinitionMappingComponent convertElementDefinitionMappingComponent(org.hl7.fhir.dstu2.model.ElementDefinition.ElementDefinitionMappingComponent src) throws FHIRException { 473 if (src == null || src.isEmpty()) return null; 474 ElementDefinition.ElementDefinitionMappingComponent tgt = new ElementDefinition.ElementDefinitionMappingComponent(); 475 ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().copyElement(src, tgt); 476 if (src.hasIdentityElement()) tgt.setIdentityElement(Id10_50.convertId(src.getIdentityElement())); 477 if (src.hasLanguageElement()) tgt.setLanguageElement(Code10_50.convertCode(src.getLanguageElement())); 478 if (src.hasMapElement()) tgt.setMapElement(String10_50.convertString(src.getMapElement())); 479 return tgt; 480 } 481 482 public static org.hl7.fhir.dstu2.model.ElementDefinition.ElementDefinitionMappingComponent convertElementDefinitionMappingComponent(ElementDefinition.ElementDefinitionMappingComponent src) throws FHIRException { 483 if (src == null || src.isEmpty()) return null; 484 org.hl7.fhir.dstu2.model.ElementDefinition.ElementDefinitionMappingComponent tgt = new org.hl7.fhir.dstu2.model.ElementDefinition.ElementDefinitionMappingComponent(); 485 ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().copyElement(src, tgt); 486 if (src.hasIdentityElement()) tgt.setIdentityElement(Id10_50.convertId(src.getIdentityElement())); 487 if (src.hasLanguageElement()) tgt.setLanguageElement(Code10_50.convertCode(src.getLanguageElement())); 488 if (src.hasMapElement()) tgt.setMapElement(String10_50.convertString(src.getMapElement())); 489 return tgt; 490 } 491}