Package com.nomagic.uml2.transaction
Interface TransactionManager
-
public interface TransactionManager
Transaction provides framework to keep consistent model after model modification. All model modifications during transaction is recorded and later these modifications are verified to check if they do not breaks model integrity.Model verification and fixing must be implemented outside, and hooks must be passed to transaction.
Transaction can be read only - during such transaction no model modifications are allowed and any of model modification throws
ReadOnlyModelException
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static class
TransactionManager.TransactionOptions
Transaction options.
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description void
addTransactionCommitListener(TransactionCommitListener listener)
Adds new listener to listen transaction commits (post commits) events.void
commit()
Stops transaction.java.util.Collection<TransactionCommitListener>
getListeners()
java.util.Collection<TransactionCommitListener>
getListenersForFiring()
ModelValidator
getModelValidator()
Get validation hook which validates model integrity.boolean
isStarted()
void
removeTransactionCommitListener(TransactionCommitListener listener)
Removes listener from transaction commit listeners.void
runTransaction(java.lang.Runnable r)
Runs given code in new transaction.void
runTransaction(java.lang.Runnable r, TransactionManager.TransactionOptions options)
Runs given code in new transaction.void
setInvalidModelHandler(InvalidModelHandler handler)
Sets handler which fixes model with verification errors.void
setModelValidator(ModelValidator validator)
Sets validation hook which validates model integrity.void
start()
Starts transaction.void
start(TransactionManager.TransactionOptions options)
Starts with given options.
-
-
-
Method Detail
-
runTransaction
void runTransaction(java.lang.Runnable r, TransactionManager.TransactionOptions options) throws RollbackException, TransactionAlreadyStartedException
Runs given code in new transaction.- Parameters:
r
- code to run.options
- transaction options to run- Throws:
RollbackException
- when model verification fails, andInvalidModelHandler
TransactionAlreadyStartedException
- when transaction already running
-
runTransaction
void runTransaction(java.lang.Runnable r) throws RollbackException, TransactionAlreadyStartedException
Runs given code in new transaction. If currently transaction is runningTransactionAlreadyStartedException
is thrown.- Parameters:
r
- code to run- Throws:
RollbackException
- when model verification fails, andInvalidModelHandler
TransactionAlreadyStartedException
- If currently transaction is running
-
start
void start() throws TransactionAlreadyStartedException
Starts transaction. Any model modification after transaction is started is recorded.- Throws:
TransactionAlreadyStartedException
- when there is running transaction
-
isStarted
boolean isStarted()
- Returns:
- true if transaction is started
-
commit
void commit() throws RollbackException, TransactionAlreadyCommitedException
Stops transaction. During stop, model is verified and in case verification failed model is fixed. If the only one fix is to rollback model to previous state which was before transactionRollbackException
is thrown- Throws:
RollbackException
- when transaction validation fails, and there is no way to fix model except undoing last actionTransactionAlreadyCommitedException
- when transaction is not started
-
start
void start(TransactionManager.TransactionOptions options) throws TransactionAlreadyStartedException
Starts with given options. If transaction is read only any model modification after transaction is started throwsReadOnlyModelException
If transaction
Read only transactions are deprecated - normally queries on model can be done without transaction, and all modifications must be done through transaction.
- Parameters:
options
- transaction options- Throws:
TransactionAlreadyStartedException
- if transaction is already started
-
setInvalidModelHandler
void setInvalidModelHandler(InvalidModelHandler handler)
Sets handler which fixes model with verification errors.- Parameters:
handler
- handler which fixes model
-
setModelValidator
void setModelValidator(ModelValidator validator)
Sets validation hook which validates model integrity.- Parameters:
validator
- which validates model integrity
-
getModelValidator
ModelValidator getModelValidator()
Get validation hook which validates model integrity.- Returns:
- validator which validates model integrity
-
addTransactionCommitListener
void addTransactionCommitListener(TransactionCommitListener listener)
Adds new listener to listen transaction commits (post commits) events.- Parameters:
listener
- listener to add
-
removeTransactionCommitListener
void removeTransactionCommitListener(TransactionCommitListener listener)
Removes listener from transaction commit listeners.- Parameters:
listener
- listener to remove
-
getListeners
java.util.Collection<TransactionCommitListener> getListeners()
- Returns:
- all registered transaction commit listeners.
-
getListenersForFiring
java.util.Collection<TransactionCommitListener> getListenersForFiring()
- Returns:
- regisrered transaction commit listeners available for event firing in current manager state
-
-