public static <T> T getFromMap(Map<UniformItemPath, T> map, UniformItemPath itemPath) { for (Map.Entry<UniformItemPath, T> entry : map.entrySet()) { if (entry.getKey().equivalent(itemPath)) { return entry.getValue(); } } return null; } }
public boolean isRoot() { UniformItemPath itemPathOrNull = getItemPathOrNull(); return itemPathOrNull == null || itemPathOrNull.isEmpty(); }
public UniformItemPathImpl(UniformItemPath parentPath, UniformItemPath childPath) { this.segments = new ArrayList<>(parentPath.getSegments().size()+childPath.getSegments().size()); segments.addAll(parentPath.getSegments()); segments.addAll(childPath.getSegments()); }
UniformItemPath normalized1 = path1.normalize(); UniformItemPath normalized2 = path2.normalize(); UniformItemPath normalized22 = path22.normalize(); UniformItemPath normalized3 = path3.normalize(); UniformItemPath normalized4 = path4.normalize(); UniformItemPath normalized5 = path5.normalize(); UniformItemPath normalizedE = pathE.normalize(); assertNormalizedPath(normalized4, "x"); assertNormalizedPath(normalized5, "foo", 123L); assert normalizedE.isEmpty() : "normalizedE is not empty";
private ItemPathHolder(@NotNull UniformItemPath itemPath, boolean forceExplicitNamespaceDeclarations) { if (itemPath.getNamespaceMap() != null) { this.explicitNamespaceDeclarations.putAll(itemPath.getNamespaceMap()); for (ItemPathSegment segment: itemPath.getSegments()) { PathHolderSegment xsegment; if (segment instanceof NameItemPathSegment) {
private void assertNormalizedPath(UniformItemPath normalized, Object... expected) { assertEquals("wrong path length",normalized.size(), expected.length); for(int i=0; i<normalized.size(); i+=2) { ItemPathSegment nameSegment = normalized.getSegment(i); assert ItemPath.isName(nameSegment) : "Expected name segment but it was "+nameSegment.getClass(); QName name = ItemPath.toName(nameSegment); assert name != null : "name is null"; assert name.getNamespaceURI().equals(NS) : "wrong namespace: "+name.getNamespaceURI(); assert name.getLocalPart().equals(expected[i]) : "wrong local name, expected "+expected[i]+", was "+name.getLocalPart(); if (i + 1 < expected.length) { Object idSegment = normalized.getSegment(i+1); assert ItemPath.isId(idSegment) : "Expected is segment but it was "+idSegment.getClass(); Long id = ItemPath.toId(idSegment); assertId(id, (Long)expected[i+1]); } } }
UniformItemPath customPath = prismContext.emptyPath(); for (JaxbName name : path.itemPath()) { customPath = customPath.append(new QName(name.namespace(), name.localPart()));
public static <T> T putToMap(Map<UniformItemPath, T> map, UniformItemPath itemPath, T value) { for (UniformItemPath key : map.keySet()) { if (key.equivalent(itemPath)) { return map.put(key, value); } } return map.put(itemPath, value); }
public UniformItemPathImpl(UniformItemPath parentPath, ItemPathSegment subSegment) { this.segments = new ArrayList<>(parentPath.getSegments().size() + 1); this.segments.addAll(parentPath.getSegments()); this.segments.add(subSegment); }
/** * Finds all the options for given path. TODO could there be more than one? * Returns live objects that could be modified by client. */ @NotNull public static <T> Collection<T> findOptionsForPath(Collection<SelectorOptions<T>> options, @NotNull UniformItemPath path) { Collection<T> rv = new ArrayList<>(); for (SelectorOptions<T> oooption: CollectionUtils.emptyIfNull(options)) { if (path.equivalent(oooption.getItemPathOrNull())) { rv.add(oooption.getOptions()); } } return rv; }
public UniformItemPathImpl(UniformItemPath parentPath, QName subName) { this.segments = new ArrayList<>(parentPath.getSegments().size()+1); segments.addAll(parentPath.getSegments()); add(subName); }
@Test public void testXPathSerializationToDom() { // GIVEN QName qname1 = new QName(NS_C, "extension"); QName qname2 = new QName(NS_FOO, "foo"); ItemPathHolder itemPathHolder1 = ItemPathHolder.createForTesting(qname1, qname2); QName elementQName = new QName(NS_BAR, "bar"); // WHEN Element element = itemPathHolder1.toElement(elementQName, DOMUtil.getDocument()); ItemPathHolder itemPathHolder2 = ItemPathHolder.createForTesting(element); // THEN System.out.println("XPath from QNames:"); System.out.println(DOMUtil.serializeDOMToString(element)); UniformItemPath xpath1 = itemPathHolder1.toItemPath(); UniformItemPath xpath2 = itemPathHolder2.toItemPath(); assertTrue("Paths are not equivalent", xpath1.equivalent(xpath2)); }
public UniformItemPath append(UniformItemPath subPath) { UniformItemPathImpl newPath = new UniformItemPathImpl(segments); newPath.segments.addAll(subPath.getSegments()); return newPath; }
} else if (paging.getOrderingInstructions().size() == 1) { ItemPath orderBy = paging.getOrderBy(); if (CREATED_PATH.equivalent(orderBy)) { taskQuery = taskQuery.orderByTaskCreateTime(); } else {
if (params.isFixTarget() && mappingOutputPathUniform != null && defaultTargetItemPath != null && !mappingOutputPathUniform.equivalent(defaultTargetItemPath)) { throw new ExpressionEvaluationException("Target cannot be overridden in "+mappingDesc); if (params.isFixTarget() && mappingOutputPath != null && defaultTargetItemPath != null && !mappingOutputPath.equivalent(defaultTargetItemPath)) { throw new ExpressionEvaluationException("Target cannot be overridden in "+mappingDesc);