org.apache.jackrabbit.spi.commons.name
Class PathMap.Element<T>

java.lang.Object
  extended by org.apache.jackrabbit.spi.commons.name.PathMap.Element<T>
Enclosing class:
PathMap<T>

public static final class PathMap.Element<T>
extends Object

Internal class holding the object associated with a certain path element.


Method Summary
 T get()
          Return the object associated with this element
 List<PathMap.Element<T>> getChildren()
          Return an iterator over all of this element's children.
 int getChildrenCount()
          Return the children count of this element
 int getDepth()
          Return the depth of this element.
 PathMap.Element<T> getDescendant(Path relPath, boolean exact)
          Map a relPath starting at this Element.
 int getIndex()
          Return the non-normalized 1-based index of this element.
 Name getName()
          Return the name of this element
 int getNormalizedIndex()
          Return the 1-based index of this element.
 PathMap.Element<T> getParent()
          Return the parent of this element
 Path getPath()
          Return the path of this element.
 Path.Element getPathElement()
          Return a path element pointing to this element
 boolean hasPath(Path path)
          Checks whether this element has the specified path.
 void insert(Path.Element nameIndex)
          Insert an empty child.
 boolean isAncestorOf(PathMap.Element<T> other)
          Return a flag indicating whether the specified node is a child of this node.
 void put(Path.Element nameIndex, PathMap.Element<T> element)
          Link a child of this node.
 void remove()
          Remove this element.
 void remove(boolean shift)
          Remove this element.
 PathMap.Element<T> remove(Path.Element nameIndex)
          Remove a child.
 void removeAll()
          Remove all children of this element.
 void set(T obj)
          Set the object associated with this element
 void setChildren(Map<Path.Element,PathMap.Element<T>> children)
          Sets a new list of children of this element.
 void traverse(PathMap.ElementVisitor<T> visitor, boolean includeEmpty)
          Recursively invoked traversal method.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

insert

public void insert(Path.Element nameIndex)
Insert an empty child. Will shift all children having an index greater than or equal to the child inserted to the right.

Parameters:
nameIndex - position where child is inserted

put

public void put(Path.Element nameIndex,
                PathMap.Element<T> element)
Link a child of this node. Position is given by nameIndex.

Parameters:
nameIndex - position where child should be located
element - element to add

remove

public PathMap.Element<T> remove(Path.Element nameIndex)
Remove a child. Will shift all children having an index greater than the child removed to the left. If there are no more children left in this element and no object is associated with this element, the element itself gets removed.

Parameters:
nameIndex - child's path element
Returns:
removed child, may be null

remove

public void remove()
Remove this element. Delegates the call to the parent item. Index of same name siblings will be shifted!


remove

public void remove(boolean shift)
Remove this element. Delegates the call to the parent item.

Parameters:
shift - if index of same name siblings will be shifted.

removeAll

public void removeAll()
Remove all children of this element. Removes this element itself if this element does not contain associated information.


setChildren

public void setChildren(Map<Path.Element,PathMap.Element<T>> children)
Sets a new list of children of this element.

Parameters:
children - map of children; keys are of type Path.PathElement and values are of type Element

get

public T get()
Return the object associated with this element

Returns:
object associated with this element

set

public void set(T obj)
Set the object associated with this element

Parameters:
obj - object associated with this element

getName

public Name getName()
Return the name of this element

Returns:
name

getIndex

public int getIndex()
Return the non-normalized 1-based index of this element. Note that this method can return a value of 0 which should be treated as 1.

Returns:
index
See Also:
getNormalizedIndex()

getNormalizedIndex

public int getNormalizedIndex()
Return the 1-based index of this element. Same as getIndex() except that an undefined index value is automatically converted to the default index value.

Returns:
1-based index

getPathElement

public Path.Element getPathElement()
Return a path element pointing to this element

Returns:
path element

getPath

public Path getPath()
             throws MalformedPathException
Return the path of this element.

Returns:
path
Throws:
MalformedPathException - if building the path fails

hasPath

public boolean hasPath(Path path)
Checks whether this element has the specified path. Introduced to avoid catching a MalformedPathException for simple path comparisons.

Parameters:
path - path to compare to
Returns:
true if this child has the path path, false otherwise

traverse

public void traverse(PathMap.ElementVisitor<T> visitor,
                     boolean includeEmpty)
Recursively invoked traversal method. This method visits the element first, then its children.

Parameters:
visitor - visitor to invoke
includeEmpty - if true invoke call back on every element regardless, whether the associated object is empty or not; otherwise call back on non-empty children only

getDepth

public int getDepth()
Return the depth of this element. Defined to be 0 for the root element and n + 1 for some element if the depth of its parent is n.


isAncestorOf

public boolean isAncestorOf(PathMap.Element<T> other)
Return a flag indicating whether the specified node is a child of this node.

Parameters:
other - node to check

getParent

public PathMap.Element<T> getParent()
Return the parent of this element

Returns:
parent or null if this is the root element

getChildrenCount

public int getChildrenCount()
Return the children count of this element

Returns:
children count

getChildren

public List<PathMap.Element<T>> getChildren()
Return an iterator over all of this element's children. Every element returned by this iterator is of type PathMap.Element.


getDescendant

public PathMap.Element<T> getDescendant(Path relPath,
                                        boolean exact)
Map a relPath starting at this Element. If exact is false, returns the last available item along the relPath that is stored in the map.

Parameters:
relPath - relPath to map
exact - flag indicating whether an exact match is required
Returns:
descendant, maybe null if exact is true


Copyright © 2004-2010 The Apache Software Foundation. All Rights Reserved.