public abstract class SynchronizationManagerSupport<E,C>
extends java.lang.Object
Constructor and Description |
---|
SynchronizationManagerSupport() |
Modifier and Type | Method and Description |
---|---|
void |
close()
Method for unregistering the current context - should always and only be
used by in conjunction with a matching
register(Object) to ensure that getContext() always returns
the correct value. |
protected abstract void |
close(C context) |
protected abstract C |
createNewContext(E execution,
BatchPropertyContext propertyContext) |
C |
getContext()
Getter for the current context if there is one, otherwise returns
null . |
java.util.Stack<E> |
getCurrent() |
void |
increment() |
C |
register(E execution)
Register a context with the current thread - always put a matching
close() call in a finally block to
ensure that the correct
context is available in the enclosing block. |
C |
register(E execution,
BatchPropertyContext propertyContext)
Register a context with the current thread - always put a matching
close() call in a finally block to
ensure that the correct
context is available in the enclosing block. |
void |
release()
A convenient "deep" close operation.
|
@Nullable public C getContext()
null
.null
if there is none (if one
has not been registered for this thread).@Nullable public C register(@Nullable E execution)
close()
call in a finally block to
ensure that the correct
context is available in the enclosing block.execution
- the execution to register@Nullable public C register(@Nullable E execution, @Nullable BatchPropertyContext propertyContext)
close()
call in a finally block to
ensure that the correct
context is available in the enclosing block.execution
- the execution to registerpropertyContext
- instance of BatchPropertyContext
to be registered with this thread.public void close()
register(Object)
to ensure that getContext()
always returns
the correct value.
Does not call close on the context - that is left up to the caller
because he has a reference to the context (having registered it) and only
he has knowledge of when the execution actually ended.public void increment()
public java.util.Stack<E> getCurrent()
public void release()
close()
if the execution for the current
context is ending.
Delegates to close(Object)
and then ensures that close()
is also called in a finally block.protected abstract void close(C context)
protected abstract C createNewContext(E execution, @Nullable BatchPropertyContext propertyContext)