|
J avolution v5.4 (J2SE 1.6+) | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjavolution.context.Context
public abstract class Context
This class represents an execution context; they can be associated to particular threads or objects.
Context-aware applications may extend the context base class or any predefined contexts in order to facilitate separation of concerns.
The scope of a Context
should be surrounded by a try,
finally
block statement to ensure correct behavior in case
of exceptions being raised. For example:
LocalContext.enter(); // Current thread enter a local context.
try
ModuloInteger.setModulus(m); // No impact on other threads!
z = x.times(y); // Multiplication modulo m.
} finally {
LocalContext.exit();
}
Context objects can be inherited by multiple threads (see
ConcurrentContext
}, but only one thread may
enter
a particular context
instance at any given time (and becomes its owner
.
When the owner thread exits its context, the
context is automatically recycled
. Consequently, whether or not context objects are reused
between multiple threads depends upon the AllocatorContext
policy
with regards to recycling. Threads executing in a PoolContext
for example, will reuse the same pool of context objects.
Field Summary | |
---|---|
static Context |
ROOT
Holds the root context. |
Constructor Summary | |
---|---|
protected |
Context()
Default constructor. |
Method Summary | |
---|---|
static void |
enter(java.lang.Class<? extends Context> contextType)
Enters a context of specified type, this context is factory produced and automatically recycled
upon exit . |
static void |
enter(Context context)
Enters the specified context. |
protected abstract void |
enterAction()
The action to be performed after this context becomes the current context. |
static void |
exit(java.lang.Class<? extends Context> contextType)
Exits the current context (the outer context
becomes the current context). |
static void |
exit(Context context)
Exits the specified context. |
protected abstract void |
exitAction()
The action to be performed before this context is no more the current context. |
static Context |
getCurrent()
Returns the current context for the current thread. |
Context |
getOuter()
Returns the outer context of this context or null
if ROOT or a default context (not entered). |
java.lang.Thread |
getOwner()
Returns the current owner of this context. |
protected static void |
setCurrent(ConcurrentContext context)
Sets the current context, used by ConcurrentContext
exclusively. |
java.lang.String |
toString()
Returns the string representation of this context (default "Instance of " + this.getClass().getName() ). |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
public static final Context ROOT
Constructor Detail |
---|
protected Context()
Method Detail |
---|
public static Context getCurrent()
public final java.lang.Thread getOwner()
entered
the context and has not yet exited
.
A context can only have one owner at any given time, although
contexts can be shared by concurrent
threads.
null
.public final Context getOuter()
null
if ROOT
or a default context (not entered).
null
.public java.lang.String toString()
"Instance of " + this.getClass().getName()
).
toString
in class java.lang.Object
protected abstract void enterAction()
protected abstract void exitAction()
public static final void enter(Context context)
context
- the context being entered.
java.lang.IllegalStateException
- if this context is currently in use.public static final void exit(Context context)
context
- the context being exited.
java.lang.IllegalStateException
- if the specified context is not the current context.public static final void enter(java.lang.Class<? extends Context> contextType)
factory
produced and automatically recycled
upon exit
. If the specified contextType has no public
no-arg constructor accessible, then the object factory for the class
should be explicitely set
(typically
in a static initializer).
contextType
- the type of context being entered.ObjectFactory.getInstance(Class)
public static void exit(java.lang.Class<? extends Context> contextType)
outer
context
becomes the current context).
contextType
- the type of context being entered.
java.lang.IllegalStateException
- if this context is the ROOT
context or the current thread is not the context owner.protected static void setCurrent(ConcurrentContext context)
ConcurrentContext
exclusively.
context
- the concurrent context.
|
J avolution v5.4 (J2SE 1.6+) | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |