org.alfresco.service.cmr.repository
Class Path

java.lang.Object
  extended by org.alfresco.service.cmr.repository.Path
All Implemented Interfaces:
java.io.Serializable, java.lang.Iterable

public final class Path
extends java.lang.Object
implements java.lang.Iterable, 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:

See Also:
Serialized Form

Nested Class Summary
static class Path.AttributeElement
          Represents a qualified path to an attribute, including the sibling for repeated properties/attributes to retrieve e.g.
static class Path.ChildAssocElement
          Represents a qualified path between a parent and a child node, including the sibling to retrieve e.g.
static class Path.DescendentOrSelfElement
          Represents the // or /descendant-or-self::node() xpath element
static class Path.Element
          Represents a path element.
static class Path.ParentElement
          Represents the /.. xpath element
static class Path.SelfElement
          Represents the /. xpath element
 
Constructor Summary
Path()
           
 
Method Summary
 Path append(Path.Element pathElement)
          Appends a path element to the end of the path
 Path append(Path path)
          Append the given path of this path.
 boolean equals(java.lang.Object o)
          Override equals to check equality of Path instances
 Path.Element first()
           
 Path.Element get(int n)
           
 int hashCode()
          Override hashCode to check hash equality of Path instances
 java.util.Iterator iterator()
           
 Path.Element last()
           
 Path prepend(Path.Element pathElement)
          Add a path element to the beginning of the path.
 Path prepend(Path path)
          Merge the given path into the beginning of this path.
 int size()
           
 Path subPath(int depth)
          Return a new Path representing this path to the specified depth
 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.
 java.lang.String toDisplayPath(NodeService nodeService, PermissionService permissionService)
          Return the human readable form of the specified node Path.
 java.lang.String toPrefixString(NamespacePrefixResolver resolver)
           
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

Path

public Path()
Method Detail

iterator

public java.util.Iterator iterator()
Specified by:
iterator in interface java.lang.Iterable
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 -
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 -
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 -
Returns:
Returns this instance of the path

append

public Path append(Path path)
Append the given path of this path.

Parameters:
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 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


Copyright © 2005 - 2010 Alfresco Software, Inc. All Rights Reserved.