-
- Functional Interface:
- This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.
@FunctionalInterface public interface TransactionalCallable<T>
AnFunctionalInterface
that wraps transactional code.Transactional code should not depend on any captured scope, but use the argument
Configuration
passed to therun(Configuration)
method to derive its transaction context.If transactional code needs to depend on captured scope ("context"), then
ContextTransactionalCallable
is a better fit.- Author:
- Lukas Eder
-
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Modifier and Type Method Description static <T> TransactionalCallable<T>
of(Collection<? extends TransactionalCallable<T>> callables)
Wrap a set of nestedTransactionalCallable
objects in a single globalTransactionalCallable
, returning the last callable's result.static <T,R>
TransactionalCallable<R>of(Collection<? extends TransactionalCallable<T>> callables, Collector<T,?,R> collector)
Wrap a set of nestedTransactionalCallable
objects in a single globalTransactionalCallable
, collecting the callables' results.static <T> TransactionalCallable<T>
of(TransactionalCallable<T>... callables)
Wrap a set of nestedTransactionalCallable
objects in a single globalTransactionalCallable
, returning the last callable's result.static <T,R>
TransactionalCallable<R>of(TransactionalCallable<T>[] callables, Collector<T,?,R> collector)
Wrap a set of nestedTransactionalCallable
objects in a single globalTransactionalCallable
, collecting the callables' results.T
run(Configuration configuration)
Run the transactional code.
-
-
-
Method Detail
-
run
T run(Configuration configuration) throws Throwable
Run the transactional code.If this method completes normally, and this is not a nested transaction, then the transaction will be committed. If this method completes with an exception (any
Throwable
), then the transaction is rolled back to the beginning of thisTransactionalCallable
.- Parameters:
configuration
- TheConfiguration
in whose context the transaction is run.- Returns:
- The outcome of the transaction.
- Throws:
Throwable
- Any exception that will cause a rollback of the code contained in this transaction. If this is a nested transaction, the rollback may be performed only to the state before executing thisTransactionalCallable
.
-
of
@SafeVarargs static <T> TransactionalCallable<T> of(TransactionalCallable<T>... callables)
Wrap a set of nestedTransactionalCallable
objects in a single globalTransactionalCallable
, returning the last callable's result.
-
of
static <T> TransactionalCallable<T> of(Collection<? extends TransactionalCallable<T>> callables)
Wrap a set of nestedTransactionalCallable
objects in a single globalTransactionalCallable
, returning the last callable's result.
-
of
static <T,R> TransactionalCallable<R> of(TransactionalCallable<T>[] callables, Collector<T,?,R> collector)
Wrap a set of nestedTransactionalCallable
objects in a single globalTransactionalCallable
, collecting the callables' results.
-
of
static <T,R> TransactionalCallable<R> of(Collection<? extends TransactionalCallable<T>> callables, Collector<T,?,R> collector)
Wrap a set of nestedTransactionalCallable
objects in a single globalTransactionalCallable
, collecting the callables' results.
-
-