|
|
|
|
org.eclipse.emf.transaction.impl
Interface InternalTransaction
-
All Superinterfaces:
-
Transaction
-
All Known Implementing Classes:
-
EMFCommandTransaction,
TransactionImpl,
TriggerCommandTransaction
-
public interface InternalTransaction
- extends
Transaction
An internal interface that must be provided by any implementation of the
public
Transaction interface, in order to function correctly in
the transactional editing domain framework.
Method Summary
|
void
|
abort
(
IStatus status)
Aborts the transaction with a reason given by the specified status. |
void
|
add
(
Notification notification)
Adds the specified notification to the list of notifications received
during this transaction. |
void
|
addTriggers
(
TriggerCommand triggers)
Adds a group of triggers that were executed during my commit. |
void
|
endPrivileged
(
PrivilegedRunnable<?> runnable)
Returns me to my previous owner, upon completion of the specified
privileged runnable. |
List<
Notification>
|
getNotifications
()
Obtains the list of notifications that were received during execution
of this transaction. |
InternalTransaction
|
getRoot
()
Obtains the root transaction (the one that has no parent). |
Command
|
getTriggers
()
Obtains the triggers that were executed during my commit. |
boolean
|
isRollingBack
()
Queries whether this transaction or any of its ancestors is in the
process of rolling back. |
void
|
pause
()
Pauses me while a child transaction is active, so that I do not collect
either notifications or recorded changes during that time. |
void
|
resume
(
TransactionChangeDescription nestedChanges)
Resumes me after completion of a child transaction. |
void
|
setParent
(
InternalTransaction parent)
Assigns my parent transaction (the one in which I am nested). |
void
|
setStatus
(
IStatus status)
Sets the status of the transaction. |
void
|
start
()
Starts me. |
void
|
startPrivileged
(
PrivilegedRunnable<?> runnable)
Transfers ownership of this transaction to the specified
privileged runnable. |
Methods inherited from interface org.eclipse.emf.transaction.
Transaction
|
commit,
getChangeDescription,
getEditingDomain,
getOptions,
getOwner,
getParent,
getStatus,
isActive,
isReadOnly,
rollback,
yield
|
getRoot
InternalTransaction getRoot()
- Obtains the root transaction (the one that has no parent). This could
be me if I am the root.
-
-
-
Returns:
- the root transaction in a nested transaction structure
setParent
void setParent(
InternalTransaction parent)
- Assigns my parent transaction (the one in which I am nested). This
must be done by the editing domain immediately upon activating me.
-
-
-
Parameters:
-
parent - my parent transaction
start
void start()
throws
InterruptedException
- Starts me. Usually, this will delegate to the editing domain
to
activate
me.
Note that this call should block the current thread until the
editing domain grants exclusive access.
-
-
-
Throws:
-
InterruptedException
- if the current thread is interrupted while
waiting for activation
abort
void abort(
IStatus status)
- Aborts the transaction with a reason given by the specified status. This is
used, for example, when a transaction is corrupted by another thread
concurrently writing the model (obviously without an active transaction!).
The transaction is expected to rollback when it attempts to commit, and to
propagate this status up to the root transaction.
-
-
-
Parameters:
-
status - a status object providing the reason. It should be the status
attached to the eventual
RollbackException , and should be
set as my
status
add
void add(
Notification notification)
- Adds the specified notification to the list of notifications received
during this transaction.
-
-
-
Parameters:
-
notification - the notification to add -
See Also:
-
getNotifications()
getNotifications
List<
Notification> getNotifications()
- Obtains the list of notifications that were received during execution
of this transaction. These are the notifications that later will
be sent to pre-commit listeners, validation, and eventually to
post-commit listeners (if I successfully commit).
-
-
-
Returns:
- my notifications
-
See Also:
-
add(Notification)
pause
void pause()
- Pauses me while a child transaction is active, so that I do not collect
either notifications or recorded changes during that time.
-
-
resume
void resume(
TransactionChangeDescription nestedChanges)
- Resumes me after completion of a child transaction. If the child
committed, then I add its change description to my changes.
-
-
-
Parameters:
-
nestedChanges - the nested transaction's recorded changes, or
null if it rolled back (in which case, I do not add
anything to my changes)
setStatus
void setStatus(
IStatus status)
- Sets the status of the transaction.
-
-
-
Parameters:
-
status - my status
isRollingBack
boolean isRollingBack()
- Queries whether this transaction or any of its ancestors is in the
process of rolling back.
-
-
-
Returns:
-
true if I or my
parent (if any) am rolling back;
false otherwise
getTriggers
Command getTriggers()
- Obtains the triggers that were executed during my commit.
-
-
-
Returns:
- my pre-commit trigger commands, or
null if I have
no triggers (perhaps because the
Transaction.OPTION_NO_TRIGGERS
was applied). This may be a single
Command or a
compound of multiple
addTriggers
void addTriggers(
TriggerCommand triggers)
- Adds a group of triggers that were executed during my commit.
-
-
-
Parameters:
-
triggers - the triggers to add
startPrivileged
void startPrivileged(
PrivilegedRunnable<?> runnable)
- Transfers ownership of this transaction to the specified
privileged runnable.
-
-
-
Parameters:
-
runnable - the runnable whose thread is to borrow me
endPrivileged
void endPrivileged(
PrivilegedRunnable<?> runnable)
- Returns me to my previous owner, upon completion of the specified
privileged runnable.
-
-
-
Parameters:
-
runnable - the runnable whose thread had borrowed me
|
|
|