Class AbstractThreadedTransaction
java.lang.Object
org.apache.tinkerpop.gremlin.structure.util.AbstractTransaction
org.apache.tinkerpop.gremlin.structure.util.AbstractThreadedTransaction
- All Implemented Interfaces:
AutoCloseable,Transaction
A base implementation of
Transaction that provides core functionality for transaction listeners using a
shared set of transaction listeners. Therefore, when AbstractTransaction.commit() is called from any thread, all listeners
get notified. This implementation would be useful for graph implementations that support threaded transactions,
specifically in the Graph instance returned from Transaction.createThreadedTx().- Author:
- Stephen Mallette (http://stephen.genoprime.com)
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.apache.tinkerpop.gremlin.structure.Transaction
Transaction.CLOSE_BEHAVIOR, Transaction.Exceptions, Transaction.READ_WRITE_BEHAVIOR, Transaction.Status, Transaction.Symbols -
Field Summary
FieldsFields inherited from interface org.apache.tinkerpop.gremlin.structure.Transaction
NO_OP -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddTransactionListener(Consumer<Transaction.Status> listener) Adds a listener that is called back with a status when a commit or rollback is successful.voidRemoves all transaction listeners.protected voiddoClose()Clears transaction listenersprotected voidThreaded transactions should be open immediately upon creation so most implementations should do nothing with this method.protected voidCalled withinAbstractTransaction.commit()just after the internal call toAbstractTransaction.doCommit().protected voidCalled withinAbstractTransaction.rollback()just after the internal call toAbstractTransaction.doRollback()()}.onClose(Consumer<Transaction> consumer) The nature of threaded transactions are such that they are always open when created and manual in nature, therefore setting this value is not required.onReadWrite(Consumer<Transaction> consumer) The nature of threaded transactions are such that they are always open when created and manual in nature, therefore setting this value is not required.voidremoveTransactionListener(Consumer<Transaction.Status> listener) Removes a transaction listener.Methods inherited from class org.apache.tinkerpop.gremlin.structure.util.AbstractTransaction
begin, close, commit, createThreadedTx, doCommit, doOpen, doRollback, readWrite, rollbackMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.apache.tinkerpop.gremlin.structure.Transaction
begin, isOpen
-
Field Details
-
transactionListeners
-
-
Constructor Details
-
AbstractThreadedTransaction
-
-
Method Details
-
fireOnCommit
protected void fireOnCommit()Description copied from class:AbstractTransactionCalled withinAbstractTransaction.commit()just after the internal call toAbstractTransaction.doCommit(). Implementations of this method should raiseTransaction.Status.COMMITevents to any listeners added viaTransaction.addTransactionListener(Consumer).- Specified by:
fireOnCommitin classAbstractTransaction
-
fireOnRollback
protected void fireOnRollback()Description copied from class:AbstractTransactionCalled withinAbstractTransaction.rollback()just after the internal call toAbstractTransaction.doRollback()()}. Implementations of this method should raiseTransaction.Status.ROLLBACKevents to any listeners added viaTransaction.addTransactionListener(Consumer).- Specified by:
fireOnRollbackin classAbstractTransaction
-
addTransactionListener
Description copied from interface:TransactionAdds a listener that is called back with a status when a commit or rollback is successful. It is expected that listeners be bound to the current thread as is standard for transactions. Therefore a listener registered in the current thread will not get callback events from a commit or rollback call in a different thread. -
removeTransactionListener
Description copied from interface:TransactionRemoves a transaction listener. -
clearTransactionListeners
public void clearTransactionListeners()Description copied from interface:TransactionRemoves all transaction listeners. -
doReadWrite
protected void doReadWrite()Threaded transactions should be open immediately upon creation so most implementations should do nothing with this method.- Specified by:
doReadWritein classAbstractTransaction
-
doClose
protected void doClose()Clears transaction listeners- Specified by:
doClosein classAbstractTransaction
-
onReadWrite
The nature of threaded transactions are such that they are always open when created and manual in nature, therefore setting this value is not required.- Throws:
UnsupportedOperationException
-
onClose
The nature of threaded transactions are such that they are always open when created and manual in nature, therefore setting this value is not required.- Throws:
UnsupportedOperationException
-