|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||
java.lang.Objectorg.apache.jackrabbit.core.state.LocalItemStateManager
org.apache.jackrabbit.core.state.XAItemStateManager
Extension to LocalItemStateManager that remembers changes on
multiple save() requests and commits them only when an associated transaction
is itself committed.
| Field Summary |
| Fields inherited from class org.apache.jackrabbit.core.state.LocalItemStateManager |
factory, sharedStateMgr |
| Constructor Summary | |
XAItemStateManager(SharedItemStateManager sharedStateMgr,
EventStateCollectionFactory factory)
Creates a new instance of this class. |
|
XAItemStateManager(SharedItemStateManager sharedStateMgr,
EventStateCollectionFactory factory,
String attributeName)
Creates a new instance of this class with a custom attribute name. |
|
| Method Summary | |
void |
afterOperation(TransactionContext tx)
Invoked after one of the InternalXAResource.prepare(org.apache.jackrabbit.core.TransactionContext), InternalXAResource.commit(org.apache.jackrabbit.core.TransactionContext) or
InternalXAResource.rollback(org.apache.jackrabbit.core.TransactionContext) method has been called. |
void |
associate(TransactionContext tx)
Associate this resource with a transaction. All further operations on the object should be interpreted as part of this transaction and changes recorded in some attribute of the transaction context. |
void |
beforeOperation(TransactionContext tx)
Invoked before one of the InternalXAResource.prepare(org.apache.jackrabbit.core.TransactionContext), InternalXAResource.commit(org.apache.jackrabbit.core.TransactionContext) or
InternalXAResource.rollback(org.apache.jackrabbit.core.TransactionContext) method is called. |
void |
commit(TransactionContext tx)
Commit transaction. The transaction is identified by a transaction context. If the method throws, other resources get their changes rolled back. |
ChangeLog |
getChangeLog()
Returns the current change log. |
ItemState |
getItemState(ItemId id)
Return an item state, given its item id. If this state manager is committing changes, this method first checks the commitLog ThreadLocal. |
NodeReferences |
getNodeReferences(NodeReferencesId id)
Return a node references object, given its target id If this state manager is committing changes, this method first checks the commitLog ThreadLocal. |
boolean |
hasItemState(ItemId id)
Return a flag indicating whether an item state for a given item id exists. If this state manager is committing changes, this method first checks the commitLog ThreadLocal. |
boolean |
hasNodeReferences(NodeReferencesId id)
Return a flag indicating whether a node references object for a given target id exists. If this state manager is committing changes, this method first checks the commitLog ThreadLocal. |
void |
prepare(TransactionContext tx)
Prepare transaction. The transaction is identified by a transaction context. |
void |
rollback(TransactionContext tx)
Rollback transaction. The transaction is identified by a transaction context. |
void |
setVirtualProvider(VirtualItemStateProvider virtualProvider)
Set optional virtual item state provider. |
protected void |
update(ChangeLog changeLog)
End an update operation. Fetch the states and references from the parent (shared) item manager, reconnect them to the items collected in our (local) change log and overwrite the shared items with our copies. If associated with a transaction, simply merge the changes given to the ones already known (removing items that were first added and then again deleted). |
| Methods inherited from class org.apache.jackrabbit.core.state.LocalItemStateManager |
cancel, createNew, createNew, destroy, dispose, edit, getNodeState, getPropertyState, inEditMode, stateCreated, stateDestroyed, stateDiscarded, stateModified, store, update |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
public XAItemStateManager(SharedItemStateManager sharedStateMgr,
EventStateCollectionFactory factory)
sharedStateMgr - shared state managerfactory - event state collection factory
public XAItemStateManager(SharedItemStateManager sharedStateMgr,
EventStateCollectionFactory factory,
String attributeName)
sharedStateMgr - shared state managerfactory - event state collection factoryattributeName - attribute name| Method Detail |
public void setVirtualProvider(VirtualItemStateProvider virtualProvider)
public void associate(TransactionContext tx)
associate in interface InternalXAResourcetx - transaction context, if null disassociatepublic void beforeOperation(TransactionContext tx)
InternalXAResource.prepare(org.apache.jackrabbit.core.TransactionContext), InternalXAResource.commit(org.apache.jackrabbit.core.TransactionContext) or
InternalXAResource.rollback(org.apache.jackrabbit.core.TransactionContext) method is called.
beforeOperation in interface InternalXAResourcetx - transaction context
public void prepare(TransactionContext tx)
throws TransactionException
prepare in interface InternalXAResourcetx - transaction context
TransactionException - if an error occurs
public void commit(TransactionContext tx)
throws TransactionException
commit in interface InternalXAResourcetx - transaction context
TransactionException - if an error occurspublic void rollback(TransactionContext tx)
rollback in interface InternalXAResourcetx - transaction context.public void afterOperation(TransactionContext tx)
InternalXAResource.prepare(org.apache.jackrabbit.core.TransactionContext), InternalXAResource.commit(org.apache.jackrabbit.core.TransactionContext) or
InternalXAResource.rollback(org.apache.jackrabbit.core.TransactionContext) method has been called.
afterOperation in interface InternalXAResourcetx - transaction contextpublic ChangeLog getChangeLog()
null if no
change log was found.
public ItemState getItemState(ItemId id)
throws NoSuchItemStateException,
ItemStateException
getItemState in interface ItemStateManagergetItemState in class LocalItemStateManagerNoSuchItemStateException
ItemStateExceptionpublic boolean hasItemState(ItemId id)
hasItemState in interface ItemStateManagerhasItemState in class LocalItemStateManager
public NodeReferences getNodeReferences(NodeReferencesId id)
throws NoSuchItemStateException,
ItemStateException
getNodeReferences in interface ItemStateManagergetNodeReferences in class LocalItemStateManagerNoSuchItemStateException
ItemStateExceptionpublic boolean hasNodeReferences(NodeReferencesId id)
hasNodeReferences in interface ItemStateManagerhasNodeReferences in class LocalItemStateManager
protected void update(ChangeLog changeLog)
throws ReferentialIntegrityException,
StaleItemStateException,
ItemStateException
update in class LocalItemStateManagerchangeLog - change log containing local states and references
ItemStateException - if an error occurs
StaleItemStateException - if at least one of the affected item
states has become stale in the meantime
ReferentialIntegrityException - if a new or modified REFERENCE
property refers to a non-existent
target or if a removed node is still
being referenced
|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||