Package org.apache.jackrabbit.core.state
Class ItemState
- java.lang.Object
-
- org.apache.jackrabbit.core.state.ItemState
-
- Direct Known Subclasses:
NodeState
,PropertyState
public abstract class ItemState extends Object
ItemState
represents the state of anItem
.
-
-
Field Summary
Fields Modifier and Type Field Description protected ItemState
overlayedState
the backing persistent item state (may be null)protected int
status
the internal status of this item statestatic int
STATUS_EXISTING
'existing', i.e.static int
STATUS_EXISTING_MODIFIED
'existing', i.e.static int
STATUS_EXISTING_REMOVED
'existing', i.e.static int
STATUS_NEW
'new' statestatic int
STATUS_STALE_DESTROYED
'existing', i.e.static int
STATUS_UNDEFINED
the status is undefined
-
Constructor Summary
Constructors Modifier Constructor Description protected
ItemState(int initialStatus, boolean isTransient)
Constructs a new unconnected item stateprotected
ItemState(ItemState overlayedState, int initialStatus, boolean isTransient)
Constructs a new item state that is initially connected to an overlayed state.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract long
calculateMemoryFootprint()
Returns the approximate memory consumption of this state.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 statevoid
discard()
Discards this instance, i.e.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 ornull
if there is no persistent state (i.e..abstract NodeId
getParentId()
Returns the NodeId of the parentNodeState
ornull
if either this item state represents the root node or this item state is 'free floating', i.e.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()
Returnstrue
if this item state represents new or modified state (i.e.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.
-
-
-
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 objectisTransient
- 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 overlayedinitialStatus
- the initial status of the newItemState
instanceisTransient
- 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 informationsyncModCount
- if the modCount should be synchronized.
-
connect
public void connect(ItemState overlayedState) throws ItemStateException
Connect this state to some underlying overlayed state.- Throws:
ItemStateException
-
reconnect
protected void reconnect() throws ItemStateException
Reconnect this state to the overlayed state that it has been disconnected from earlier.- Throws:
ItemStateException
-
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()
Returnstrue
if this item state represents new or modified state (i.e. the result of copy-on-write) orfalse
if it represents existing, unmodified state.- Returns:
true
if this item state is modified or new, otherwisefalse
-
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 parentNodeState
ornull
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, otherwisefalse
.
-
getOverlayedState
public ItemState getOverlayedState()
Returns the persistent state backing this transient state ornull
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. Returnsnull
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.
-
-