public class MetadataEnvironmentThread
extends java.lang.Thread
MetadataEnvironmentShell
to execute tasks that
must be performed in a specific metadata environment.Modifier and Type | Class and Description |
---|---|
static class |
MetadataEnvironmentThread.Resources
Resources that need to be propagated from the main thread to the new
thread.
|
static class |
MetadataEnvironmentThread.Tracer
An object that provides consistent marks consisting of an ID and a
thread-safe sequence for tracing execution flows across nesting
MetadataEnvironmentThread s. |
Constructor and Description |
---|
MetadataEnvironmentThread(MetadataEnvironmentShell shell,
MetadataEnvironmentShell.Variables variables,
java.lang.ThreadGroup group,
java.lang.Runnable target,
java.lang.String name,
long stackSize)
Creates a new thread that's confined to a metadata environment.
|
Modifier and Type | Method and Description |
---|---|
static boolean |
beginTrace(MetadataEnvironmentThread.Tracer t)
Associates a tracer with the current thread.
|
static boolean |
endTrace()
Removes the tracer from the current thread.
|
<T> T |
get(MetadataEnvironmentShell.Variable<T> var)
Gets the value of a shell variable if it is set in this thread.
|
static MetadataEnvironmentThread.Tracer |
getCurrentTracer()
Returns the tracer associated with the current thread.
|
MetadataEnvironmentShell |
getMetadataEnvironmentShell()
Returns the metadata environment shell that created this thread.
|
boolean |
isSet(MetadataEnvironmentShell.Variable var)
Returns
true if the shell variable is set in this thread. |
void |
run()
Delegates to
java.lang.Thread.run() . |
void |
start()
Delegates to
java.lang.Thread.start() . |
activeCount, checkAccess, clone, countStackFrames, currentThread, destroy, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, stop, stop, suspend, toString, yield
public MetadataEnvironmentThread(MetadataEnvironmentShell shell, MetadataEnvironmentShell.Variables variables, java.lang.ThreadGroup group, java.lang.Runnable target, java.lang.String name, long stackSize)
shell
- the metadata environment shell that creates this threadvariables
- the variables to be set in this thread, null
if no variables need to be setgroup
- the thread grouptarget
- the object whose run
method is calledname
- the name of the new methodstackSize
- the desired stack size for the new thread, or zero to
indicate that this parameter is to be ignoredjava.lang.IllegalArgumentException
- if the given metadata environment
shell is nullpublic final MetadataEnvironmentShell getMetadataEnvironmentShell()
public final <T> T get(MetadataEnvironmentShell.Variable<T> var)
T
- the type of the variable valuevar
- the shell variablenull
if the value is
null or the variable is not setpublic final boolean isSet(MetadataEnvironmentShell.Variable var)
true
if the shell variable is set in this thread.var
- the shell variabletrue
if the variable is set in this threadpublic final void start()
java.lang.Thread.start()
.start
in class java.lang.Thread
public final void run()
java.lang.Thread.run()
.run
in interface java.lang.Runnable
run
in class java.lang.Thread
public static MetadataEnvironmentThread.Tracer getCurrentTracer()
null
if no tracer is associated with the current threadpublic static boolean beginTrace(MetadataEnvironmentThread.Tracer t)
MetadataEnvrionmentThread
s started in the current thread will
inherit the same tracer, but other types of threads will not.
To avoid resource leak, it is imperative that endTrace
is
invoked in the same thread where beginTrace
is invoked once
tracing is no longer needed, preferably in a finally block to ensure it is
invoked in all circumstances.
t
- the tracer to be associated with the current thread and
propagated to all MetadataEnvrionmentThread
s started
in the current threadtrue
if the given tracer is not null and there is no
tracer associated with the current thread prior to this call;
false
otherwiseendTrace()
public static boolean endTrace()
To avoid resource leak, it is imperative that endTrace
is
invoked in the same thread where beginTrace
is invoked once
tracing is no longer needed, preferably in a finally block to ensure it is
invoked in all circumstances.
true
if a tracer is associated with the current
thread prior to this call; false
otherwisebeginTrace(oracle.adf.share.MetadataEnvironmentThread.Tracer)