org.apache.jackrabbit.core.state
Class ItemState

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

public abstract class ItemState
extends Object

ItemState represents the state of an Item.


Field Summary
protected  ItemState overlayedState
          the backing persistent item state (may be null)
protected  int status
          the internal status of this item state
static int STATUS_EXISTING
          'existing', i.e. persistent state
static int STATUS_EXISTING_MODIFIED
          'existing', i.e. persistent state that has been transiently modified (copy-on-write)
static int STATUS_EXISTING_REMOVED
          'existing', i.e. persistent state that has been transiently removed (copy-on-write)
static int STATUS_NEW
          'new' state
static int STATUS_STALE_DESTROYED
          'existing', i.e. persistent state that has been destroyed by somebody else
static int STATUS_UNDEFINED
          the status is undefined
 
Constructor Summary
protected ItemState(int initialStatus, boolean isTransient)
          Constructs a new unconnected item state
protected ItemState(ItemState overlayedState, int initialStatus, boolean isTransient)
          Constructs a new item state that is initially connected to an overlayed state.
 
Method Summary
abstract  long calculateMemoryFootprint()
          Returns the approximate memory consumption of this state.
protected  void connect(ItemState overlayedState)
          Connect this state to some underlying overlayed state.
abstract  void copy(ItemState state, boolean syncModCount)
          Copy state information from another state into this state
 void discard()
          Discards this instance, i.e. renders it 'invalid'.
protected  void disconnect()
          Disconnect this state from the underlying overlayed state.
 ItemStateListener getContainer()
          Return the parent container that will receive notifications about changes to this state.
abstract  ItemId getId()
          Returns the identifier of this item.
 short getModCount()
          Returns the modification count.
 ItemState getOverlayedState()
          Returns the persistent state backing this transient state or null if there is no persistent state (i.e..
abstract  NodeId getParentId()
          Returns the NodeId of the parent NodeState or null if either this item state represents the root node or this item state is 'free floating', i.e. not attached to the repository's hierarchy.
 int getStatus()
          Returns the status of this item.
 boolean hasOverlayedState()
          Determines if this item state is overlying persistent state.
protected  boolean isConnected()
          Return a flag indicating whether this state is connected to some other state.
abstract  boolean isNode()
          Determines if this item state represents a node.
 boolean isStale()
          Determines whether this item state has become stale.
 boolean isTransient()
          Returns true if this item state represents new or modified state (i.e. the result of copy-on-write) or false if it represents existing, unmodified state.
protected  void notifyStateCreated()
          Notify the parent container about changes to this state.
protected  void notifyStateDestroyed()
          Notify the parent container about changes to this state.
protected  void notifyStateDiscarded()
          Notify the parent container about changes to this state.
 void notifyStateUpdated()
          Notify the parent container about changes to this state.
protected  void reconnect()
          Reconnect this state to the overlayed state that it has been disconnected from earlier.
 void setContainer(ItemStateListener container)
          Set the parent container that will receive notifications about changes to this state.
 void setModCount(short modCount)
          Sets the modification count.
 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
 

Field Detail

STATUS_UNDEFINED

public static final int STATUS_UNDEFINED
the status is undefined

See Also:
Constant Field Values

STATUS_EXISTING

public static final int STATUS_EXISTING
'existing', i.e. persistent state

See Also:
Constant Field Values

STATUS_EXISTING_MODIFIED

public static final int STATUS_EXISTING_MODIFIED
'existing', i.e. persistent state that has been transiently modified (copy-on-write)

See Also:
Constant Field Values

STATUS_EXISTING_REMOVED

public static final int STATUS_EXISTING_REMOVED
'existing', i.e. persistent state that has been transiently removed (copy-on-write)

See Also:
Constant Field Values

STATUS_NEW

public static final int STATUS_NEW
'new' state

See Also:
Constant Field Values

STATUS_STALE_DESTROYED

public static final int STATUS_STALE_DESTROYED
'existing', i.e. persistent state that has been destroyed by somebody else

See Also:
Constant Field Values

status

protected int status
the internal status of this item state


overlayedState

protected ItemState overlayedState
the backing persistent item state (may be null)

Constructor Detail

ItemState

protected ItemState(int initialStatus,
                    boolean isTransient)
Constructs a new unconnected item state

Parameters:
initialStatus - the initial status of the item state object
isTransient - flag indicating whether this state is transient or not

ItemState

protected ItemState(ItemState overlayedState,
                    int initialStatus,
                    boolean isTransient)
Constructs a new item state that is initially connected to an overlayed state.

Parameters:
overlayedState - the backing item state being overlayed
initialStatus - the initial status of the new ItemState instance
isTransient - flag indicating whether this state is transient or not
Method Detail

copy

public abstract void copy(ItemState state,
                          boolean syncModCount)
Copy state information from another state into this state

Parameters:
state - source state information
syncModCount - if the modCount should be synchronized.

connect

protected void connect(ItemState overlayedState)
Connect this state to some underlying overlayed state.


reconnect

protected void reconnect()
Reconnect this state to the overlayed state that it has been disconnected from earlier.


disconnect

protected void disconnect()
Disconnect this state from the underlying overlayed state.


isConnected

protected boolean isConnected()
Return a flag indicating whether this state is connected to some other state.

Returns:
true if this state is connected, false otherwise.

notifyStateDiscarded

protected void notifyStateDiscarded()
Notify the parent container about changes to this state.


notifyStateCreated

protected void notifyStateCreated()
Notify the parent container about changes to this state.


notifyStateUpdated

public void notifyStateUpdated()
Notify the parent container about changes to this state.


notifyStateDestroyed

protected void notifyStateDestroyed()
Notify the parent container about changes to this state.


isNode

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

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

getId

public abstract ItemId getId()
Returns the identifier of this item.

Returns:
the id of this item.

isTransient

public boolean isTransient()
Returns true if this item state represents new or modified state (i.e. the result of copy-on-write) or false if it represents existing, unmodified state.

Returns:
true if this item state is modified or new, otherwise false

isStale

public boolean isStale()
Determines whether this item state has become stale.

Returns:
true if this item state has become stale, false otherwise.

getParentId

public abstract NodeId getParentId()
Returns the NodeId of the parent NodeState or null if either this item state represents the root node or this item state is 'free floating', i.e. not attached to the repository's hierarchy.

Returns:
the parent NodeState's Id

getStatus

public 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

getModCount

public short getModCount()
Returns the modification count.

Returns:
the modification count.

setModCount

public void setModCount(short modCount)
Sets the modification count.

Parameters:
modCount - the modification count of this item

discard

public void discard()
Discards this instance, i.e. renders it 'invalid'.


hasOverlayedState

public boolean hasOverlayedState()
Determines if this item state is overlying persistent state.

Returns:
true if this item state is overlying persistent state, otherwise false.

getOverlayedState

public ItemState getOverlayedState()
Returns the persistent state backing this transient state or null if there is no persistent state (i.e.. this state is purely transient).

Returns:
the persistent item state or null if there is no persistent state.

setContainer

public void setContainer(ItemStateListener container)
Set the parent container that will receive notifications about changes to this state.

Parameters:
container - container to be informed on modifications

getContainer

public ItemStateListener getContainer()
Return the parent container that will receive notifications about changes to this state. Returns null if none has been yet assigned.

Returns:
container or null

calculateMemoryFootprint

public abstract long calculateMemoryFootprint()
Returns the approximate memory consumption of this state.

Returns:
the approximate memory consumption of this state.


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