
001package org.hl7.fhir.convertors.conv30_50.datatypes30_50; 002 003import java.util.List; 004import java.util.stream.Collectors; 005 006import org.hl7.fhir.convertors.VersionConvertorConstants; 007import org.hl7.fhir.convertors.context.ConversionContext30_50; 008import org.hl7.fhir.convertors.context.ConversionContext30_50; 009import org.hl7.fhir.convertors.conv30_50.VersionConvertor_30_50; 010import org.hl7.fhir.convertors.conv30_50.datatypes30_50.complextypes30_50.Coding30_50; 011import org.hl7.fhir.convertors.conv30_50.datatypes30_50.primitivetypes30_50.Boolean30_50; 012import org.hl7.fhir.convertors.conv30_50.datatypes30_50.primitivetypes30_50.Code30_50; 013import org.hl7.fhir.convertors.conv30_50.datatypes30_50.primitivetypes30_50.Id30_50; 014import org.hl7.fhir.convertors.conv30_50.datatypes30_50.primitivetypes30_50.Integer30_50; 015import org.hl7.fhir.convertors.conv30_50.datatypes30_50.primitivetypes30_50.MarkDown30_50; 016import org.hl7.fhir.convertors.conv30_50.datatypes30_50.primitivetypes30_50.String30_50; 017import org.hl7.fhir.convertors.conv30_50.datatypes30_50.primitivetypes30_50.UnsignedInt30_50; 018import org.hl7.fhir.convertors.conv30_50.datatypes30_50.primitivetypes30_50.Uri30_50; 019import org.hl7.fhir.convertors.conv30_50.resources30_50.Enumerations30_50; 020import org.hl7.fhir.exceptions.FHIRException; 021import org.hl7.fhir.dstu3.model.BooleanType; 022import org.hl7.fhir.dstu3.model.Extension; 023import org.hl7.fhir.dstu3.model.MarkdownType; 024import org.hl7.fhir.dstu3.model.StringType; 025import org.hl7.fhir.dstu3.model.UriType; 026import org.hl7.fhir.r5.model.CanonicalType; 027import org.hl7.fhir.r5.model.CodeType; 028import org.hl7.fhir.r5.model.DataType; 029import org.hl7.fhir.r5.model.ElementDefinition; 030import org.hl7.fhir.r5.model.UsageContext; 031import org.hl7.fhir.r5.model.ElementDefinition.ElementDefinitionBindingAdditionalComponent; 032import org.hl7.fhir.utilities.Utilities; 033 034public class ElementDefinition30_50 { 035 public static org.hl7.fhir.r5.model.ElementDefinition convertElementDefinition(org.hl7.fhir.dstu3.model.ElementDefinition src) throws FHIRException { 036 if (src == null) return null; 037 org.hl7.fhir.r5.model.ElementDefinition tgt = new org.hl7.fhir.r5.model.ElementDefinition(); 038 ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt, "http://hl7.org/fhir/5.0/StructureDefinition/extension-ElementDefinition.mustHaveValue", "http://hl7.org/fhir/5.0/StructureDefinition/extension-ElementDefinition.valueAlternatives"); 039 if (src.hasPath()) tgt.setPathElement(String30_50.convertString(src.getPathElement())); 040 tgt.setRepresentation(src.getRepresentation().stream().map(ElementDefinition30_50::convertPropertyRepresentation).collect(Collectors.toList())); 041 if (src.hasSliceName()) tgt.setSliceNameElement(String30_50.convertString(src.getSliceNameElement())); 042 if (src.hasLabel()) tgt.setLabelElement(String30_50.convertString(src.getLabelElement())); 043 for (org.hl7.fhir.dstu3.model.Coding t : src.getCode()) tgt.addCode(Coding30_50.convertCoding(t)); 044 if (src.hasSlicing()) tgt.setSlicing(convertElementDefinitionSlicingComponent(src.getSlicing())); 045 if (src.hasShort()) tgt.setShortElement(String30_50.convertString(src.getShortElement())); 046 if (src.hasDefinition()) tgt.setDefinitionElement(MarkDown30_50.convertMarkdown(src.getDefinitionElement())); 047 if (src.hasComment()) tgt.setCommentElement(MarkDown30_50.convertMarkdown(src.getCommentElement())); 048 if (src.hasRequirements()) tgt.setRequirementsElement(MarkDown30_50.convertMarkdown(src.getRequirementsElement())); 049 for (org.hl7.fhir.dstu3.model.StringType t : src.getAlias()) tgt.addAlias(t.getValue()); 050 if (src.hasMin()) tgt.setMinElement(UnsignedInt30_50.convertUnsignedInt(src.getMinElement())); 051 if (src.hasMax()) tgt.setMaxElement(String30_50.convertString(src.getMaxElement())); 052 if (src.hasBase()) tgt.setBase(convertElementDefinitionBaseComponent(src.getBase())); 053 if (src.hasContentReference()) 054 tgt.setContentReferenceElement(Uri30_50.convertUri(src.getContentReferenceElement())); 055 for (org.hl7.fhir.dstu3.model.ElementDefinition.TypeRefComponent t : src.getType()) 056 convertTypeRefComponent(t, tgt.getType()); 057 if (src.hasDefaultValue()) 058 tgt.setDefaultValue(ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().convertType(src.getDefaultValue())); 059 if (src.hasMeaningWhenMissing()) 060 tgt.setMeaningWhenMissingElement(MarkDown30_50.convertMarkdown(src.getMeaningWhenMissingElement())); 061 if (src.hasOrderMeaning()) tgt.setOrderMeaningElement(String30_50.convertString(src.getOrderMeaningElement())); 062 if (src.hasFixed()) 063 tgt.setFixed(ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().convertType(src.getFixed())); 064 if (src.hasPattern()) 065 tgt.setPattern(ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().convertType(src.getPattern())); 066 for (org.hl7.fhir.dstu3.model.ElementDefinition.ElementDefinitionExampleComponent t : src.getExample()) 067 tgt.addExample(convertElementDefinitionExampleComponent(t)); 068 if (src.hasMinValue()) 069 tgt.setMinValue(ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().convertType(src.getMinValue())); 070 if (src.hasMaxValue()) 071 tgt.setMaxValue(ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().convertType(src.getMaxValue())); 072 if (src.hasMaxLength()) tgt.setMaxLengthElement(Integer30_50.convertInteger(src.getMaxLengthElement())); 073 for (org.hl7.fhir.dstu3.model.IdType t : src.getCondition()) tgt.addCondition(t.getValue()); 074 for (org.hl7.fhir.dstu3.model.ElementDefinition.ElementDefinitionConstraintComponent t : src.getConstraint()) 075 tgt.addConstraint(convertElementDefinitionConstraintComponent(t)); 076 if (src.hasMustSupport()) tgt.setMustSupportElement(Boolean30_50.convertBoolean(src.getMustSupportElement())); 077 if (src.hasIsModifier()) tgt.setIsModifierElement(Boolean30_50.convertBoolean(src.getIsModifierElement())); 078 if (tgt.getIsModifier()) { 079 String reason = org.hl7.fhir.dstu3.utils.ToolingExtensions.readStringExtension(src, VersionConvertorConstants.MODIFIER_REASON_EXTENSION); 080 if (Utilities.noString(reason)) reason = VersionConvertorConstants.MODIFIER_REASON_LEGACY; 081 tgt.setIsModifierReason(reason); 082 } 083 if (src.hasIsSummary()) tgt.setIsSummaryElement(Boolean30_50.convertBoolean(src.getIsSummaryElement())); 084 if (src.hasBinding()) tgt.setBinding(convertElementDefinitionBindingComponent(src.getBinding())); 085 for (org.hl7.fhir.dstu3.model.ElementDefinition.ElementDefinitionMappingComponent t : src.getMapping()) 086 tgt.addMapping(convertElementDefinitionMappingComponent(t)); 087 088 if (src.hasExtension("http://hl7.org/fhir/5.0/StructureDefinition/extension-ElementDefinition.mustHaveValue")) { 089 tgt.setMustHaveValueElement(Boolean30_50.convertBoolean((org.hl7.fhir.dstu3.model.BooleanType) src.getExtensionByUrl("http://hl7.org/fhir/5.0/StructureDefinition/extension-ElementDefinition.mustHaveValue").getValueAsPrimitive())); 090 } 091 for (org.hl7.fhir.dstu3.model.Extension ext : src.getExtensionsByUrl("http://hl7.org/fhir/5.0/StructureDefinition/extension-ElementDefinition.valueAlternatives")) { 092 tgt.addValueAlternative(Uri30_50.convertCanonical((org.hl7.fhir.dstu3.model.UriType)ext.getValue())); 093 } 094 095 return tgt; 096 } 097 098 public static org.hl7.fhir.dstu3.model.ElementDefinition convertElementDefinition(org.hl7.fhir.r5.model.ElementDefinition src) throws FHIRException { 099 if (src == null) return null; 100 org.hl7.fhir.dstu3.model.ElementDefinition tgt = new org.hl7.fhir.dstu3.model.ElementDefinition(); 101 ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt); 102 if (src.hasPath()) tgt.setPathElement(String30_50.convertString(src.getPathElement())); 103 tgt.setRepresentation(src.getRepresentation().stream().map(ElementDefinition30_50::convertPropertyRepresentation).collect(Collectors.toList())); 104 if (src.hasSliceName()) tgt.setSliceNameElement(String30_50.convertString(src.getSliceNameElement())); 105 if (src.hasLabel()) tgt.setLabelElement(String30_50.convertString(src.getLabelElement())); 106 for (org.hl7.fhir.r5.model.Coding t : src.getCode()) tgt.addCode(Coding30_50.convertCoding(t)); 107 if (src.hasSlicing()) tgt.setSlicing(convertElementDefinitionSlicingComponent(src.getSlicing())); 108 if (src.hasShort()) tgt.setShortElement(String30_50.convertString(src.getShortElement())); 109 if (src.hasDefinition()) tgt.setDefinitionElement(MarkDown30_50.convertMarkdown(src.getDefinitionElement())); 110 if (src.hasComment()) tgt.setCommentElement(MarkDown30_50.convertMarkdown(src.getCommentElement())); 111 if (src.hasRequirements()) tgt.setRequirementsElement(MarkDown30_50.convertMarkdown(src.getRequirementsElement())); 112 for (org.hl7.fhir.r5.model.StringType t : src.getAlias()) tgt.addAlias(t.getValue()); 113 if (src.hasMin()) tgt.setMinElement(UnsignedInt30_50.convertUnsignedInt(src.getMinElement())); 114 if (src.hasMax()) tgt.setMaxElement(String30_50.convertString(src.getMaxElement())); 115 if (src.hasBase()) tgt.setBase(convertElementDefinitionBaseComponent(src.getBase())); 116 if (src.hasContentReference()) 117 tgt.setContentReferenceElement(Uri30_50.convertUri(src.getContentReferenceElement())); 118 for (org.hl7.fhir.r5.model.ElementDefinition.TypeRefComponent t : src.getType()) 119 convertTypeRefComponent(t, tgt.getType()); 120 if (src.hasDefaultValue()) 121 tgt.setDefaultValue(ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().convertType(src.getDefaultValue())); 122 if (src.hasMeaningWhenMissing()) 123 tgt.setMeaningWhenMissingElement(MarkDown30_50.convertMarkdown(src.getMeaningWhenMissingElement())); 124 if (src.hasOrderMeaning()) tgt.setOrderMeaningElement(String30_50.convertString(src.getOrderMeaningElement())); 125 if (src.hasFixed()) 126 tgt.setFixed(ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().convertType(src.getFixed())); 127 if (src.hasPattern()) 128 tgt.setPattern(ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().convertType(src.getPattern())); 129 for (org.hl7.fhir.r5.model.ElementDefinition.ElementDefinitionExampleComponent t : src.getExample()) 130 tgt.addExample(convertElementDefinitionExampleComponent(t)); 131 if (src.hasMinValue()) 132 tgt.setMinValue(ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().convertType(src.getMinValue())); 133 if (src.hasMaxValue()) 134 tgt.setMaxValue(ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().convertType(src.getMaxValue())); 135 if (src.hasMaxLength()) tgt.setMaxLengthElement(Integer30_50.convertInteger(src.getMaxLengthElement())); 136 for (org.hl7.fhir.r5.model.IdType t : src.getCondition()) tgt.addCondition(t.getValue()); 137 for (org.hl7.fhir.r5.model.ElementDefinition.ElementDefinitionConstraintComponent t : src.getConstraint()) 138 tgt.addConstraint(convertElementDefinitionConstraintComponent(t)); 139 if (src.hasMustSupport()) tgt.setMustSupportElement(Boolean30_50.convertBoolean(src.getMustSupportElement())); 140 if (src.hasIsModifier()) tgt.setIsModifierElement(Boolean30_50.convertBoolean(src.getIsModifierElement())); 141 if (src.hasIsModifierReason() && !VersionConvertorConstants.MODIFIER_REASON_LEGACY.equals(src.getIsModifierReason())) 142 org.hl7.fhir.dstu3.utils.ToolingExtensions.setStringExtension(tgt, VersionConvertorConstants.MODIFIER_REASON_EXTENSION, src.getIsModifierReason()); 143 if (src.hasIsSummary()) tgt.setIsSummaryElement(Boolean30_50.convertBoolean(src.getIsSummaryElement())); 144 if (src.hasBinding()) tgt.setBinding(convertElementDefinitionBindingComponent(src.getBinding())); 145 for (org.hl7.fhir.r5.model.ElementDefinition.ElementDefinitionMappingComponent t : src.getMapping()) 146 tgt.addMapping(convertElementDefinitionMappingComponent(t)); 147 if (src.hasMustHaveValue()) { 148 tgt.addExtension("http://hl7.org/fhir/5.0/StructureDefinition/extension-ElementDefinition.mustHaveValue", Boolean30_50.convertBoolean(src.getMustHaveValueElement())); 149 } 150 for (org.hl7.fhir.r5.model.CanonicalType ct : src.getValueAlternatives()) { 151 tgt.addExtension("http://hl7.org/fhir/5.0/StructureDefinition/extension-ElementDefinition.valueAlternatives", Uri30_50.convertCanonical(ct)); 152 } 153 154 return tgt; 155 } 156 157 static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.ElementDefinition.PropertyRepresentation> convertPropertyRepresentation(org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.ElementDefinition.PropertyRepresentation> src) throws FHIRException { 158 if (src == null || src.isEmpty()) return null; 159 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()); 160 ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt); 161 if (src.getValue() == null) { 162 tgt.setValue(null); 163} else { 164 switch(src.getValue()) { 165 case XMLATTR: 166 tgt.setValue(ElementDefinition.PropertyRepresentation.XMLATTR); 167 break; 168 case XMLTEXT: 169 tgt.setValue(ElementDefinition.PropertyRepresentation.XMLTEXT); 170 break; 171 case TYPEATTR: 172 tgt.setValue(ElementDefinition.PropertyRepresentation.TYPEATTR); 173 break; 174 case CDATEXT: 175 tgt.setValue(ElementDefinition.PropertyRepresentation.CDATEXT); 176 break; 177 case XHTML: 178 tgt.setValue(ElementDefinition.PropertyRepresentation.XHTML); 179 break; 180 default: 181 tgt.setValue(ElementDefinition.PropertyRepresentation.NULL); 182 break; 183 } 184} 185 return tgt; 186 } 187 188 static public org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.ElementDefinition.PropertyRepresentation> convertPropertyRepresentation(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.ElementDefinition.PropertyRepresentation> src) throws FHIRException { 189 if (src == null || src.isEmpty()) return null; 190 org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.ElementDefinition.PropertyRepresentation> tgt = new org.hl7.fhir.dstu3.model.Enumeration<>(new org.hl7.fhir.dstu3.model.ElementDefinition.PropertyRepresentationEnumFactory()); 191 ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt); 192 if (src.getValue() == null) { 193 tgt.setValue(null); 194} else { 195 switch(src.getValue()) { 196 case XMLATTR: 197 tgt.setValue(org.hl7.fhir.dstu3.model.ElementDefinition.PropertyRepresentation.XMLATTR); 198 break; 199 case XMLTEXT: 200 tgt.setValue(org.hl7.fhir.dstu3.model.ElementDefinition.PropertyRepresentation.XMLTEXT); 201 break; 202 case TYPEATTR: 203 tgt.setValue(org.hl7.fhir.dstu3.model.ElementDefinition.PropertyRepresentation.TYPEATTR); 204 break; 205 case CDATEXT: 206 tgt.setValue(org.hl7.fhir.dstu3.model.ElementDefinition.PropertyRepresentation.CDATEXT); 207 break; 208 case XHTML: 209 tgt.setValue(org.hl7.fhir.dstu3.model.ElementDefinition.PropertyRepresentation.XHTML); 210 break; 211 default: 212 tgt.setValue(org.hl7.fhir.dstu3.model.ElementDefinition.PropertyRepresentation.NULL); 213 break; 214 } 215} 216 return tgt; 217 } 218 219 public static org.hl7.fhir.r5.model.ElementDefinition.ElementDefinitionSlicingComponent convertElementDefinitionSlicingComponent(org.hl7.fhir.dstu3.model.ElementDefinition.ElementDefinitionSlicingComponent src) throws FHIRException { 220 if (src == null) return null; 221 org.hl7.fhir.r5.model.ElementDefinition.ElementDefinitionSlicingComponent tgt = new org.hl7.fhir.r5.model.ElementDefinition.ElementDefinitionSlicingComponent(); 222 ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt); 223 for (org.hl7.fhir.dstu3.model.ElementDefinition.ElementDefinitionSlicingDiscriminatorComponent t : src.getDiscriminator()) 224 tgt.addDiscriminator(convertElementDefinitionSlicingDiscriminatorComponent(t)); 225 if (src.hasDescription()) tgt.setDescriptionElement(String30_50.convertString(src.getDescriptionElement())); 226 if (src.hasOrdered()) tgt.setOrderedElement(Boolean30_50.convertBoolean(src.getOrderedElement())); 227 if (src.hasRules()) tgt.setRulesElement(convertSlicingRules(src.getRulesElement())); 228 return tgt; 229 } 230 231 public static org.hl7.fhir.dstu3.model.ElementDefinition.ElementDefinitionSlicingComponent convertElementDefinitionSlicingComponent(org.hl7.fhir.r5.model.ElementDefinition.ElementDefinitionSlicingComponent src) throws FHIRException { 232 if (src == null) return null; 233 org.hl7.fhir.dstu3.model.ElementDefinition.ElementDefinitionSlicingComponent tgt = new org.hl7.fhir.dstu3.model.ElementDefinition.ElementDefinitionSlicingComponent(); 234 ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt); 235 for (org.hl7.fhir.r5.model.ElementDefinition.ElementDefinitionSlicingDiscriminatorComponent t : src.getDiscriminator()) 236 tgt.addDiscriminator(convertElementDefinitionSlicingDiscriminatorComponent(t)); 237 if (src.hasDescription()) tgt.setDescriptionElement(String30_50.convertString(src.getDescriptionElement())); 238 if (src.hasOrdered()) tgt.setOrderedElement(Boolean30_50.convertBoolean(src.getOrderedElement())); 239 if (src.hasRules()) tgt.setRulesElement(convertSlicingRules(src.getRulesElement())); 240 return tgt; 241 } 242 243 static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.ElementDefinition.SlicingRules> convertSlicingRules(org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.ElementDefinition.SlicingRules> src) throws FHIRException { 244 if (src == null || src.isEmpty()) return null; 245 org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.ElementDefinition.SlicingRules> tgt = new org.hl7.fhir.r5.model.Enumeration<>(new org.hl7.fhir.r5.model.ElementDefinition.SlicingRulesEnumFactory()); 246 ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt); 247 if (src.getValue() == null) { 248 tgt.setValue(null); 249} else { 250 switch(src.getValue()) { 251 case CLOSED: 252 tgt.setValue(ElementDefinition.SlicingRules.CLOSED); 253 break; 254 case OPEN: 255 tgt.setValue(ElementDefinition.SlicingRules.OPEN); 256 break; 257 case OPENATEND: 258 tgt.setValue(ElementDefinition.SlicingRules.OPENATEND); 259 break; 260 default: 261 tgt.setValue(ElementDefinition.SlicingRules.NULL); 262 break; 263 } 264} 265 return tgt; 266 } 267 268 static public org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.ElementDefinition.SlicingRules> convertSlicingRules(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.ElementDefinition.SlicingRules> src) throws FHIRException { 269 if (src == null || src.isEmpty()) return null; 270 org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.ElementDefinition.SlicingRules> tgt = new org.hl7.fhir.dstu3.model.Enumeration<>(new org.hl7.fhir.dstu3.model.ElementDefinition.SlicingRulesEnumFactory()); 271 ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt); 272 if (src.getValue() == null) { 273 tgt.setValue(null); 274} else { 275 switch(src.getValue()) { 276 case CLOSED: 277 tgt.setValue(org.hl7.fhir.dstu3.model.ElementDefinition.SlicingRules.CLOSED); 278 break; 279 case OPEN: 280 tgt.setValue(org.hl7.fhir.dstu3.model.ElementDefinition.SlicingRules.OPEN); 281 break; 282 case OPENATEND: 283 tgt.setValue(org.hl7.fhir.dstu3.model.ElementDefinition.SlicingRules.OPENATEND); 284 break; 285 default: 286 tgt.setValue(org.hl7.fhir.dstu3.model.ElementDefinition.SlicingRules.NULL); 287 break; 288 } 289} 290 return tgt; 291 } 292 293 public static org.hl7.fhir.r5.model.ElementDefinition.ElementDefinitionSlicingDiscriminatorComponent convertElementDefinitionSlicingDiscriminatorComponent(org.hl7.fhir.dstu3.model.ElementDefinition.ElementDefinitionSlicingDiscriminatorComponent src) throws FHIRException { 294 if (src == null) return null; 295 org.hl7.fhir.r5.model.ElementDefinition.ElementDefinitionSlicingDiscriminatorComponent tgt = new org.hl7.fhir.r5.model.ElementDefinition.ElementDefinitionSlicingDiscriminatorComponent(); 296 ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt); 297 if (src.hasType()) tgt.setTypeElement(convertDiscriminatorType(src.getTypeElement())); 298 if (src.hasPath()) tgt.setPathElement(String30_50.convertString(src.getPathElement())); 299 return tgt; 300 } 301 302 public static org.hl7.fhir.dstu3.model.ElementDefinition.ElementDefinitionSlicingDiscriminatorComponent convertElementDefinitionSlicingDiscriminatorComponent(org.hl7.fhir.r5.model.ElementDefinition.ElementDefinitionSlicingDiscriminatorComponent src) throws FHIRException { 303 if (src == null) return null; 304 org.hl7.fhir.dstu3.model.ElementDefinition.ElementDefinitionSlicingDiscriminatorComponent tgt = new org.hl7.fhir.dstu3.model.ElementDefinition.ElementDefinitionSlicingDiscriminatorComponent(); 305 ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt); 306 if (src.hasType()) tgt.setTypeElement(convertDiscriminatorType(src.getTypeElement())); 307 if (src.hasPath()) tgt.setPathElement(String30_50.convertString(src.getPathElement())); 308 return tgt; 309 } 310 311 static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.ElementDefinition.DiscriminatorType> convertDiscriminatorType(org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.ElementDefinition.DiscriminatorType> src) throws FHIRException { 312 if (src == null || src.isEmpty()) return null; 313 org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.ElementDefinition.DiscriminatorType> tgt = new org.hl7.fhir.r5.model.Enumeration<>(new org.hl7.fhir.r5.model.ElementDefinition.DiscriminatorTypeEnumFactory()); 314 ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt); 315 if (src.getValue() == null) { 316 tgt.setValue(null); 317} else { 318 switch(src.getValue()) { 319 case VALUE: 320 tgt.setValue(ElementDefinition.DiscriminatorType.VALUE); 321 break; 322 case EXISTS: 323 tgt.setValue(ElementDefinition.DiscriminatorType.EXISTS); 324 break; 325 case PATTERN: 326 tgt.setValue(ElementDefinition.DiscriminatorType.PATTERN); 327 break; 328 case TYPE: 329 tgt.setValue(ElementDefinition.DiscriminatorType.TYPE); 330 break; 331 case PROFILE: 332 tgt.setValue(ElementDefinition.DiscriminatorType.PROFILE); 333 break; 334 default: 335 tgt.setValue(ElementDefinition.DiscriminatorType.NULL); 336 break; 337 } 338} 339 return tgt; 340 } 341 342 static public org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.ElementDefinition.DiscriminatorType> convertDiscriminatorType(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.ElementDefinition.DiscriminatorType> src) throws FHIRException { 343 if (src == null || src.isEmpty()) return null; 344 org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.ElementDefinition.DiscriminatorType> tgt = new org.hl7.fhir.dstu3.model.Enumeration<>(new org.hl7.fhir.dstu3.model.ElementDefinition.DiscriminatorTypeEnumFactory()); 345 ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt); 346 if (src.getValue() == null) { 347 tgt.setValue(null); 348} else { 349 switch(src.getValue()) { 350 case VALUE: 351 tgt.setValue(org.hl7.fhir.dstu3.model.ElementDefinition.DiscriminatorType.VALUE); 352 break; 353 case EXISTS: 354 tgt.setValue(org.hl7.fhir.dstu3.model.ElementDefinition.DiscriminatorType.EXISTS); 355 break; 356 case PATTERN: 357 tgt.setValue(org.hl7.fhir.dstu3.model.ElementDefinition.DiscriminatorType.PATTERN); 358 break; 359 case TYPE: 360 tgt.setValue(org.hl7.fhir.dstu3.model.ElementDefinition.DiscriminatorType.TYPE); 361 break; 362 case PROFILE: 363 tgt.setValue(org.hl7.fhir.dstu3.model.ElementDefinition.DiscriminatorType.PROFILE); 364 break; 365 default: 366 tgt.setValue(org.hl7.fhir.dstu3.model.ElementDefinition.DiscriminatorType.NULL); 367 break; 368 } 369} 370 return tgt; 371 } 372 373 public static org.hl7.fhir.r5.model.ElementDefinition.ElementDefinitionBaseComponent convertElementDefinitionBaseComponent(org.hl7.fhir.dstu3.model.ElementDefinition.ElementDefinitionBaseComponent src) throws FHIRException { 374 if (src == null) return null; 375 org.hl7.fhir.r5.model.ElementDefinition.ElementDefinitionBaseComponent tgt = new org.hl7.fhir.r5.model.ElementDefinition.ElementDefinitionBaseComponent(); 376 ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt); 377 if (src.hasPath()) tgt.setPathElement(String30_50.convertString(src.getPathElement())); 378 if (src.hasMin()) tgt.setMinElement(UnsignedInt30_50.convertUnsignedInt(src.getMinElement())); 379 if (src.hasMax()) tgt.setMaxElement(String30_50.convertString(src.getMaxElement())); 380 return tgt; 381 } 382 383 public static org.hl7.fhir.dstu3.model.ElementDefinition.ElementDefinitionBaseComponent convertElementDefinitionBaseComponent(org.hl7.fhir.r5.model.ElementDefinition.ElementDefinitionBaseComponent src) throws FHIRException { 384 if (src == null) return null; 385 org.hl7.fhir.dstu3.model.ElementDefinition.ElementDefinitionBaseComponent tgt = new org.hl7.fhir.dstu3.model.ElementDefinition.ElementDefinitionBaseComponent(); 386 ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt); 387 if (src.hasPath()) tgt.setPathElement(String30_50.convertString(src.getPathElement())); 388 if (src.hasMin()) tgt.setMinElement(UnsignedInt30_50.convertUnsignedInt(src.getMinElement())); 389 if (src.hasMax()) tgt.setMaxElement(String30_50.convertString(src.getMaxElement())); 390 return tgt; 391 } 392 393 public static void convertTypeRefComponent(org.hl7.fhir.dstu3.model.ElementDefinition.TypeRefComponent src, List<ElementDefinition.TypeRefComponent> list) throws FHIRException { 394 if (src == null) return; 395 ElementDefinition.TypeRefComponent tgt = null; 396 for (ElementDefinition.TypeRefComponent t : list) 397 if (t.getCode().equals(src.getCode())) tgt = t; 398 if (tgt == null) { 399 tgt = new ElementDefinition.TypeRefComponent(); 400 list.add(tgt); 401 ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt); 402 tgt.setCodeElement(Uri30_50.convertUri(src.getCodeElement())); 403 } 404 if (src.hasProfile()) { 405 boolean found = false; 406 for (CanonicalType p : tgt.getProfile()) { 407 if (p.equals(src.getProfile())) found = true; 408 } 409 if (!found) tgt.addProfile(src.getProfile()); 410 } 411 if (src.hasTargetProfile()) tgt.addTargetProfile(src.getTargetProfile()); 412 for (org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.ElementDefinition.AggregationMode> t : src.getAggregation()) { 413 org.hl7.fhir.r5.model.Enumeration<ElementDefinition.AggregationMode> a = convertAggregationMode(t); 414 if (!tgt.hasAggregation(a.getValue())) 415 ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(t, tgt.addAggregation(a.getValue())); 416 } 417 if (src.hasVersioning()) tgt.setVersioningElement(convertReferenceVersionRules(src.getVersioningElement())); 418 } 419 420 public static void convertTypeRefComponent(ElementDefinition.TypeRefComponent src, List<org.hl7.fhir.dstu3.model.ElementDefinition.TypeRefComponent> list) throws FHIRException { 421 if (src == null) return; 422 org.hl7.fhir.dstu3.model.ElementDefinition.TypeRefComponent tgt = new org.hl7.fhir.dstu3.model.ElementDefinition.TypeRefComponent(); 423 ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt); 424 tgt.setCodeElement(Uri30_50.convertUri(src.getCodeElement())); 425 list.add(tgt); 426 if (src.hasTarget()) { 427 if (src.hasProfile()) tgt.setProfile(src.getProfile().get(0).getValue()); 428 for (org.hl7.fhir.r5.model.UriType u : src.getTargetProfile()) { 429 if (tgt.hasTargetProfile()) { 430 tgt = new org.hl7.fhir.dstu3.model.ElementDefinition.TypeRefComponent(); 431 list.add(tgt); 432 ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt); 433 tgt.setCode(src.getCode()); 434 if (src.hasProfile()) tgt.setProfile(src.getProfile().get(0).getValue()); 435 } 436 tgt.setTargetProfile(u.getValue()); 437 } 438 } else { 439 for (org.hl7.fhir.r5.model.UriType u : src.getProfile()) { 440 if (tgt.hasProfile()) { 441 tgt = new org.hl7.fhir.dstu3.model.ElementDefinition.TypeRefComponent(); 442 list.add(tgt); 443 ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt); 444 tgt.setCode(src.getCode()); 445 } 446 tgt.setProfile(u.getValue()); 447 } 448 } 449 for (org.hl7.fhir.r5.model.Enumeration<ElementDefinition.AggregationMode> t : src.getAggregation()) { 450 org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.ElementDefinition.AggregationMode> a = convertAggregationMode(t); 451 if (!tgt.hasAggregation(a.getValue())) 452 ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(t, tgt.addAggregation(a.getValue())); 453 } 454 } 455 456 static public org.hl7.fhir.r5.model.Enumeration<ElementDefinition.AggregationMode> convertAggregationMode(org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.ElementDefinition.AggregationMode> src) throws FHIRException { 457 if (src == null || src.isEmpty()) return null; 458 org.hl7.fhir.r5.model.Enumeration<ElementDefinition.AggregationMode> tgt = new org.hl7.fhir.r5.model.Enumeration<>(new ElementDefinition.AggregationModeEnumFactory()); 459 ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt); 460 if (src.getValue() == null) { 461 tgt.setValue(null); 462} else { 463 switch(src.getValue()) { 464 case CONTAINED: 465 tgt.setValue(ElementDefinition.AggregationMode.CONTAINED); 466 break; 467 case REFERENCED: 468 tgt.setValue(ElementDefinition.AggregationMode.REFERENCED); 469 break; 470 case BUNDLED: 471 tgt.setValue(ElementDefinition.AggregationMode.BUNDLED); 472 break; 473 default: 474 tgt.setValue(ElementDefinition.AggregationMode.NULL); 475 break; 476 } 477} 478 return tgt; 479 } 480 481 static public org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.ElementDefinition.AggregationMode> convertAggregationMode(org.hl7.fhir.r5.model.Enumeration<ElementDefinition.AggregationMode> src) throws FHIRException { 482 if (src == null || src.isEmpty()) return null; 483 org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.ElementDefinition.AggregationMode> tgt = new org.hl7.fhir.dstu3.model.Enumeration<>(new org.hl7.fhir.dstu3.model.ElementDefinition.AggregationModeEnumFactory()); 484 ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt); 485 if (src.getValue() == null) { 486 tgt.setValue(null); 487} else { 488 switch(src.getValue()) { 489 case CONTAINED: 490 tgt.setValue(org.hl7.fhir.dstu3.model.ElementDefinition.AggregationMode.CONTAINED); 491 break; 492 case REFERENCED: 493 tgt.setValue(org.hl7.fhir.dstu3.model.ElementDefinition.AggregationMode.REFERENCED); 494 break; 495 case BUNDLED: 496 tgt.setValue(org.hl7.fhir.dstu3.model.ElementDefinition.AggregationMode.BUNDLED); 497 break; 498 default: 499 tgt.setValue(org.hl7.fhir.dstu3.model.ElementDefinition.AggregationMode.NULL); 500 break; 501 } 502} 503 return tgt; 504 } 505 506 static public org.hl7.fhir.r5.model.Enumeration<ElementDefinition.ReferenceVersionRules> convertReferenceVersionRules(org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.ElementDefinition.ReferenceVersionRules> src) throws FHIRException { 507 if (src == null || src.isEmpty()) return null; 508 org.hl7.fhir.r5.model.Enumeration<ElementDefinition.ReferenceVersionRules> tgt = new org.hl7.fhir.r5.model.Enumeration<>(new ElementDefinition.ReferenceVersionRulesEnumFactory()); 509 ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt); 510 if (src.getValue() == null) { 511 tgt.setValue(null); 512} else { 513 switch(src.getValue()) { 514 case EITHER: 515 tgt.setValue(ElementDefinition.ReferenceVersionRules.EITHER); 516 break; 517 case INDEPENDENT: 518 tgt.setValue(ElementDefinition.ReferenceVersionRules.INDEPENDENT); 519 break; 520 case SPECIFIC: 521 tgt.setValue(ElementDefinition.ReferenceVersionRules.SPECIFIC); 522 break; 523 default: 524 tgt.setValue(ElementDefinition.ReferenceVersionRules.NULL); 525 break; 526 } 527} 528 return tgt; 529 } 530 531 static public org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.ElementDefinition.ReferenceVersionRules> convertReferenceVersionRules(org.hl7.fhir.r5.model.Enumeration<ElementDefinition.ReferenceVersionRules> src) throws FHIRException { 532 if (src == null || src.isEmpty()) return null; 533 org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.ElementDefinition.ReferenceVersionRules> tgt = new org.hl7.fhir.dstu3.model.Enumeration<>(new org.hl7.fhir.dstu3.model.ElementDefinition.ReferenceVersionRulesEnumFactory()); 534 ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt); 535 if (src.getValue() == null) { 536 tgt.setValue(null); 537} else { 538 switch(src.getValue()) { 539 case EITHER: 540 tgt.setValue(org.hl7.fhir.dstu3.model.ElementDefinition.ReferenceVersionRules.EITHER); 541 break; 542 case INDEPENDENT: 543 tgt.setValue(org.hl7.fhir.dstu3.model.ElementDefinition.ReferenceVersionRules.INDEPENDENT); 544 break; 545 case SPECIFIC: 546 tgt.setValue(org.hl7.fhir.dstu3.model.ElementDefinition.ReferenceVersionRules.SPECIFIC); 547 break; 548 default: 549 tgt.setValue(org.hl7.fhir.dstu3.model.ElementDefinition.ReferenceVersionRules.NULL); 550 break; 551 } 552} 553 return tgt; 554 } 555 556 public static ElementDefinition.ElementDefinitionExampleComponent convertElementDefinitionExampleComponent(org.hl7.fhir.dstu3.model.ElementDefinition.ElementDefinitionExampleComponent src) throws FHIRException { 557 if (src == null) return null; 558 ElementDefinition.ElementDefinitionExampleComponent tgt = new ElementDefinition.ElementDefinitionExampleComponent(); 559 ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt); 560 if (src.hasLabel()) tgt.setLabelElement(String30_50.convertString(src.getLabelElement())); 561 if (src.hasValue()) 562 tgt.setValue(ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().convertType(src.getValue())); 563 return tgt; 564 } 565 566 public static org.hl7.fhir.dstu3.model.ElementDefinition.ElementDefinitionExampleComponent convertElementDefinitionExampleComponent(ElementDefinition.ElementDefinitionExampleComponent src) throws FHIRException { 567 if (src == null) return null; 568 org.hl7.fhir.dstu3.model.ElementDefinition.ElementDefinitionExampleComponent tgt = new org.hl7.fhir.dstu3.model.ElementDefinition.ElementDefinitionExampleComponent(); 569 ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt); 570 if (src.hasLabel()) tgt.setLabelElement(String30_50.convertString(src.getLabelElement())); 571 if (src.hasValue()) 572 tgt.setValue(ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().convertType(src.getValue())); 573 return tgt; 574 } 575 576 public static ElementDefinition.ElementDefinitionConstraintComponent convertElementDefinitionConstraintComponent(org.hl7.fhir.dstu3.model.ElementDefinition.ElementDefinitionConstraintComponent src) throws FHIRException { 577 if (src == null) return null; 578 ElementDefinition.ElementDefinitionConstraintComponent tgt = new ElementDefinition.ElementDefinitionConstraintComponent(); 579 ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt); 580 if (src.hasKey()) tgt.setKeyElement(Id30_50.convertId(src.getKeyElement())); 581 if (src.hasRequirements()) tgt.setRequirementsElement(String30_50.convertStringToMarkdown(src.getRequirementsElement())); 582 if (src.hasSeverity()) tgt.setSeverityElement(convertConstraintSeverity(src.getSeverityElement())); 583 if (src.hasHuman()) tgt.setHumanElement(String30_50.convertString(src.getHumanElement())); 584 if (src.hasExpression()) tgt.setExpressionElement(String30_50.convertString(src.getExpressionElement())); 585 if (src.hasXpath()) { 586 tgt.addExtension(new org.hl7.fhir.r5.model.Extension(org.hl7.fhir.r5.utils.ToolingExtensions.EXT_XPATH_CONSTRAINT, new org.hl7.fhir.r5.model.StringType(src.getXpath()))); 587 } 588 if (src.hasSource()) tgt.setSource(src.getSource()); 589 return tgt; 590 } 591 592 public static org.hl7.fhir.dstu3.model.ElementDefinition.ElementDefinitionConstraintComponent convertElementDefinitionConstraintComponent(ElementDefinition.ElementDefinitionConstraintComponent src) throws FHIRException { 593 if (src == null) return null; 594 org.hl7.fhir.dstu3.model.ElementDefinition.ElementDefinitionConstraintComponent tgt = new org.hl7.fhir.dstu3.model.ElementDefinition.ElementDefinitionConstraintComponent(); 595 ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt, org.hl7.fhir.r5.utils.ToolingExtensions.EXT_XPATH_CONSTRAINT); 596 if (src.hasKey()) tgt.setKeyElement(Id30_50.convertId(src.getKeyElement())); 597 if (src.hasRequirements()) tgt.setRequirementsElement(String30_50.convertString(src.getRequirementsElement())); 598 if (src.hasSeverity()) tgt.setSeverityElement(convertConstraintSeverity(src.getSeverityElement())); 599 if (src.hasHuman()) tgt.setHumanElement(String30_50.convertString(src.getHumanElement())); 600 if (src.hasExpression()) tgt.setExpressionElement(String30_50.convertString(src.getExpressionElement())); 601 if (org.hl7.fhir.r5.utils.ToolingExtensions.hasExtension(src, org.hl7.fhir.r5.utils.ToolingExtensions.EXT_XPATH_CONSTRAINT)) { 602 tgt.setXpath(org.hl7.fhir.r5.utils.ToolingExtensions.readStringExtension(src, org.hl7.fhir.r5.utils.ToolingExtensions.EXT_XPATH_CONSTRAINT)); 603 } 604 if (src.hasSource()) tgt.setSource(src.getSource()); 605 return tgt; 606 } 607 608 static public org.hl7.fhir.r5.model.Enumeration<ElementDefinition.ConstraintSeverity> convertConstraintSeverity(org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.ElementDefinition.ConstraintSeverity> src) throws FHIRException { 609 if (src == null || src.isEmpty()) return null; 610 org.hl7.fhir.r5.model.Enumeration<ElementDefinition.ConstraintSeverity> tgt = new org.hl7.fhir.r5.model.Enumeration<>(new ElementDefinition.ConstraintSeverityEnumFactory()); 611 ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt); 612 if (src.getValue() == null) { 613 tgt.setValue(null); 614} else { 615 switch(src.getValue()) { 616 case ERROR: 617 tgt.setValue(ElementDefinition.ConstraintSeverity.ERROR); 618 break; 619 case WARNING: 620 tgt.setValue(ElementDefinition.ConstraintSeverity.WARNING); 621 break; 622 default: 623 tgt.setValue(ElementDefinition.ConstraintSeverity.NULL); 624 break; 625 } 626} 627 return tgt; 628 } 629 630 static public org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.ElementDefinition.ConstraintSeverity> convertConstraintSeverity(org.hl7.fhir.r5.model.Enumeration<ElementDefinition.ConstraintSeverity> src) throws FHIRException { 631 if (src == null || src.isEmpty()) return null; 632 org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.ElementDefinition.ConstraintSeverity> tgt = new org.hl7.fhir.dstu3.model.Enumeration<>(new org.hl7.fhir.dstu3.model.ElementDefinition.ConstraintSeverityEnumFactory()); 633 ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt); 634 if (src.getValue() == null) { 635 tgt.setValue(null); 636} else { 637 switch(src.getValue()) { 638 case ERROR: 639 tgt.setValue(org.hl7.fhir.dstu3.model.ElementDefinition.ConstraintSeverity.ERROR); 640 break; 641 case WARNING: 642 tgt.setValue(org.hl7.fhir.dstu3.model.ElementDefinition.ConstraintSeverity.WARNING); 643 break; 644 default: 645 tgt.setValue(org.hl7.fhir.dstu3.model.ElementDefinition.ConstraintSeverity.NULL); 646 break; 647 } 648} 649 return tgt; 650 } 651 652 public static ElementDefinition.ElementDefinitionBindingComponent convertElementDefinitionBindingComponent(org.hl7.fhir.dstu3.model.ElementDefinition.ElementDefinitionBindingComponent src) throws FHIRException { 653 if (src == null) return null; 654 ElementDefinition.ElementDefinitionBindingComponent tgt = new ElementDefinition.ElementDefinitionBindingComponent(); 655 ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt, VersionConvertor_30_50.EXT_SRC_TYPE, 656 "http://hl7.org/fhir/5.0/StructureDefinition/extension-ElementDefinition.binding.additional"); 657 if (src.hasStrength()) tgt.setStrengthElement(Enumerations30_50.convertBindingStrength(src.getStrengthElement())); 658 if (src.hasDescription()) tgt.setDescriptionElement(String30_50.convertStringToMarkdown(src.getDescriptionElement())); 659 if (src.hasValueSet()) { 660 DataType t = ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().convertType(src.getValueSet()); 661 if (t instanceof org.hl7.fhir.r5.model.Reference) { 662 tgt.setValueSet(((org.hl7.fhir.r5.model.Reference) t).getReference()); 663 tgt.getValueSetElement().addExtension(VersionConvertor_30_50.EXT_SRC_TYPE, new org.hl7.fhir.r5.model.UrlType("Reference")); 664 } else { 665 tgt.setValueSet(t.primitiveValue()); 666 tgt.getValueSetElement().addExtension(VersionConvertor_30_50.EXT_SRC_TYPE, new org.hl7.fhir.r5.model.UrlType("uri")); 667 } 668 tgt.setValueSet(VersionConvertorConstants.refToVS(tgt.getValueSet())); 669 } 670 for (org.hl7.fhir.dstu3.model.Extension ext : src.getExtensionsByUrl("http://hl7.org/fhir/5.0/StructureDefinition/extension-ElementDefinition.binding.additional")) { 671 tgt.addAdditional(convertAdditional(ext)); 672 } 673 return tgt; 674 } 675 676 public static org.hl7.fhir.dstu3.model.ElementDefinition.ElementDefinitionBindingComponent convertElementDefinitionBindingComponent(ElementDefinition.ElementDefinitionBindingComponent src) throws FHIRException { 677 if (src == null) return null; 678 org.hl7.fhir.dstu3.model.ElementDefinition.ElementDefinitionBindingComponent tgt = new org.hl7.fhir.dstu3.model.ElementDefinition.ElementDefinitionBindingComponent(); 679 ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt, VersionConvertor_30_50.EXT_SRC_TYPE); 680 if (src.hasStrength()) tgt.setStrengthElement(Enumerations30_50.convertBindingStrength(src.getStrengthElement())); 681 if (src.hasDescription()) tgt.setDescriptionElement(String30_50.convertString(src.getDescriptionElement())); 682 if (src.hasValueSet()) { 683 org.hl7.fhir.r5.model.Extension ex = src.getValueSetElement().getExtensionByUrl(VersionConvertor_30_50.EXT_SRC_TYPE); 684 String vsr = VersionConvertorConstants.vsToRef(src.getValueSet()); 685 if (ex != null) { 686 if ("uri".equals(ex.getValue().primitiveValue())) { 687 tgt.setValueSet(new org.hl7.fhir.dstu3.model.UriType(vsr == null ? src.getValueSet() : vsr)); 688 } else { 689 tgt.setValueSet(new org.hl7.fhir.dstu3.model.Reference(src.getValueSet())); 690 } 691 } else { 692 if (vsr != null) tgt.setValueSet(new org.hl7.fhir.dstu3.model.UriType(vsr)); 693 else tgt.setValueSet(new org.hl7.fhir.dstu3.model.Reference(src.getValueSet())); 694 } 695 } 696 for (ElementDefinitionBindingAdditionalComponent ab : src.getAdditional()) { 697 tgt.addExtension(convertAdditional(ab)); 698 } 699 return tgt; 700 } 701 702 703 private static ElementDefinitionBindingAdditionalComponent convertAdditional(Extension src) { 704 if (src == null) return null; 705 ElementDefinitionBindingAdditionalComponent tgt = new ElementDefinitionBindingAdditionalComponent(); 706 ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt, "valueSet", "purpose", "documentation", "shortDoco", "usage", "any"); 707 if (src.hasExtension("purpose")) { 708 tgt.getPurposeElement().setValueAsString(src.getExtensionByUrl("purpose").getValue().primitiveValue()); 709 } 710 if (src.hasExtension("valueSet")) { 711 tgt.setValueSetElement(Uri30_50.convertCanonical((UriType) src.getExtensionByUrl("valueSet").getValue())); 712 } 713 if (src.hasExtension("documentation")) { 714 tgt.setDocumentationElement(MarkDown30_50.convertMarkdown((MarkdownType) src.getExtensionByUrl("documentation").getValue())); 715 } 716 if (src.hasExtension("shortDoco")) { 717 tgt.setShortDocoElement(String30_50.convertString((StringType) src.getExtensionByUrl("shortDoco").getValue())); 718 } 719 for (Extension t : src.getExtensionsByUrl("usage")) { 720 tgt.addUsage(UsageContext30_50.convertUsageContext((org.hl7.fhir.dstu3.model.UsageContext) t.getValue())); 721 } 722 if (src.hasExtension("any")) { 723 tgt.setAnyElement(Boolean30_50.convertBoolean((BooleanType) src.getExtensionByUrl("any").getValue())); 724 } 725 return tgt; 726 } 727 728 private static Extension convertAdditional(ElementDefinitionBindingAdditionalComponent src) { 729 if (src == null) return null; 730 Extension tgt = new Extension(); 731 ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt); 732 if (src.hasPurpose()) { 733 tgt.addExtension(new Extension("purpose", new org.hl7.fhir.dstu3.model.CodeType(src.getPurposeElement().primitiveValue()))); 734 } 735 if (src.hasValueSet()) { 736 tgt.addExtension(new Extension("valueSet", Uri30_50.convertCanonical(src.getValueSetElement()))); 737 } 738 if (src.hasDocumentation()) { 739 tgt.addExtension(new Extension("documentation", MarkDown30_50.convertMarkdown(src.getDocumentationElement()))); 740 } 741 if (src.hasShortDoco()) { 742 tgt.addExtension(new Extension("shortDoco", String30_50.convertString(src.getShortDocoElement()))); 743 } 744 for (UsageContext t : src.getUsage()) { 745 tgt.addExtension(new Extension("usage", UsageContext30_50.convertUsageContext(t))); 746 } 747 if (src.hasAny()) { 748 tgt.addExtension(new Extension("any", Boolean30_50.convertBoolean(src.getAnyElement()))); 749 } 750 751 return tgt; 752 } 753 754 public static ElementDefinition.ElementDefinitionMappingComponent convertElementDefinitionMappingComponent(org.hl7.fhir.dstu3.model.ElementDefinition.ElementDefinitionMappingComponent src) throws FHIRException { 755 if (src == null) return null; 756 ElementDefinition.ElementDefinitionMappingComponent tgt = new ElementDefinition.ElementDefinitionMappingComponent(); 757 ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt); 758 if (src.hasIdentity()) tgt.setIdentityElement(Id30_50.convertId(src.getIdentityElement())); 759 if (src.hasLanguage()) tgt.setLanguageElement(Code30_50.convertCode(src.getLanguageElement())); 760 if (src.hasMap()) tgt.setMapElement(String30_50.convertString(src.getMapElement())); 761 if (src.hasComment()) tgt.setCommentElement(String30_50.convertStringToMarkdown(src.getCommentElement())); 762 return tgt; 763 } 764 765 public static org.hl7.fhir.dstu3.model.ElementDefinition.ElementDefinitionMappingComponent convertElementDefinitionMappingComponent(ElementDefinition.ElementDefinitionMappingComponent src) throws FHIRException { 766 if (src == null) return null; 767 org.hl7.fhir.dstu3.model.ElementDefinition.ElementDefinitionMappingComponent tgt = new org.hl7.fhir.dstu3.model.ElementDefinition.ElementDefinitionMappingComponent(); 768 ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt); 769 if (src.hasIdentity()) tgt.setIdentityElement(Id30_50.convertId(src.getIdentityElement())); 770 if (src.hasLanguage()) tgt.setLanguageElement(Code30_50.convertCode(src.getLanguageElement())); 771 if (src.hasMap()) tgt.setMapElement(String30_50.convertString(src.getMapElement())); 772 if (src.hasComment()) tgt.setCommentElement(String30_50.convertString(src.getCommentElement())); 773 return tgt; 774 } 775}