org.apache.jackrabbit.jcr2spi.state
Class ItemState

java.lang.Object
  extended by org.apache.jackrabbit.jcr2spi.state.ItemState
Direct Known Subclasses:
NodeState, PropertyState

public abstract class ItemState
extends Object

ItemState represents the state of an Item.


Nested Class Summary
static interface ItemState.MergeResult
          A MergeResult represents the result of a merge(ItemState, boolean) operation.
protected  class ItemState.SimpleMergeResult
          A SimpleMergeResult is just a holder for a modification status.
 
Constructor Summary
protected ItemState(HierarchyEntry entry, ItemStateFactory isf, ItemDefinitionProvider definitionProvider)
          Constructs an item state
protected ItemState(int initialStatus, HierarchyEntry entry, ItemStateFactory isf, ItemDefinitionProvider definitionProvider)
          Constructs an item state
 
Method Summary
 void addListener(ItemStateLifeCycleListener listener)
          Add an ItemStateLifeCycleListener
 HierarchyEntry getHierarchyEntry()
          The HierarchyEntry corresponding to this ItemState.
abstract  ItemId getId()
          Utility method: Returns the identifier of this item state.
 Iterator<ItemStateLifeCycleListener> getListeners()
          Unmodifiable iterator over the listeners present on this item state.
 Name getName()
          Utility method: Returns the name of this state.
 NodeState getParent()
          Utility method: Shortcut for calling 'getParent().getNodeState()' on the hierarchy entry.
 Path getPath()
          Utility method: Returns the path of this item state.
 int getStatus()
          Returns the status of this item.
abstract  ItemId getWorkspaceId()
          Utility method: Returns the identifier of this item state.
 void invalidate()
          Invalidates this state: set its Status to Status.INVALIDATED if the current status is Status.EXISTING.
abstract  boolean isNode()
          Utility method: Determines if this item state represents a node.
 boolean isValid()
          Returns true if this item state is valid and can be accessed.
abstract  ItemState.MergeResult merge(ItemState another, boolean keepChanges)
          Merge all data from the given state into this state.
 void removeListener(ItemStateLifeCycleListener listener)
          Remove an ItemStateLifeCycleListener
abstract  boolean revert()
          Revert all transient modifications made to this ItemState.
 void setStatus(int newStatus)
          Sets the new status of this item.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ItemState

protected ItemState(HierarchyEntry entry,
                    ItemStateFactory isf,
                    ItemDefinitionProvider definitionProvider)
Constructs an item state

Parameters:
entry -
isf -
definitionProvider -

ItemState

protected ItemState(int initialStatus,
                    HierarchyEntry entry,
                    ItemStateFactory isf,
                    ItemDefinitionProvider definitionProvider)
Constructs an item state

Parameters:
entry -
isf -
definitionProvider -
Method Detail

getHierarchyEntry

public HierarchyEntry getHierarchyEntry()
The HierarchyEntry corresponding to this ItemState.

Returns:
The HierarchyEntry corresponding to this ItemState.

isValid

public boolean isValid()
Returns true if this item state is valid and can be accessed.

Returns:
See Also:
Status.isValid(int), Status.isStale(int)

isNode

public abstract boolean isNode()
Utility method: Determines if this item state represents a node.

Returns:
true if this item state represents a node, otherwise false.

getName

public Name getName()
Utility method: Returns the name of this state. Shortcut for calling 'getName' on the hierarchy entry.

Returns:
name of this state

getId

public abstract ItemId getId()
                      throws RepositoryException
Utility method: Returns the identifier of this item state. Shortcut for calling 'getId' on the hierarchy entry.

Returns:
the identifier of this item state..
Throws:
RepositoryException

getWorkspaceId

public abstract ItemId getWorkspaceId()
                               throws RepositoryException
Utility method: Returns the identifier of this item state. Shortcut for calling 'getWorkspaceId' on the NodeEntry or PropertyEntry respectively.

Returns:
the identifier of this item state..
Throws:
RepositoryException

getPath

public Path getPath()
             throws RepositoryException
Utility method: Returns the path of this item state. Shortcut for calling 'getPath' on the hierarchy entry.

Returns:
Throws:
RepositoryException - if an error occurs

getParent

public NodeState getParent()
                    throws ItemNotFoundException,
                           RepositoryException
Utility method: Shortcut for calling 'getParent().getNodeState()' on the hierarchy entry.

Returns:
Throws:
ItemNotFoundException
RepositoryException

getStatus

public final int getStatus()
Returns the status of this item.

Returns:
the status of this item.

setStatus

public void setStatus(int newStatus)
Sets the new status of this item.

Parameters:
newStatus - the new status

merge

public abstract ItemState.MergeResult merge(ItemState another,
                                            boolean keepChanges)
Merge all data from the given state into this state. If 'keepChanges' is true, transient modifications present on this state are not touched. Otherwise this state is completely reset according to the given other state.

Parameters:
another -
keepChanges -
Returns:
a MergeResult instance which represent the result of the merge operation

revert

public abstract boolean revert()
Revert all transient modifications made to this ItemState.

Returns:
true if this state has been modified i.e. if there was anything to revert.

addListener

public void addListener(ItemStateLifeCycleListener listener)
Add an ItemStateLifeCycleListener

Parameters:
listener - the new listener to be informed on modifications

removeListener

public void removeListener(ItemStateLifeCycleListener listener)
Remove an ItemStateLifeCycleListener

Parameters:
listener - an existing listener

getListeners

public Iterator<ItemStateLifeCycleListener> getListeners()
Unmodifiable iterator over the listeners present on this item state.

Returns:
iterator over ItemStateLifeCycleListeners.

invalidate

public void invalidate()
Invalidates this state: set its Status to Status.INVALIDATED if the current status is Status.EXISTING. Does nothing otherwise.



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