From 6232c54f15d68ebd4ca96992fe6a7326cdd0e6b7 Mon Sep 17 00:00:00 2001 From: Grahame Grieve Date: Sun, 7 May 2023 12:02:00 -0500 Subject: [PATCH] Fix core --- .../codegen/extensions/JavaExtensionsFactoryGenerator.java | 2 +- .../hl7/fhir/r5/conformance/profile/ProfileUtilities.java | 4 ++-- .../main/java/org/hl7/fhir/r5/elementmodel/Element.java | 2 +- .../src/main/java/org/hl7/fhir/r5/model/Element.java | 4 +--- .../src/main/java/org/hl7/fhir/r5/model/PrimitiveType.java | 3 +-- .../java/org/hl7/fhir/r5/model/StructureDefinition.java | 7 ++----- .../java/org/hl7/fhir/r5/profilemodel/PEDefinition.java | 2 +- .../hl7/fhir/r5/profilemodel/PEDefinitionExtension.java | 4 ++-- .../validation/instance/type/StructureMapValidator.java | 2 +- 9 files changed, 12 insertions(+), 18 deletions(-) diff --git a/org.hl7.fhir.core.generator/src/org/hl7/fhir/core/generator/codegen/extensions/JavaExtensionsFactoryGenerator.java b/org.hl7.fhir.core.generator/src/org/hl7/fhir/core/generator/codegen/extensions/JavaExtensionsFactoryGenerator.java index f932e2b2f..3c59a38c9 100644 --- a/org.hl7.fhir.core.generator/src/org/hl7/fhir/core/generator/codegen/extensions/JavaExtensionsFactoryGenerator.java +++ b/org.hl7.fhir.core.generator/src/org/hl7/fhir/core/generator/codegen/extensions/JavaExtensionsFactoryGenerator.java @@ -98,7 +98,7 @@ public class JavaExtensionsFactoryGenerator extends JavaBaseGenerator { ElementDefinition edRoot = sd.getSnapshot().getElementFirstRep(); boolean repeats = !edRoot.getMax().equals("1"); String verb = repeats ? "add" : "set"; - ElementDefinition edValue = sd.getSnapshot().getElementByPath("Extension.value[x]", false); + ElementDefinition edValue = sd.getSnapshot().getElementByPath("Extension.value[x]"); List types = analyseTypes(edValue); if (types.size() > 5) { src.append(" public static Extension make"+name+"(DataType value) {\r\n"); diff --git a/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/conformance/profile/ProfileUtilities.java b/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/conformance/profile/ProfileUtilities.java index 9d8809b5d..b3e384870 100644 --- a/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/conformance/profile/ProfileUtilities.java +++ b/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/conformance/profile/ProfileUtilities.java @@ -3969,12 +3969,12 @@ public class ProfileUtilities extends TranslatingUtilities { if (!isExtensionDefinition(sd)) { return false; } - ElementDefinition value = sd.getSnapshot().getElementByPath("Extension.value", true); + ElementDefinition value = sd.getSnapshot().getElementByPath("Extension.value"); return value != null && !value.isProhibited(); } public static boolean isModifierExtension(StructureDefinition sd) { - ElementDefinition defn = sd.getSnapshot().getElementByPath("Extension", true); + ElementDefinition defn = sd.getSnapshot().getElementByPath("Extension"); return defn.getIsModifier(); } diff --git a/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/elementmodel/Element.java b/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/elementmodel/Element.java index 32656c6e7..24b680eb7 100644 --- a/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/elementmodel/Element.java +++ b/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/elementmodel/Element.java @@ -1451,7 +1451,7 @@ public class Element extends Base { if (property.getStructure().hasExtension(ToolingExtensions.EXT_RESOURCE_IMPLEMENTS)) { StructureDefinition sd = property.getContext().fetchResource(StructureDefinition.class, ExtensionsUtils.getExtensionString(property.getStructure(), ToolingExtensions.EXT_RESOURCE_IMPLEMENTS)); if (sd != null) { - ElementDefinition ed = sd.getSnapshot().getElementByPath(property.getDefinition().getPath().replace(property.getStructure().getType(), sd.getType()), true); + ElementDefinition ed = sd.getSnapshot().getElementByPath(property.getDefinition().getPath().replace(property.getStructure().getType(), sd.getType())); if (ed != null) { return ed.getBase().getPath(); } diff --git a/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/model/Element.java b/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/model/Element.java index b93f37abb..106750506 100644 --- a/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/model/Element.java +++ b/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/model/Element.java @@ -301,9 +301,7 @@ public abstract class Element extends Base implements IBaseHasExtensions, IBaseE } public boolean isEmpty() { - boolean idIsEmpty = id == null || id.isEmpty(); - boolean extensionIsEmpty = extension == null || extension.size() == 0; - return super.isEmpty() && idIsEmpty && extensionIsEmpty; + return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(id, extension); } // Manual code (from Configuration.txt): diff --git a/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/model/PrimitiveType.java b/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/model/PrimitiveType.java index fac70c899..aed729203 100644 --- a/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/model/PrimitiveType.java +++ b/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/model/PrimitiveType.java @@ -130,8 +130,7 @@ public abstract class PrimitiveType extends DataType implements IPrimitiveTyp @Override public boolean isEmpty() { - String value = getValueAsString(); - return !super.isEmpty() || (value != null && value.length() > 0); + return super.isEmpty() && StringUtils.isBlank(getValueAsString()); } public boolean isPrimitive() { diff --git a/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/model/StructureDefinition.java b/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/model/StructureDefinition.java index 255a75c3a..4815ded2b 100644 --- a/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/model/StructureDefinition.java +++ b/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/model/StructureDefinition.java @@ -1233,15 +1233,12 @@ public class StructureDefinition extends CanonicalResource { // added from java-adornments.txt: - public ElementDefinition getElementByPath(String path, boolean autoChoice) { - if (autoChoice && path.endsWith("[x]")) { - path = path.substring(0, path.length()-3); - } + public ElementDefinition getElementByPath(String path) { if (path == null) { return null; } for (ElementDefinition ed : getElement()) { - if (path.equals(ed.getPath()) || (autoChoice && (path+"[x]").equals(ed.getPath()))) { + if (path.equals(ed.getPath()) || (path+"[x]").equals(ed.getPath())) { return ed; } } diff --git a/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/profilemodel/PEDefinition.java b/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/profilemodel/PEDefinition.java index 7fbb0eb4f..911c390e4 100644 --- a/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/profilemodel/PEDefinition.java +++ b/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/profilemodel/PEDefinition.java @@ -129,7 +129,7 @@ public abstract class PEDefinition { type= type.substring(0, type.indexOf(".")); } StructureDefinition sd = builder.getContext().fetchTypeDefinition(type); - return sd.getSnapshot().getElementByPath(definition.getBase().getPath(), true); + return sd.getSnapshot().getElementByPath(definition.getBase().getPath()); } /** diff --git a/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/profilemodel/PEDefinitionExtension.java b/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/profilemodel/PEDefinitionExtension.java index 59d357191..bb66d9d8f 100644 --- a/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/profilemodel/PEDefinitionExtension.java +++ b/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/profilemodel/PEDefinitionExtension.java @@ -21,8 +21,8 @@ public class PEDefinitionExtension extends PEDefinition { super(builder, name, profile, definition, ppath); this.sliceDefinition = sliceDefinition; this.extension= extension; - eed = extension.getSnapshot().getElementByPath("Extension.extension", true); - ved = extension.getSnapshot().getElementByPath("Extension.value[x]", true); + eed = extension.getSnapshot().getElementByPath("Extension.extension"); + ved = extension.getSnapshot().getElementByPath("Extension.value[x]"); } @Override diff --git a/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/instance/type/StructureMapValidator.java b/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/instance/type/StructureMapValidator.java index c7eab1f83..9206557a2 100644 --- a/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/instance/type/StructureMapValidator.java +++ b/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/instance/type/StructureMapValidator.java @@ -1060,7 +1060,7 @@ public class StructureMapValidator extends BaseValidator { if (sdt == null) { throw new Error("Unable to resolve "+url); } else { - ElementDefinition t2 = sdt.getSnapshot().getElementByPath(path, true); + ElementDefinition t2 = sdt.getSnapshot().getElementByPath(path); if (t2 == null) { throw new Error("Unable to resolve "+path+" in "+url); } else {