|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.apache.jackrabbit.core.HierarchyManagerImpl org.apache.jackrabbit.core.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 |
nsResolver, provider, rootNodeId |
Constructor Summary | |
CachingHierarchyManager(NodeId rootNodeId,
ItemStateManager provider,
NamespaceResolver nsResolver)
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. Recursively invoked method that may be overridden by some subclass to either return cached responses or add response to cache. On exit, 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. |
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 |
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. Check the path indicated inside our cache first. |
protected ItemId |
resolvePath(Path path,
ItemState state,
int next)
Resolve a path into an item id. Recursively invoked method that may be overridden by some subclass to either return cached responses or add response to cache. Cache the intermediate item inside our cache. |
void |
stateCreated(ItemState created)
Called when an ItemState has successfully
been created (i.e. its underlying persistent state was created). |
void |
stateDestroyed(ItemState destroyed)
Called when an ItemState has successfully been
removed (i.e. its underlying persistent state has been destroyed). |
void |
stateDiscarded(ItemState discarded)
Called when an ItemState has been discarded (i.e. it has
been rendered 'invalid'). |
void |
stateModified(ItemState modified)
Called when an ItemState has successfully
been modified (i.e. its underlying persistent state has changed). |
void |
stateOverlaid(ItemState overlayer)
Called when an ItemState has been overlaid by some
other state that now takes its identity. |
void |
stateUncovered(ItemState overlayer)
Called when an ItemState no longer overlayes some other
item state. |
Methods inherited from class org.apache.jackrabbit.core.HierarchyManagerImpl |
getChildNodeEntry, getChildNodeEntry, getItemState, getNamespaceResolver, 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, NamespaceResolver nsResolver)
rootNodeId
- root node idprovider
- item state managernsResolver
- namespace resolverMethod Detail |
protected ItemId resolvePath(Path path, ItemState state, int next) throws PathNotFoundException, ItemStateException
resolvePath
in class HierarchyManagerImpl
path
- full path of item to resolvestate
- intermediate statenext
- next path element index to resolve
path
PathNotFoundException
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 HierarchyManagerImpl
builder
- builder currently being usedstate
- item to find path of
ItemStateException
RepositoryException
public ItemId resolvePath(Path path) throws PathNotFoundException, RepositoryException
resolvePath
in interface HierarchyManager
resolvePath
in class HierarchyManagerImpl
PathNotFoundException
RepositoryException
public Path getPath(ItemId id) throws ItemNotFoundException, RepositoryException
getPath
in interface HierarchyManager
getPath
in class HierarchyManagerImpl
ItemNotFoundException
RepositoryException
public QName getName(ItemId id) throws ItemNotFoundException, RepositoryException
getName
in interface HierarchyManager
getName
in class HierarchyManagerImpl
ItemNotFoundException
RepositoryException
public int getDepth(ItemId id) throws ItemNotFoundException, RepositoryException
getPath(id).getAncestorCount()
. The depth reflects the
absolute hierarchy level.
getDepth
in interface HierarchyManager
getDepth
in class HierarchyManagerImpl
ItemNotFoundException
RepositoryException
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 HierarchyManager
isAncestor
in class HierarchyManagerImpl
ItemNotFoundException
RepositoryException
public void stateCreated(ItemState created)
ItemState
has successfully
been created (i.e. its underlying persistent state was created).
stateCreated
in interface ItemStateListener
created
- 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 ItemStateListener
modified
- the ItemState
that has been 'modified'public void stateDestroyed(ItemState destroyed)
ItemState
has successfully been
removed (i.e. its underlying persistent state has been destroyed).
stateDestroyed
in interface ItemStateListener
destroyed
- 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 ItemStateListener
discarded
- the ItemState
that has been discardedItemState.discard()
public void stateOverlaid(ItemState overlayer)
ItemState
has been overlaid by some
other state that now takes its identity. This notification is sent
on the state being overlaid.
overlayer
- the ItemState
that overlays this statepublic void stateUncovered(ItemState overlayer)
ItemState
no longer overlayes some other
item state. This notification is sent on the state overlaying another
state.
overlayer
- the ItemState
that overlaid another
item state. To get the overlaid state, invoke
ItemState.getOverlayedState()
public void nodeAdded(NodeState state, QName name, int index, NodeId id)
nodeAdded
in interface NodeStateListener
state
- 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 NodeStateListener
state
- node state that changedpublic void nodeRemoved(NodeState state, QName name, int index, NodeId id)
nodeRemoved
in interface NodeStateListener
state
- node state that changedname
- name of node that was removedindex
- index of removed nodeid
- id of removed node
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |