public class SingleOperationManager<T extends java.lang.annotation.Annotation>
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
private boolean |
closed |
private OperationContext<T> |
context |
private static java.lang.String |
ID_PREAMBLE |
private ServiceLocator |
locator |
private java.util.HashMap<OperationIdentifier<T>,OperationHandleImpl<T>> |
openScopes |
private ActiveDescriptor<?> |
operationDescriptor |
private java.lang.Object |
operationLock |
private T |
scope |
private long |
scopedIdentifier |
private java.util.HashMap<java.lang.Long,OperationHandleImpl<T>> |
threadToHandleMap |
Constructor and Description |
---|
SingleOperationManager(T scope,
ServiceLocator locator) |
Modifier and Type | Method and Description |
---|---|
private OperationIdentifierImpl<T> |
allocateNewIdentifier() |
(package private) void |
associateWithThread(long threadId,
OperationHandleImpl<T> handle)
OperationLock must be held
|
(package private) void |
closeOperation(OperationHandleImpl<T> closeMe)
Called with the operationLock held
|
OperationHandleImpl<T> |
createOperation() |
(package private) void |
disassociateThread(long threadId,
OperationHandleImpl<T> toRemove)
OperationLock must be held
|
(package private) void |
disposeAllOperationServices(OperationHandleImpl<T> closeMe)
Explicitly called WITHOUT the operationLock held to avoid any deadlock
with the context lock
|
(package private) java.util.Set<OperationHandle<T>> |
getAllOperations() |
OperationHandleImpl<T> |
getCurrentOperationOnThisThread()
OperationLock need NOT be held
|
(package private) OperationHandleImpl<T> |
getCurrentOperationOnThisThread(long threadId)
OperationLock must be held
|
(package private) void |
shutdown() |
java.lang.String |
toString() |
private static final java.lang.String ID_PREAMBLE
private final java.lang.Object operationLock
private final T extends java.lang.annotation.Annotation scope
private final java.util.HashMap<OperationIdentifier<T extends java.lang.annotation.Annotation>,OperationHandleImpl<T extends java.lang.annotation.Annotation>> openScopes
private final java.util.HashMap<java.lang.Long,OperationHandleImpl<T extends java.lang.annotation.Annotation>> threadToHandleMap
private final ServiceLocator locator
private final OperationContext<T extends java.lang.annotation.Annotation> context
private long scopedIdentifier
private final ActiveDescriptor<?> operationDescriptor
private boolean closed
SingleOperationManager(T scope, ServiceLocator locator)
private OperationIdentifierImpl<T> allocateNewIdentifier()
public OperationHandleImpl<T> createOperation()
void closeOperation(OperationHandleImpl<T> closeMe)
closeMe
- The non-null operation to closevoid disposeAllOperationServices(OperationHandleImpl<T> closeMe)
closeMe
- The non-null operation to closevoid associateWithThread(long threadId, OperationHandleImpl<T> handle)
threadId
- The threadId to associate with this handlehandle
- The handle to be associated with this threadvoid disassociateThread(long threadId, OperationHandleImpl<T> toRemove)
threadId
- The threadId to disassociate with this handleOperationHandleImpl<T> getCurrentOperationOnThisThread(long threadId)
public OperationHandleImpl<T> getCurrentOperationOnThisThread()
java.util.Set<OperationHandle<T>> getAllOperations()
void shutdown()
public java.lang.String toString()
toString
in class java.lang.Object