InvocationLocal
public
class
InvocationLocal
extends Object
java.lang.Object | |
↳ | com.android.tradefed.invoker.logger.InvocationLocal<T> |
This class provides invocation-scope variables.
The mechanism operates similarly to ThreadLocal
. These variables differ from their
normal counterparts in that code in an invocation that accesses one (via its get
method)
has its own, independently initialized copy of the variable. InvocationLocal
instances
are typically private static fields in classes that wish to associate state with an invocation.
Each invocation is associated with a copy of an invocation-scoped variable as long as the
invocation is in progress and the InvocationLocal
instance is accessible. After an
invocation is complete, all of its copies of invocation-local instances are subject to garbage
collection (unless other references to these copies exist).
Note that unlike ThreadLocal
instances that are no longer referenced while the
invocation is still in progress are not garbage collected. Creating local or non-static instances
is therefore not recommended as they could grow without bound.
Warning: Use this class sparingly as invocation-locals are glorified global variables with many of the same pitfalls.
Summary
Public constructors | |
---|---|
InvocationLocal()
|
Public methods | |
---|---|
final
T
|
get()
Returns the currently-executing invocation's copy of this invocation-local variable. |
Protected methods | |
---|---|
T
|
initialValue()
Returns the current invocation's "initial value" for this invocation-local variable. |
Public constructors
InvocationLocal
public InvocationLocal ()
Public methods
get
public final T get ()
Returns the currently-executing invocation's copy of this invocation-local variable. If the
variable has no value for the current invocation, it is first initialized to the value
returned by a call to the initialValue()
method.
Returns | |
---|---|
T |
the currently executing invocation's copy of this invocation-local. |
Protected methods
initialValue
protected T initialValue ()
Returns the current invocation's "initial value" for this invocation-local variable. This
method will be invoked the first time code executing in the context of the invocation
accesses the variable with the get()
method. This method is guaranteed to be invoked
at most once per invocation.
This implementation simply returns null
but can be changed by sub-classing InvocationLocal
and overriding this method.
Returns | |
---|---|
T |
the initial value for this invocation-scoped variable |