@NotNull public UniformItemPath toItemPath() { List<PathHolderSegment> xsegments = toSegments(); List<ItemPathSegment> segments = new ArrayList<>(xsegments.size()); for (PathHolderSegment segment : xsegments) { if (segment.isIdValueFilter()) { segments.add(new IdItemPathSegment(idToLong(segment.getValue()))); } else { QName qName = segment.getQName(); boolean variable = segment.isVariable(); segments.add(UniformItemPathImpl.createSegment(qName, variable)); } } UniformItemPath path = new UniformItemPathImpl(segments); path.setNamespaceMap(explicitNamespaceDeclarations); return path; } //endregion