java.lang.Object
org.alfresco.service.cmr.repository.Path
All Implemented Interfaces:
Serializable, Iterable<Path.Element>

@AlfrescoPublicApi public final class Path extends Object implements Iterable<Path.Element>, 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:
  • Constructor Details

    • Path

      public Path()
  • Method Details

    • iterator

      public Iterator<Path.Element> iterator()
      Specified by:
      iterator in interface 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()
    • get

      public Path.Element get(int n)
    • toString

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

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

      public 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(Object o)
      Override equals to check equality of Path instances
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Override hashCode to check hash equality of Path instances
      Overrides:
      hashCode in class Object
    • getBaseNamePath

      public Path getBaseNamePath(TenantService tenantService)