|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.apache.jackrabbit.core.HierarchyManagerImpl
org.apache.jackrabbit.core.CachingHierarchyManager
public class CachingHierarchyManager
Implementation of a HierarchyManager that caches paths of
items.
| Field Summary | |
|---|---|
static int |
DEFAULT_UPPER_LIMIT
Default upper limit of cached states |
| Fields inherited from class org.apache.jackrabbit.core.HierarchyManagerImpl |
|---|
provider, resolver, rootNodeId |
| Constructor Summary | |
|---|---|
CachingHierarchyManager(NodeId rootNodeId,
ItemStateManager provider,
PathResolver resolver)
Create a new instance of this class. |
|
| Method Summary | |
|---|---|
protected void |
buildPath(Path.PathBuilder builder,
ItemState state)
Adds the path element of an item id to the path currently being built. Overridden method tries to find a mapping for the intermediate item state and add its path elements to the builder currently
being used. |
void |
dump(PrintStream ps)
Dump contents of path map and elements included to PrintStream given. |
int |
getDepth(ItemId id)
Returns the depth of the specified item which is equivalent to getPath(id).getAncestorCount(). The depth reflects the
absolute hierarchy level. |
QName |
getName(ItemId id)
Returns the name of the specified item. |
Path |
getPath(ItemId id)
Returns the path to the given item. Overridden method simply checks whether we have an item matching the id and returns its path, otherwise calls base implementation. |
boolean |
isAncestor(NodeId nodeId,
ItemId itemId)
Determines whether the node with the specified nodeId
is an ancestor of the item denoted by the given itemId.
This is equivalent to
getPath(nodeId).isAncestorOf(getPath(itemId)). |
void |
nodeAdded(NodeState state,
QName name,
int index,
NodeId id)
Called when a child node has been added |
void |
nodeModified(NodeState modified)
Called when a node has been modified, typically as a result of removal or addition of a child node. Evict moved or renamed items from the cache. |
void |
nodeRemoved(NodeState state,
QName name,
int index,
NodeId id)
Called when a child node has been removed |
void |
nodesReplaced(NodeState state)
Called when the children nodes were replaced by other nodes, typically as result of a reorder operation. Generate subsequent add and remove notifications for every replacement. |
ItemId |
resolvePath(Path path)
Resolves a path into an item id. Note that, for performance reasons, this method returns null
rather than throwing a PathNotFoundException if there's no
item to be found at path.
Check the path indicated inside our cache first. |
protected ItemId |
resolvePath(Path path,
ItemState state,
int next)
Resolve a path into an item id. Cache the intermediate item inside our cache. |
void |
stateCreated(ItemState created)
Called when an ItemState has successfully
been created (i.e. |
void |
stateDestroyed(ItemState destroyed)
Called when an ItemState has successfully been
removed (i.e. |
void |
stateDiscarded(ItemState discarded)
Called when an ItemState has been discarded (i.e. |
void |
stateModified(ItemState modified)
Called when an ItemState has successfully
been modified (i.e. |
| Methods inherited from class org.apache.jackrabbit.core.HierarchyManagerImpl |
|---|
getChildNodeEntry, getChildNodeEntry, getItemState, getParentId, getRelativeDepth, getRootNodeId, hasItemState, resolvePath, safeGetJCRPath, safeGetJCRPath |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
public static final int DEFAULT_UPPER_LIMIT
| Constructor Detail |
|---|
public CachingHierarchyManager(NodeId rootNodeId,
ItemStateManager provider,
PathResolver resolver)
rootNodeId - root node idprovider - item state managerresolver - namespace resolver| Method Detail |
|---|
protected ItemId resolvePath(Path path,
ItemState state,
int next)
throws ItemStateException
resolvePath in class HierarchyManagerImplpath - full path of item to resolvestate - intermediate statenext - next path element index to resolve
path or
null if no item exists at path.
ItemStateException
protected void buildPath(Path.PathBuilder builder,
ItemState state)
throws ItemStateException,
RepositoryException
builder contains the path of state.
Overridden method tries to find a mapping for the intermediate item
state and add its path elements to the builder currently
being used. If no mapping is found, the item is cached instead after
the base implementation has been invoked.
buildPath in class HierarchyManagerImplbuilder - builder currently being usedstate - item to find path of
ItemStateException
RepositoryException
public ItemId resolvePath(Path path)
throws RepositoryException
null
rather than throwing a PathNotFoundException if there's no
item to be found at path.
Check the path indicated inside our cache first.
resolvePath in interface HierarchyManagerresolvePath in class HierarchyManagerImplpath - path to resolve
path or null
if there's no item at path.
RepositoryException - if an error occurs
public Path getPath(ItemId id)
throws ItemNotFoundException,
RepositoryException
getPath in interface HierarchyManagergetPath in class HierarchyManagerImplItemNotFoundException
RepositoryException
public QName getName(ItemId id)
throws ItemNotFoundException,
RepositoryException
getName in interface HierarchyManagergetName in class HierarchyManagerImplid - id of item whose name should be returned
ItemNotFoundException
RepositoryException
public int getDepth(ItemId id)
throws ItemNotFoundException,
RepositoryException
getPath(id).getAncestorCount(). The depth reflects the
absolute hierarchy level.
getDepth in interface HierarchyManagergetDepth in class HierarchyManagerImplid - item id
ItemNotFoundException - if the specified id does not
denote an existing item.
RepositoryException - if another error occurs
public boolean isAncestor(NodeId nodeId,
ItemId itemId)
throws ItemNotFoundException,
RepositoryException
nodeId
is an ancestor of the item denoted by the given itemId.
This is equivalent to
getPath(nodeId).isAncestorOf(getPath(itemId)).
isAncestor in interface HierarchyManagerisAncestor in class HierarchyManagerImplnodeId - node iditemId - item id
true if the node with the specified
nodeId is an ancestor of the item denoted by the
given itemIdfalse otherwise
ItemNotFoundException - if any of the specified id's does not
denote an existing item.
RepositoryException - if another error occurspublic void stateCreated(ItemState created)
ItemState has successfully
been created (i.e. its underlying persistent state was created).
stateCreated in interface ItemStateListenercreated - the ItemState that has been 'created'public void stateModified(ItemState modified)
ItemState has successfully
been modified (i.e. its underlying persistent state has changed).
stateModified in interface ItemStateListenermodified - the ItemState that has been 'modified'public void nodeModified(NodeState modified)
ItemStateListener.stateModified(ItemState) was called.
Evict moved or renamed items from the cache.
nodeModified in interface NodeStateListenermodified - node state that changedpublic void stateDestroyed(ItemState destroyed)
ItemState has successfully been
removed (i.e. its underlying persistent state has been destroyed).
stateDestroyed in interface ItemStateListenerdestroyed - the ItemState that has been 'destroyed'public void stateDiscarded(ItemState discarded)
ItemState has been discarded (i.e. it has
been rendered 'invalid').
stateDiscarded in interface ItemStateListenerdiscarded - the ItemState that has been discardedItemState.discard()
public void nodeAdded(NodeState state,
QName name,
int index,
NodeId id)
nodeAdded in interface NodeStateListenerstate - node state that changedname - name of node that was addedindex - index of new nodeid - id of new nodepublic void nodesReplaced(NodeState state)
nodesReplaced in interface NodeStateListenerstate - node state that changed
public void nodeRemoved(NodeState state,
QName name,
int index,
NodeId id)
nodeRemoved in interface NodeStateListenerstate - node state that changedname - name of node that was removedindex - index of removed nodeid - id of removed nodepublic void dump(PrintStream ps)
PrintStream given.
dump in interface Dumpableps - print stream to dump to
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||