Class Path

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Iterable<Path.Element>

    @AlfrescoPublicApi
    public final class Path
    extends java.lang.Object
    implements java.lang.Iterable<Path.Element>, java.io.Serializable
    Representation of a simple path e.g.
       /x/y/z
     
    In the above example, there will be 4 elements, the first being a reference to the root node, followed by qname elements for x, y and z.

    Methods and constructors are available to construct a Path instance from a path string or by building the path incrementally, including the ability to append and prepend path elements.

    Path elements supported:

    • /{namespace}name fully qualified element
    • /name element using default namespace
    • /{namespace}name[n] nth sibling
    • /name[n] nth sibling using default namespace
    • /descendant-or-self::node() descendent or self
    • /. self
    • /.. parent
    Author:
    Derek Hulley
    See Also:
    Serialized Form
    • Constructor Detail

      • Path

        public Path()
    • Method Detail

      • iterator

        public java.util.Iterator<Path.Element> iterator()
        Specified by:
        iterator in interface java.lang.Iterable<Path.Element>
        Returns:
        Returns a typed iterator over the path elements
      • prepend

        public Path prepend​(Path.Element pathElement)
        Add a path element to the beginning of the path. This operation is useful in cases where a path is built by traversing up a hierarchy.
        Parameters:
        pathElement - Path.Element
        Returns:
        Returns this instance of the path
      • prepend

        public Path prepend​(Path path)
        Merge the given path into the beginning of this path.
        Parameters:
        path - Path
        Returns:
        Returns this instance of the path
      • append

        public Path append​(Path.Element pathElement)
        Appends a path element to the end of the path
        Parameters:
        pathElement - Path.Element
        Returns:
        Returns this instance of the path
      • append

        public Path append​(Path path)
        Append the given path of this path.
        Parameters:
        path - Path
        Returns:
        Returns this instance of the path
      • first

        public Path.Element first()
        Returns:
        Returns the first element in the path or null if the path is empty
      • last

        public Path.Element last()
        Returns:
        Returns the last element in the path or null if the path is empty
      • size

        public int size()
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
        Returns:
        Returns a string path made up of the component elements of this instance
      • toPrefixString

        public java.lang.String toPrefixString​(NamespacePrefixResolver resolver)
        Returns:
        Returns a string path made up of the component elements of this instance (prefixed where appropriate)
      • toDisplayPath

        public java.lang.String toDisplayPath​(NodeService nodeService,
                                              PermissionService permissionService)
        Return the human readable form of the specified node Path. Slow version of the method that extracts the name of each node in the Path from the supplied NodeService.
        Returns:
        human readable form of the Path excluding the final element
      • subPath

        public Path subPath​(int depth)
        Return a new Path representing this path to the specified depth
        Parameters:
        depth - the path depth (0 based)
        Returns:
        the sub-path
      • subPath

        public Path subPath​(int start,
                            int end)
        Return a new Path representing this path to the specified depth For example, subPath(2, 4) would return the third and forth elements in the Path.
        Parameters:
        start - position (0 based)
        end - position (0 based)
        Returns:
        the sub-path
      • equals

        public boolean equals​(java.lang.Object o)
        Override equals to check equality of Path instances
        Overrides:
        equals in class java.lang.Object
      • hashCode

        public int hashCode()
        Override hashCode to check hash equality of Path instances
        Overrides:
        hashCode in class java.lang.Object