ScriptEngine (Java Platform SE 6) (original) (raw)
javax.script
Interface ScriptEngine
All Known Implementing Classes:
public interface ScriptEngine
ScriptEngine
is the fundamental interface whose methods must be fully functional in every implementation of this specification.
These methods provide basic scripting functionality. Applications written to this simple interface are expected to work with minimal modifications in every implementation. It includes methods that execute scripts, and ones that set and get values.
The values are key/value pairs of two types. The first type of pairs consists of those whose keys are reserved and defined in this specification or by individual implementations. The values in the pairs with reserved keys have specified meanings.
The other type of pairs consists of those that create Java language Bindings, the values are usually represented in scripts by the corresponding keys or by decorated forms of them.
Since:
1.6
Field Summary | |
---|---|
static String | ARGV Reserved key for a named value that passes an array of positional arguments to a script. |
static String | ENGINE Reserved key for a named value that is the name of the ScriptEngine implementation. |
static String | ENGINE_VERSION Reserved key for a named value that identifies the version of the ScriptEngine implementation. |
static String | FILENAME Reserved key for a named value that is the name of the file being executed. |
static String | LANGUAGE Reserved key for a named value that is the full name of Scripting Language supported by the implementation. |
static String | LANGUAGE_VERSION Reserved key for the named value that identifies the version of the scripting language supported by the implementation. |
static String | NAME Reserved key for a named value that identifies the short name of the scripting language. |
Method Summary | |
---|---|
Bindings | createBindings() Returns an uninitialized Bindings. |
Object | eval(Reader reader) Same as eval(String) except that the source of the script is provided as a Reader |
Object | [eval](../../javax/script/ScriptEngine.html#eval%28java.io.Reader, javax.script.Bindings%29)(Reader reader,Bindings n) Same as eval(String, Bindings) except that the source of the script is provided as a Reader. |
Object | [eval](../../javax/script/ScriptEngine.html#eval%28java.io.Reader, javax.script.ScriptContext%29)(Reader reader,ScriptContext context) Same as eval(String, ScriptContext) where the source of the script is read from a Reader. |
Object | eval(String script) Executes the specified script. |
Object | [eval](../../javax/script/ScriptEngine.html#eval%28java.lang.String, javax.script.Bindings%29)(String script,Bindings n) Executes the script using the Bindings argument as the ENGINE_SCOPE Bindings of the ScriptEngine during the script execution. |
Object | [eval](../../javax/script/ScriptEngine.html#eval%28java.lang.String, javax.script.ScriptContext%29)(String script,ScriptContext context) Causes the immediate execution of the script whose source is the String passed as the first argument. |
Object | get(String key) Retrieves a value set in the state of this engine. |
Bindings | getBindings(int scope) Returns a scope of named values. |
ScriptContext | getContext() Returns the default ScriptContext of the ScriptEngine whose Bindings, Reader and Writers are used for script executions when no ScriptContext is specified. |
ScriptEngineFactory | getFactory() Returns a ScriptEngineFactory for the class to which this ScriptEngine belongs. |
void | [put](../../javax/script/ScriptEngine.html#put%28java.lang.String, java.lang.Object%29)(String key,Object value) Sets a key/value pair in the state of the ScriptEngine that may either create a Java Language Binding to be used in the execution of scripts or be used in some other way, depending on whether the key is reserved. |
void | [setBindings](../../javax/script/ScriptEngine.html#setBindings%28javax.script.Bindings, int%29)(Bindings bindings, int scope) Sets a scope of named values to be used by scripts. |
void | setContext(ScriptContext context) Sets the default ScriptContext of the ScriptEngine whose Bindings, Reader and Writers are used for script executions when no ScriptContext is specified. |
Field Detail |
---|
ARGV
static final String ARGV
Reserved key for a named value that passes an array of positional arguments to a script.
See Also:
FILENAME
static final String FILENAME
Reserved key for a named value that is the name of the file being executed.
See Also:
ENGINE
static final String ENGINE
Reserved key for a named value that is the name of the ScriptEngine
implementation.
See Also:
ENGINE_VERSION
static final String ENGINE_VERSION
Reserved key for a named value that identifies the version of the ScriptEngine
implementation.
See Also:
NAME
static final String NAME
Reserved key for a named value that identifies the short name of the scripting language. The name is used by theScriptEngineManager
to locate a ScriptEngine
with a given name in the getEngineByName
method.
See Also:
LANGUAGE
static final String LANGUAGE
Reserved key for a named value that is the full name of Scripting Language supported by the implementation.
See Also:
LANGUAGE_VERSION
static final String LANGUAGE_VERSION
Reserved key for the named value that identifies the version of the scripting language supported by the implementation.
See Also:
Method Detail |
---|
eval
Object eval(String script, ScriptContext context) throws ScriptException
Causes the immediate execution of the script whose source is the String passed as the first argument. The script may be reparsed or recompiled before execution. State left in the engine from previous executions, including variable values and compiled procedures may be visible during this execution.
Parameters:
script
- The script to be executed by the script engine.
context
- A ScriptContext
exposing sets of attributes in different scopes. The meanings of the scopes ScriptContext.GLOBAL_SCOPE
, and ScriptContext.ENGINE_SCOPE
are defined in the specification.
The ENGINE_SCOPE
Bindings
of the ScriptContext
contains the bindings of scripting variables to application objects to be used during this script execution.
Returns:
The value returned from the execution of the script.
Throws:
[ScriptException](../../javax/script/ScriptException.html "class in javax.script")
- if an error occurrs in script. ScriptEngines should create and throwScriptException
wrappers for checked Exceptions thrown by underlying scripting implementations.
[NullPointerException](../../java/lang/NullPointerException.html "class in java.lang")
- if either argument is null.
eval
Object eval(Reader reader, ScriptContext context) throws ScriptException
Same as eval(String, ScriptContext)
where the source of the script is read from a Reader
.
Parameters:
reader
- The source of the script to be executed by the script engine.
context
- The ScriptContext
passed to the script engine.
Returns:
The value returned from the execution of the script.
Throws:
[ScriptException](../../javax/script/ScriptException.html "class in javax.script")
- if an error occurrs in script.
[NullPointerException](../../java/lang/NullPointerException.html "class in java.lang")
- if either argument is null.
eval
Object eval(String script) throws ScriptException
Executes the specified script. The default ScriptContext
for the ScriptEngine
is used.
Parameters:
script
- The script language source to be executed.
Returns:
The value returned from the execution of the script.
Throws:
[ScriptException](../../javax/script/ScriptException.html "class in javax.script")
- if error occurrs in script.
[NullPointerException](../../java/lang/NullPointerException.html "class in java.lang")
- if the argument is null.
eval
Object eval(Reader reader) throws ScriptException
Same as eval(String)
except that the source of the script is provided as a Reader
Parameters:
reader
- The source of the script.
Returns:
The value returned by the script.
Throws:
[ScriptException](../../javax/script/ScriptException.html "class in javax.script")
- if an error occurrs in script.
[NullPointerException](../../java/lang/NullPointerException.html "class in java.lang")
- if the argument is null.
eval
Object eval(String script, Bindings n) throws ScriptException
Executes the script using the Bindings
argument as the ENGINE_SCOPE
Bindings
of the ScriptEngine
during the script execution. TheReader
, Writer
and non-ENGINE_SCOPE
Bindings
of the default ScriptContext
are used. The ENGINE_SCOPE
Bindings
of the ScriptEngine
is not changed, and its mappings are unaltered by the script execution.
Parameters:
script
- The source for the script.
n
- The Bindings
of attributes to be used for script execution.
Returns:
The value returned by the script.
Throws:
[ScriptException](../../javax/script/ScriptException.html "class in javax.script")
- if an error occurrs in script.
[NullPointerException](../../java/lang/NullPointerException.html "class in java.lang")
- if either argument is null.
eval
Object eval(Reader reader, Bindings n) throws ScriptException
Same as eval(String, Bindings)
except that the source of the script is provided as a Reader
.
Parameters:
reader
- The source of the script.
n
- The Bindings
of attributes.
Returns:
The value returned by the script.
Throws:
[ScriptException](../../javax/script/ScriptException.html "class in javax.script")
- if an error occurrs.
[NullPointerException](../../java/lang/NullPointerException.html "class in java.lang")
- if either argument is null.
put
void put(String key, Object value)
Sets a key/value pair in the state of the ScriptEngine that may either create a Java Language Binding to be used in the execution of scripts or be used in some other way, depending on whether the key is reserved. Must have the same effect asgetBindings(ScriptContext.ENGINE_SCOPE).put
.
Parameters:
key
- The name of named value to add
value
- The value of named value to add.
Throws:
[NullPointerException](../../java/lang/NullPointerException.html "class in java.lang")
- if key is null.
[IllegalArgumentException](../../java/lang/IllegalArgumentException.html "class in java.lang")
- if key is empty.
get
Retrieves a value set in the state of this engine. The value might be one which was set using setValue
or some other value in the state of the ScriptEngine
, depending on the implementation. Must have the same effect as getBindings(ScriptContext.ENGINE_SCOPE).get
Parameters:
key
- The key whose value is to be returned
Returns:
the value for the given key
Throws:
[NullPointerException](../../java/lang/NullPointerException.html "class in java.lang")
- if key is null.
[IllegalArgumentException](../../java/lang/IllegalArgumentException.html "class in java.lang")
- if key is empty.
getBindings
Bindings getBindings(int scope)
Returns a scope of named values. The possible scopes are:
ScriptContext.GLOBAL_SCOPE
- The set of named values representing global scope. If thisScriptEngine
is created by aScriptEngineManager
, then the manager sets global scope bindings. This may benull
if no global scope is associated with thisScriptEngine
ScriptContext.ENGINE_SCOPE
- The set of named values representing the state of thisScriptEngine
. The values are generally visible in scripts using the associated keys as variable names.- Any other value of scope defined in the default
ScriptContext
of theScriptEngine
.
The Bindings
instances that are returned must be identical to those returned by thegetBindings
method of ScriptContext
called with corresponding arguments on the default ScriptContext
of the ScriptEngine
.
Parameters:
scope
- Either ScriptContext.ENGINE_SCOPE
or ScriptContext.GLOBAL_SCOPE
which specifies the Bindings
to return. Implementations of ScriptContext
may define additional scopes. If the default ScriptContext
of the ScriptEngine
defines additional scopes, any of them can be passed to get the corresponding Bindings
.
Returns:
The Bindings
with the specified scope.
Throws:
[IllegalArgumentException](../../java/lang/IllegalArgumentException.html "class in java.lang")
- if specified scope is invalid
setBindings
void setBindings(Bindings bindings, int scope)
Sets a scope of named values to be used by scripts. The possible scopes are:
ScriptContext.ENGINE_SCOPE
- The specifiedBindings
replaces the engine scope of theScriptEngine
.ScriptContext.GLOBAL_SCOPE
- The specifiedBindings
must be visible as theGLOBAL_SCOPE
.- Any other value of scope defined in the default
ScriptContext
of theScriptEngine
.
The method must have the same effect as calling the setBindings
method ofScriptContext
with the corresponding value of scope
on the defaultScriptContext
of the ScriptEngine
.
Parameters:
bindings
- The Bindings
for the specified scope.
scope
- The specified scope. Either ScriptContext.ENGINE_SCOPE
,ScriptContext.GLOBAL_SCOPE
, or any other valid value of scope.
Throws:
[IllegalArgumentException](../../java/lang/IllegalArgumentException.html "class in java.lang")
- if the scope is invalid
[NullPointerException](../../java/lang/NullPointerException.html "class in java.lang")
- if the bindings is null and the scope isScriptContext.ENGINE_SCOPE
createBindings
Bindings createBindings()
Returns an uninitialized Bindings
.
Returns:
A Bindings
that can be used to replace the state of this ScriptEngine
.
getContext
ScriptContext getContext()
Returns the default ScriptContext
of the ScriptEngine
whose Bindings, Reader and Writers are used for script executions when no ScriptContext
is specified.
Returns:
The default ScriptContext
of the ScriptEngine
.
setContext
void setContext(ScriptContext context)
Sets the default ScriptContext
of the ScriptEngine
whose Bindings, Reader and Writers are used for script executions when no ScriptContext
is specified.
Parameters:
context
- A ScriptContext
that will replace the default ScriptContext
in the ScriptEngine
.
Throws:
[NullPointerException](../../java/lang/NullPointerException.html "class in java.lang")
- if context is null.
getFactory
ScriptEngineFactory getFactory()
Returns a ScriptEngineFactory
for the class to which this ScriptEngine
belongs.
Returns:
The ScriptEngineFactory
Submit a bug or feature
For further API reference and developer documentation, see Java SE Developer Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2015, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.
Scripting on this page tracks web page traffic, but does not change the content in any way.