|
J avolution v5.3 (J2SE 1.5+) | ||||||||
| 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.Objectprotected 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.3 (J2SE 1.5+) | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||