|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.apache.jackrabbit.core.state.SessionItemStateManager
public class SessionItemStateManager
Item state manager that handles both transient and persistent items.
| Constructor Summary | |
|---|---|
protected |
SessionItemStateManager(NodeId rootNodeId,
LocalItemStateManager stateMgr,
NodeTypeRegistry ntReg)
Creates a new SessionItemStateManager instance. |
| Method Summary | |
|---|---|
void |
addListener(ItemStateListener listener)
Add an ItemStateListener |
void |
cancel()
Cancel an update operation. |
static SessionItemStateManager |
createInstance(NodeId rootNodeId,
LocalItemStateManager stateMgr,
NodeTypeRegistry ntReg)
Creates a new SessionItemStateManager instance. |
PropertyState |
createNew(Name propName,
NodeId parentId)
Creates a PropertyState instance representing new,
i.e. |
NodeState |
createNew(NodeId id,
Name nodeTypeName,
NodeId parentId)
Creates a NodeState instance representing new,
i.e. |
NodeState |
createNew(NodeState transientState)
Customized variant of createNew(NodeId, Name, NodeId) that
connects the newly created persistent state with the transient state. |
PropertyState |
createNew(PropertyState transientState)
Customized variant of createNew(Name, NodeId) that
connects the newly created persistent state with the transient state. |
NodeState |
createTransientNodeState(NodeId id,
Name nodeTypeName,
NodeId parentId,
int initialStatus)
|
NodeState |
createTransientNodeState(NodeState overlayedState,
int initialStatus)
|
PropertyState |
createTransientPropertyState(NodeId parentId,
Name propName,
int initialStatus)
|
PropertyState |
createTransientPropertyState(PropertyState overlayedState,
int initialStatus)
|
void |
destroy(ItemState state)
Destroy an item state. |
void |
disconnectTransientItemState(ItemState state)
Disconnect a transient item state from its underlying persistent state. |
void |
dispose()
Disposes this UpdatableItemStateManager and frees resources. |
void |
disposeAllTransientItemStates()
Disposes all transient item states in the cache and in the attic. |
void |
disposeTransientItemState(ItemState state)
Disposes the specified transient item state instance, i.e. |
void |
disposeTransientItemStateInAttic(ItemState state)
Disposes the specified transient item state instance in the attic, i.e. |
void |
dump(PrintStream ps)
Dumps the state of this instance in a human readable format for diagnostic purposes. |
void |
edit()
Start an edit operation on items inside this manager. |
ItemStateManager |
getAttic()
Return the attic item state provider that holds all items moved into the attic. |
HierarchyManager |
getAtticAwareHierarchyMgr()
Returns an attic-aware hierarchy manager, i.e. |
Iterator<ItemState> |
getDescendantTransientItemStates(NodeId parentId)
Returns an iterator over those transient item state instances that are direct or indirect descendants of the item state with the given parentId. |
Iterator<ItemState> |
getDescendantTransientItemStatesInAttic(NodeId parentId)
Same as
except that item state instances in the attic are returned. |
HierarchyManager |
getHierarchyMgr()
Returns the hierarchy manager |
NodeId |
getIdOfRootTransientNodeState()
Returns the id of the root of the minimal subtree including all transient states. |
ItemState |
getItemState(ItemId id)
Return an item state, given its item id. |
NodeReferences |
getNodeReferences(NodeId id)
Return a node references object, given its target id |
ItemState |
getTransientItemState(ItemId id)
|
boolean |
hasAnyTransientItemStates()
|
boolean |
hasItemState(ItemId id)
Return a flag indicating whether an item state for a given item id exists. |
boolean |
hasNodeReferences(NodeId id)
Return a flag indicating whether a node references object for a given target id exists. |
boolean |
hasTransientItemState(ItemId id)
|
boolean |
hasTransientItemStateInAttic(ItemId id)
|
boolean |
inEditMode()
Returns true if this manager is in edit mode i.e. |
boolean |
isItemStateInAttic(ItemId id)
Return a flag indicating whether the specified item is in the transient item state manager's attic space. |
void |
moveTransientItemStateToAttic(ItemState state)
Transfers the specified transient item state instance from the 'active' cache to the attic. |
void |
nodeAdded(NodeState state,
Name name,
int index,
NodeId id)
Called when a child node has been added |
void |
nodeModified(NodeState state)
Called when a node has been modified, typically as a result of removal or addition of a child node. |
void |
nodeRemoved(NodeState state,
Name 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. |
void |
removeListener(ItemStateListener listener)
Remove an ItemStateListener |
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. |
void |
store(ItemState state)
Store an item state. |
void |
update()
End an update operation. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
protected SessionItemStateManager(NodeId rootNodeId,
LocalItemStateManager stateMgr,
NodeTypeRegistry ntReg)
SessionItemStateManager instance.
rootNodeId - the root node idstateMgr - the local item state managerntReg - node type registry| Method Detail |
|---|
public static SessionItemStateManager createInstance(NodeId rootNodeId,
LocalItemStateManager stateMgr,
NodeTypeRegistry ntReg)
SessionItemStateManager instance.
rootNodeId - the root node idstateMgr - the local item state managerntReg - node type registry
public HierarchyManager getHierarchyMgr()
public HierarchyManager getAtticAwareHierarchyMgr()
public void dump(PrintStream ps)
dump in interface Dumpableps - stream to dump state to
public ItemState getItemState(ItemId id)
throws NoSuchItemStateException,
ItemStateException
getItemState in interface ItemStateManagerid - item id
NoSuchItemStateException - if the item does not exist
ItemStateException - if an error occurspublic boolean hasItemState(ItemId id)
hasItemState in interface ItemStateManagerid - item id
true if an item state exists,
otherwise false
public NodeReferences getNodeReferences(NodeId id)
throws NoSuchItemStateException,
ItemStateException
getNodeReferences in interface ItemStateManagerid - target id
NoSuchItemStateException - if the item does not exist
ItemStateException - if an error occurspublic boolean hasNodeReferences(NodeId id)
hasNodeReferences in interface ItemStateManagerid - target id
true if a node reference object exists for the given
id, otherwise false.
public void edit()
throws IllegalStateException
UpdatableItemStateManager.update() or UpdatableItemStateManager.cancel()
must be invoked.
edit in interface UpdatableItemStateManagerIllegalStateException - if the manager is already in edit mode.public boolean inEditMode()
true if this manager is in edit mode i.e.
if an edit operation has been started by invoking UpdatableItemStateManager.edit(),
otherwise returns false.
inEditMode in interface UpdatableItemStateManagertrue if this manager is in edit mode, otherwise
false
public NodeState createNew(NodeId id,
Name nodeTypeName,
NodeId parentId)
throws IllegalStateException
NodeState instance representing new,
i.e. not yet existing state. Call UpdatableItemStateManager.store(org.apache.jackrabbit.core.state.ItemState)
on the returned object to make it persistent.
createNew in interface UpdatableItemStateManagerid - the id of the nodenodeTypeName - The node type nameparentId - parent node's id
IllegalStateException - if the manager is not in edit mode.
public NodeState createNew(NodeState transientState)
throws IllegalStateException
createNew(NodeId, Name, NodeId) that
connects the newly created persistent state with the transient state.
IllegalStateException
public PropertyState createNew(Name propName,
NodeId parentId)
throws IllegalStateException
PropertyState instance representing new,
i.e. not yet existing state. Call UpdatableItemStateManager.store(org.apache.jackrabbit.core.state.ItemState)
on the returned object to make it persistent.
createNew in interface UpdatableItemStateManagerpropName - property nameparentId - parent node Id
IllegalStateException - if the manager is not in edit mode.
public PropertyState createNew(PropertyState transientState)
throws IllegalStateException
createNew(Name, NodeId) that
connects the newly created persistent state with the transient state.
IllegalStateException
public void store(ItemState state)
throws IllegalStateException
store in interface UpdatableItemStateManagerstate - item state that should be stored
IllegalStateException - if the manager is not in edit mode.
public void destroy(ItemState state)
throws IllegalStateException
destroy in interface UpdatableItemStateManagerstate - item state that should be destroyed
IllegalStateException - if the manager is not in edit mode.
public void cancel()
throws IllegalStateException
cancel in interface UpdatableItemStateManagerIllegalStateException - if the manager is not in edit mode.
public void update()
throws ReferentialIntegrityException,
StaleItemStateException,
ItemStateException,
IllegalStateException
update in interface UpdatableItemStateManagerReferentialIntegrityException - if a new or modified REFERENCE
property refers to a non-existent
target or if a removed node is still
being referenced
StaleItemStateException - if at least one of the affected items
has become stale in the meantime
ItemStateException - if the operation failed for another reason
IllegalStateException - if the manager is not in edit mode.public void dispose()
UpdatableItemStateManager and frees resources.
dispose in interface UpdatableItemStateManager
public ItemState getTransientItemState(ItemId id)
throws NoSuchItemStateException,
ItemStateException
id -
NoSuchItemStateException
ItemStateExceptionpublic boolean hasTransientItemState(ItemId id)
id -
public boolean hasTransientItemStateInAttic(ItemId id)
id -
public boolean hasAnyTransientItemStates()
true if this manager has any transient state;
false otherwise.
public Iterator<ItemState> getDescendantTransientItemStates(NodeId parentId)
throws InvalidItemStateException,
RepositoryException
parentId. The transient item state instance with the given
parentId itself (if there is such) will not be included.
The instances are returned in depth-first tree traversal order.
parentId - the id of the common parent of the transient item state
instances to be returned.
InvalidItemStateException - if any descendant item state has been
deleted externally
RepositoryException - if another error occurspublic Iterator<ItemState> getDescendantTransientItemStatesInAttic(NodeId parentId)
getDescendantTransientItemStates(NodeId)
except that item state instances in the attic are returned.
parentId - the id of the common parent of the transient item state
instances to be returned.
public NodeId getIdOfRootTransientNodeState()
throws RepositoryException
RepositoryException - if an error occurspublic boolean isItemStateInAttic(ItemId id)
id - item id
true if the item state is in the attic space;
false otherwise
public NodeState createTransientNodeState(NodeId id,
Name nodeTypeName,
NodeId parentId,
int initialStatus)
throws ItemStateException
id - nodeTypeName - parentId - initialStatus -
ItemStateException
public NodeState createTransientNodeState(NodeState overlayedState,
int initialStatus)
throws ItemStateException
overlayedState - initialStatus -
ItemStateException
public PropertyState createTransientPropertyState(NodeId parentId,
Name propName,
int initialStatus)
throws ItemStateException
parentId - propName - initialStatus -
ItemStateException
public PropertyState createTransientPropertyState(PropertyState overlayedState,
int initialStatus)
throws ItemStateException
overlayedState - initialStatus -
ItemStateExceptionpublic void disconnectTransientItemState(ItemState state)
HierarchyManager about the changed identity.
state - the transient ItemState instance that should
be disconnectedpublic void disposeTransientItemState(ItemState state)
state - the transient ItemState instance that should
be disposedItemState.discard()public void moveTransientItemStateToAttic(ItemState state)
state - the transient ItemState instance that should
be moved to the atticpublic void disposeTransientItemStateInAttic(ItemState state)
state - the transient ItemState instance that should
be disposed @see ItemState#discard()public void disposeAllTransientItemStates()
public void addListener(ItemStateListener listener)
ItemStateListener
listener - the new listener to be informed on modificationspublic void removeListener(ItemStateListener listener)
ItemStateListener
listener - an existing listenerpublic ItemStateManager getAttic()
public void stateCreated(ItemState created)
ItemState has successfully
been created (i.e. its underlying persistent state was created).
Notification handler gets called for both transient states that this state manager
has created, as well as states that were created by the local state manager
we're listening to.
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).
Notification handler gets called for both transient states that this state manager
has created, as well as states that were created by the local state manager
we're listening to.
stateModified in interface ItemStateListenermodified - 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).
Notification handler gets called for both transient states that this state manager
has created, as well as states that were created by the local state manager
we're listening to.
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').
Notification handler gets called for both transient states that this state manager
has created, as well as states that were created by the local state manager
we're listening to.
stateDiscarded in interface ItemStateListenerdiscarded - the ItemState that has been discardedItemState.discard()
public void nodeAdded(NodeState state,
Name 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 changedpublic void nodeModified(NodeState state)
ItemStateListener.stateModified(ItemState) was called.
Pass notification to listeners if a transient state was modified
or if the local state is not overlayed.
nodeModified in interface NodeStateListenerstate - node state that changed
public void nodeRemoved(NodeState state,
Name 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 node
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||