diff --git a/infra/prism-api/src/main/java/com/evolveum/midpoint/prism/path/UniformItemPath.java b/infra/prism-api/src/main/java/com/evolveum/midpoint/prism/path/UniformItemPath.java index cc2776e7771..7e25e30f375 100644 --- a/infra/prism-api/src/main/java/com/evolveum/midpoint/prism/path/UniformItemPath.java +++ b/infra/prism-api/src/main/java/com/evolveum/midpoint/prism/path/UniformItemPath.java @@ -14,14 +14,14 @@ import java.util.List; import java.util.Map; +import javax.xml.namespace.QName; + /** * @author semancik * */ public interface UniformItemPath extends Serializable, Cloneable, ShortDumpable, ItemPath { - UniformItemPath EMPTY_PATH = UniformItemPathImpl.EMPTY_PATH; - @NotNull List getSegments(); @@ -95,4 +95,30 @@ default UniformItemPath rest() { void setNamespaceMap(Map namespaceMap); Map getNamespaceMap(); + + static UniformItemPath empty() { + return UniformItemPathImpl.EMPTY_PATH; + } + + static UniformItemPath create(Object... segments) { + return UniformItemPathImpl.create(segments); + } + + static @NotNull UniformItemPath from(ItemPath path) { + return UniformItemPathImpl.fromItemPath(path); + } + + static ItemPathSegment createSegment(QName qname, boolean variable) { + if (ParentPathSegment.QNAME.equals(qname)) { + return new ParentPathSegment(); + } else if (ObjectReferencePathSegment.QNAME.equals(qname)) { + return new ObjectReferencePathSegment(); + } else if (IdentifierPathSegment.QNAME.equals(qname)) { + return new IdentifierPathSegment(); + } else if (variable) { + return new VariableItemPathSegment(qname); + } else { + return new NameItemPathSegment(qname); + } + } } diff --git a/infra/prism-api/src/main/java/com/evolveum/midpoint/prism/path/UniformItemPathImpl.java b/infra/prism-api/src/main/java/com/evolveum/midpoint/prism/path/UniformItemPathImpl.java index 93cb90c7943..a31d1102210 100644 --- a/infra/prism-api/src/main/java/com/evolveum/midpoint/prism/path/UniformItemPathImpl.java +++ b/infra/prism-api/src/main/java/com/evolveum/midpoint/prism/path/UniformItemPathImpl.java @@ -18,7 +18,7 @@ * @author semancik * */ -public class UniformItemPathImpl implements UniformItemPath { +class UniformItemPathImpl implements UniformItemPath { public static final UniformItemPathImpl EMPTY_PATH = UniformItemPathImpl.createEmpty(); @@ -42,20 +42,6 @@ public static UniformItemPathImpl fromItemPath(ItemPath itemPath) { } } - public static ItemPathSegment createSegment(QName qname, boolean variable) { - if (ParentPathSegment.QNAME.equals(qname)) { - return new ParentPathSegment(); - } else if (ObjectReferencePathSegment.QNAME.equals(qname)) { - return new ObjectReferencePathSegment(); - } else if (IdentifierPathSegment.QNAME.equals(qname)) { - return new IdentifierPathSegment(); - } else if (variable) { - return new VariableItemPathSegment(qname); - } else { - return new NameItemPathSegment(qname); - } - } - public void setNamespaceMap(Map namespaceMap) { this.namespaceMap = namespaceMap; } @@ -216,7 +202,7 @@ private void add(Object object) { } private void add(QName qname) { - this.segments.add(createSegment(qname, false)); + this.segments.add(UniformItemPath.createSegment(qname, false)); } private void add(ItemPathSegment segment) { @@ -426,4 +412,8 @@ public String toString() { shortDump(sb); return sb.toString(); } + + static UniformItemPath create(Object... segments) { + return new UniformItemPathImpl(segments); + } } diff --git a/infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/PrismContextImpl.java b/infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/PrismContextImpl.java index ef13edaa38f..04978714f13 100644 --- a/infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/PrismContextImpl.java +++ b/infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/PrismContextImpl.java @@ -16,7 +16,6 @@ import com.evolveum.midpoint.prism.impl.crypto.KeyStoreBasedProtectorImpl; import com.evolveum.midpoint.prism.impl.marshaller.*; import com.evolveum.midpoint.prism.impl.path.CanonicalItemPathImpl; -import com.evolveum.midpoint.prism.path.UniformItemPathImpl; import com.evolveum.midpoint.prism.impl.schema.SchemaDefinitionFactory; import com.evolveum.midpoint.prism.impl.schema.SchemaFactoryImpl; import com.evolveum.midpoint.prism.impl.schema.SchemaRegistryImpl; @@ -563,12 +562,12 @@ public ParsingContext createParsingContextForCompatibilityMode() { @Override public UniformItemPath emptyPath() { - return UniformItemPathImpl.EMPTY_PATH; + return UniformItemPath.empty(); } @Override public UniformItemPath path(Object... namesOrIdsOrSegments) { - return new UniformItemPathImpl(namesOrIdsOrSegments); + return UniformItemPath.create(namesOrIdsOrSegments); } @Override @@ -601,17 +600,17 @@ public KeyStoreBasedProtector createProtector(KeyStoreBasedProtectorBuilder buil @NotNull @Override public UniformItemPath toUniformPath(ItemPath path) { - return UniformItemPathImpl.fromItemPath(path); + return UniformItemPath.from(path); } @Override public UniformItemPath toUniformPathKeepNull(ItemPath path) { - return path != null ? UniformItemPathImpl.fromItemPath(path) : null; + return path != null ? UniformItemPath.from(path) : null; } @Override public UniformItemPath toUniformPath(ItemPathType path) { - return UniformItemPathImpl.fromItemPath(path.getItemPath()); + return UniformItemPath.from(path.getItemPath()); } @Override diff --git a/infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/marshaller/ItemPathHolder.java b/infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/marshaller/ItemPathHolder.java index 669b27fc363..d39c5cded6a 100644 --- a/infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/marshaller/ItemPathHolder.java +++ b/infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/marshaller/ItemPathHolder.java @@ -8,7 +8,6 @@ package com.evolveum.midpoint.prism.impl.marshaller; import com.evolveum.midpoint.prism.PrismConstants; -import com.evolveum.midpoint.prism.path.UniformItemPathImpl; import com.evolveum.midpoint.prism.path.*; import com.evolveum.midpoint.prism.impl.xml.GlobalDynamicNamespacePrefixMapper; import com.evolveum.midpoint.util.DOMUtil; @@ -218,11 +217,11 @@ private String findNamespace(String prefix, Node domNode, Map na //region Serializing public static String serializeWithDeclarations(@NotNull ItemPath itemPath) { - return new ItemPathHolder(UniformItemPathImpl.fromItemPath(itemPath)).getXPathWithDeclarations(); + return new ItemPathHolder(UniformItemPath.from(itemPath)).getXPathWithDeclarations(); } public static String serializeWithForcedDeclarations(@NotNull ItemPath itemPath) { - return new ItemPathHolder(UniformItemPathImpl.fromItemPath(itemPath), true).getXPathWithDeclarations(); + return new ItemPathHolder(UniformItemPath.from(itemPath), true).getXPathWithDeclarations(); } private ItemPathHolder(@NotNull UniformItemPath itemPath) { @@ -398,7 +397,7 @@ public Map getNamespaceMap() { } public static Element serializeToElement(ItemPath path, QName elementQName, Document document) { - return new ItemPathHolder(UniformItemPathImpl.fromItemPath(path)).toElement(elementQName, document); + return new ItemPathHolder(UniformItemPath.from(path)).toElement(elementQName, document); } public Element toElement(QName elementQName, Document document) { @@ -443,10 +442,10 @@ public UniformItemPath toItemPath() { } else { QName qName = segment.getQName(); boolean variable = segment.isVariable(); - segments.add(UniformItemPathImpl.createSegment(qName, variable)); + segments.add(UniformItemPath.createSegment(qName, variable)); } } - UniformItemPath path = new UniformItemPathImpl(segments); + UniformItemPath path = UniformItemPath.create(segments); path.setNamespaceMap(explicitNamespaceDeclarations); return path; } diff --git a/infra/prism-impl/src/test/java/com/evolveum/midpoint/prism/TestPath.java b/infra/prism-impl/src/test/java/com/evolveum/midpoint/prism/TestPath.java index 25964e0101c..c2c5128c8e9 100644 --- a/infra/prism-impl/src/test/java/com/evolveum/midpoint/prism/TestPath.java +++ b/infra/prism-impl/src/test/java/com/evolveum/midpoint/prism/TestPath.java @@ -40,8 +40,8 @@ public class TestPath extends AbstractPrismTest { */ @Test public void testEmptyPath() { - System.out.println("UniformItemPath.EMPTY_PATH = " + UniformItemPath.EMPTY_PATH); - System.out.println("UniformItemPathImpl.EMPTY_PATH = " + UniformItemPathImpl.EMPTY_PATH); + System.out.println("UniformItemPath.empty() = " + UniformItemPath.empty()); + assertNotNull(UniformItemPath.empty()); } @Test diff --git a/model/model-intest/src/test/java/com/evolveum/midpoint/model/intest/gensync/TestEditSchema.java b/model/model-intest/src/test/java/com/evolveum/midpoint/model/intest/gensync/TestEditSchema.java index d32f6ea192b..79096ca8c82 100644 --- a/model/model-intest/src/test/java/com/evolveum/midpoint/model/intest/gensync/TestEditSchema.java +++ b/model/model-intest/src/test/java/com/evolveum/midpoint/model/intest/gensync/TestEditSchema.java @@ -21,7 +21,6 @@ import com.evolveum.midpoint.prism.path.ItemName; import com.evolveum.midpoint.prism.path.ItemPath; import com.evolveum.midpoint.prism.path.UniformItemPath; -import com.evolveum.midpoint.prism.path.UniformItemPathImpl; import com.evolveum.midpoint.schema.*; import com.evolveum.midpoint.xml.ns._public.common.common_3.*; @@ -1696,7 +1695,6 @@ public void testEmptyPath() { * UniformItemPath.EMPTY_PATH = * UniformItemPathImpl.EMPTY_PATH = */ - System.out.println("UniformItemPath.EMPTY_PATH = " + UniformItemPath.EMPTY_PATH); - System.out.println("UniformItemPathImpl.EMPTY_PATH = " + UniformItemPathImpl.EMPTY_PATH); + System.out.println("UniformItemPath.EMPTY_PATH = " + UniformItemPath.empty()); } }