public final class ScriptContext<FactoryType>
extends java.lang.Object
ScriptContext contains the information related to a single use case and the interfaces
and methods necessary for a ScriptEngine to implement.
There are at least two (and optionally a third) related classes which must be defined.
The InstanceType is a class which users of the script api call to execute a script. It
may be stateful. Instances of
the InstanceType may be executed multiple times by a caller with different arguments. This
class must have an abstract method named execute which ScriptEngine implementations
will define.
The FactoryType is a factory class returned by the ScriptService when compiling
a script. This class must be stateless so it is cacheable by the ScriptService. It must
have one of the following:
newInstance which returns an instance of InstanceTypenewFactory which returns an instance of StatefulFactoryType
The StatefulFactoryType is an optional class which allows a stateful factory from the
stateless factory type required by the ScriptService. If defined, the StatefulFactoryType
must have a method named newInstance which returns an instance of InstanceType.
Both the FactoryType and StatefulFactoryType may have abstract methods to indicate
whether a variable is used in a script. These method should return a boolean and their name
should start with needs, followed by the variable name, with the first letter uppercased.
For example, to check if a variable doc is used, a method boolean needsDoc() should be added.
If the variable name starts with an underscore, for example, _score, the needs method would
be boolean needs_score().
| Modifier and Type | Field and Description |
|---|---|
java.lang.Class<FactoryType> |
factoryClazz
A factory class for constructing script or stateful factory instances.
|
java.lang.Class<?> |
instanceClazz
A class that is an instance of a script.
|
java.lang.String |
name
A unique identifier for this context.
|
java.lang.Class<?> |
statefulFactoryClazz
A factory class for construct script instances.
|
| Constructor and Description |
|---|
ScriptContext(java.lang.String name,
java.lang.Class<FactoryType> factoryClazz)
Construct a context with the related instance and compiled classes.
|
public final java.lang.String name
public final java.lang.Class<FactoryType> factoryClazz
public final java.lang.Class<?> statefulFactoryClazz
public final java.lang.Class<?> instanceClazz
public ScriptContext(java.lang.String name,
java.lang.Class<FactoryType> factoryClazz)