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.


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 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 getQPath()
          Utility method: Returns the qualified 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.
abstract  boolean isNode()
          Utility method: Determines if this item state represents a node.
 boolean isValid()
          Returns true if this item state is valid, that is its status is one of: Status.EXISTING Status.EXISTING_MODIFIED Status.NEW
abstract  boolean merge(ItemState another, boolean keepChanges)
          Merge all data from the given state into this state.
 void reload(boolean keepChanges)
          Retrieved a fresh ItemState from the persistent layer and merge its data with this state in order to reload it.
 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, that is its status is one of:

Returns:

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()
Utility method: Returns the identifier of this item state. Shortcut for calling 'getId' on the hierarchy entry.

Returns:
the identifier of this item state..

getWorkspaceId

public abstract ItemId getWorkspaceId()
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..

getQPath

public Path getQPath()
              throws RepositoryException
Utility method: Returns the qualified 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 boolean 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:
true if this state has been modified

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 getListeners()
Unmodifiable iterator over the listeners present on this item state.

Returns:

reload

public void reload(boolean keepChanges)
Retrieved a fresh ItemState from the persistent layer and merge its data with this state in order to reload it. In case of a NEW state retrieving the state from the persistent layer is only possible if the state has been persisted.

Parameters:
keepChanges -


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