Class PathMap.Element<T>
- java.lang.Object
-
- org.apache.jackrabbit.spi.commons.name.PathMap.Element<T>
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description T
get()
Return the object associated with this elementjava.util.List<PathMap.Element<T>>
getChildren()
Return an iterator over all of this element's children.int
getChildrenCount()
Return the children count of this elementint
getDepth()
Return the depth of this element.PathMap.Element<T>
getDescendant(Path relPath, boolean exact)
Map a relPath starting atthis
Element.int
getIndex()
Return the non-normalized 1-based index of this element.Name
getName()
Return the name of this elementint
getNormalizedIndex()
Return the 1-based index of this element.PathMap.Element<T>
getParent()
Return the parent of this elementPath
getPath()
Return the path of this element.Path.Element
getPathElement()
Return a path element pointing to this elementboolean
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 elementvoid
setChildren(java.util.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.
-
-
-
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 bynameIndex
.- Parameters:
nameIndex
- position where child should be locatedelement
- 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(java.util.Map<Path.Element,PathMap.Element<T>> children)
Sets a new list of children of this element.- Parameters:
children
- map of children; keys are of typePath.PathElement
and values are of typeElement
-
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 asgetIndex()
except that anundefined index
value is automatically converted to thedefault 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 aMalformedPathException
for simple path comparisons.- Parameters:
path
- path to compare to- Returns:
true
if this child has the pathpath
,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 invokeincludeEmpty
- iftrue
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 be0
for the root element andn + 1
for some element if the depth of its parent isn
.
-
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 java.util.List<PathMap.Element<T>> getChildren()
Return an iterator over all of this element's children. Every element returned by this iterator is of typePathMap.Element
.
-
getDescendant
public PathMap.Element<T> getDescendant(Path relPath, boolean exact)
Map a relPath starting atthis
Element. Ifexact
isfalse
, returns the last available item along the relPath that is stored in the map.- Parameters:
relPath
- relPath to mapexact
- flag indicating whether an exact match is required- Returns:
- descendant, maybe
null
ifexact
istrue
-
-