APIdia Launch Partner
Top Description Fields Methods
javax.script

public Interface ScriptEngine

Known Direct Implementers
javax.script.AbstractScriptEngine
Imports
java.io.Reader, java.util.Map, .Set

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.
Author
Mike Grogan
Since
1.6

Field Summary

Modifier and TypeField and Description
public static final String
ARGV

Reserved key for a named value that passes an array of positional arguments to a script.

public static final String
ENGINE

Reserved key for a named value that is the name of the ScriptEngine implementation.

public static final String
ENGINE_VERSION

Reserved key for a named value that identifies the version of the ScriptEngine implementation.

public static final String
FILENAME

Reserved key for a named value that is the name of the file being executed.

public static final String
LANGUAGE

Reserved key for a named value that is the full name of Scripting Language supported by the implementation.

public static final String
LANGUAGE_VERSION

Reserved key for the named value that identifies the version of the scripting language supported by the implementation.

public static final String
NAME

Reserved key for a named value that identifies the short name of the scripting language.

Method Summary

Modifier and TypeMethod and Description
public Bindings

Returns:

A Bindings that can be used to replace the state of this ScriptEngine.
createBindings
()

Returns an uninitialized Bindings.

public Object

Returns:

The value returned from the execution of the script.
eval
(String
The script to be executed by the script engine.
script
,
ScriptContext
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.
context
)

Causes the immediate execution of the script whose source is the String passed as the first argument.

public Object

Returns:

The value returned from the execution of the script.
eval
(Reader
The source of the script to be executed by the script engine.
reader
,
ScriptContext
The ScriptContext passed to the script engine.
context
)

Same as eval(String, ScriptContext) where the source of the script is read from a Reader.

public Object

Returns:

The value returned from the execution of the script.
eval
(String
The script language source to be executed.
script
)

Executes the specified script.

public Object

Returns:

The value returned by the script.
eval
(Reader
The source of the script.
reader
)

Same as eval(String) except that the source of the script is provided as a Reader

public Object

Returns:

The value returned by the script.
eval
(String
The source for the script.
script
,
Bindings
The Bindings of attributes to be used for script execution.
n
)

Executes the script using the Bindings argument as the ENGINE_SCOPE Bindings of the ScriptEngine during the script execution.

public Object

Returns:

The value returned by the script.
eval
(Reader
The source of the script.
reader
,
Bindings
The Bindings of attributes.
n
)

Same as eval(String, Bindings) except that the source of the script is provided as a Reader.

public Object

Returns:

the value for the given key
get
(String
The key whose value is to be returned
key
)

Retrieves a value set in the state of this engine.

public Bindings

Returns:

The Bindings with the specified scope.
getBindings
(int
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.
scope
)

Returns a scope of named values.

public ScriptContext

Returns:

The default ScriptContext of the ScriptEngine.
getContext
()

Returns the default ScriptContext of the ScriptEngine whose Bindings, Reader and Writers are used for script executions when no ScriptContext is specified.

public ScriptEngineFactory

Returns:

The ScriptEngineFactory
getFactory
()

Returns a ScriptEngineFactory for the class to which this ScriptEngine belongs.

public void
put(String
The name of named value to add
key
,
Object
The value of named value to add.
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.

public void
setBindings(Bindings
The Bindings for the specified scope.
bindings
,
int
The specified scope. Either ScriptContext.ENGINE_SCOPE, ScriptContext.GLOBAL_SCOPE, or any other valid value of scope.
scope
)

Sets a scope of named values to be used by scripts.

public void
setContext(ScriptContext
A ScriptContext that will replace the default ScriptContext in the ScriptEngine.
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

ARGVback to summary
public static final String ARGV

Reserved key for a named value that passes an array of positional arguments to a script.

ENGINEback to summary
public static final String ENGINE

Reserved key for a named value that is the name of the ScriptEngine implementation.

ENGINE_VERSIONback to summary
public static final String ENGINE_VERSION

Reserved key for a named value that identifies the version of the ScriptEngine implementation.

FILENAMEback to summary
public static final String FILENAME

Reserved key for a named value that is the name of the file being executed.

LANGUAGEback to summary
public static final String LANGUAGE

Reserved key for a named value that is the full name of Scripting Language supported by the implementation.

LANGUAGE_VERSIONback to summary
public static final String LANGUAGE_VERSION

Reserved key for the named value that identifies the version of the scripting language supported by the implementation.

NAMEback to summary
public static final String NAME

Reserved key for a named value that identifies the short name of the scripting language. The name is used by the ScriptEngineManager to locate a ScriptEngine with a given name in the getEngineByName method.

Method Detail

createBindingsback to summary
public Bindings createBindings()

Returns an uninitialized Bindings.

Returns:Bindings

A Bindings that can be used to replace the state of this ScriptEngine.

evalback to summary
public 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:String

The script to be executed by the script engine.

context:ScriptContext

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:Object

The value returned from the execution of the script.

Exceptions
ScriptException:
if an error occurs in script. ScriptEngines should create and throw ScriptException wrappers for checked Exceptions thrown by underlying scripting implementations.
NullPointerException:
if either argument is null.
evalback to summary
public 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:Reader

The source of the script to be executed by the script engine.

context:ScriptContext

The ScriptContext passed to the script engine.

Returns:Object

The value returned from the execution of the script.

Exceptions
ScriptException:
if an error occurs in script. ScriptEngines should create and throw ScriptException wrappers for checked Exceptions thrown by underlying scripting implementations.
NullPointerException:
if either argument is null.
evalback to summary
public Object eval(String script) throws ScriptException

Executes the specified script. The default ScriptContext for the ScriptEngine is used.

Parameters
script:String

The script language source to be executed.

Returns:Object

The value returned from the execution of the script.

Exceptions
ScriptException:
if an error occurs in script. ScriptEngines should create and throw ScriptException wrappers for checked Exceptions thrown by underlying scripting implementations.
NullPointerException:
if the argument is null.
evalback to summary
public Object eval(Reader reader) throws ScriptException

Same as eval(String) except that the source of the script is provided as a Reader

Parameters
reader:Reader

The source of the script.

Returns:Object

The value returned by the script.

Exceptions
ScriptException:
if an error occurs in script. ScriptEngines should create and throw ScriptException wrappers for checked Exceptions thrown by underlying scripting implementations.
NullPointerException:
if the argument is null.
evalback to summary
public 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. The Reader, 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:String

The source for the script.

n:Bindings

The Bindings of attributes to be used for script execution.

Returns:Object

The value returned by the script.

Exceptions
ScriptException:
if an error occurs in script. ScriptEngines should create and throw ScriptException wrappers for checked Exceptions thrown by underlying scripting implementations.
NullPointerException:
if either argument is null.
evalback to summary
public 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:Reader

The source of the script.

n:Bindings

The Bindings of attributes.

Returns:Object

The value returned by the script.

Exceptions
ScriptException:
if an error occurs in script. ScriptEngines should create and throw ScriptException wrappers for checked Exceptions thrown by underlying scripting implementations.
NullPointerException:
if either argument is null.
getback to summary
public Object get(String key)

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:String

The key whose value is to be returned

Returns:Object

the value for the given key

Exceptions
NullPointerException:
if key is null.
IllegalArgumentException:
if key is empty.
getBindingsback to summary
public 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 this ScriptEngine is created by a ScriptEngineManager, then the manager sets global scope bindings. This may be null if no global scope is associated with this ScriptEngine
  • ScriptContext.ENGINE_SCOPE - The set of named values representing the state of this ScriptEngine. 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 the ScriptEngine.


The Bindings instances that are returned must be identical to those returned by the getBindings method of ScriptContext called with corresponding arguments on the default ScriptContext of the ScriptEngine.
Parameters
scope:int

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:Bindings

The Bindings with the specified scope.

Exceptions
IllegalArgumentException:
if specified scope is invalid
getContextback to summary
public 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:ScriptContext

The default ScriptContext of the ScriptEngine.

getFactoryback to summary
public ScriptEngineFactory getFactory()

Returns a ScriptEngineFactory for the class to which this ScriptEngine belongs.

Returns:ScriptEngineFactory

The ScriptEngineFactory

putback to summary
public 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 as getBindings(ScriptContext.ENGINE_SCOPE).put.

Parameters
key:String

The name of named value to add

value:Object

The value of named value to add.

Exceptions
NullPointerException:
if key is null.
IllegalArgumentException:
if key is empty.
setBindingsback to summary
public 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 specified Bindings replaces the engine scope of the ScriptEngine.
  • ScriptContext.GLOBAL_SCOPE - The specified Bindings must be visible as the GLOBAL_SCOPE.
  • Any other value of scope defined in the default ScriptContext of the ScriptEngine.


The method must have the same effect as calling the setBindings method of ScriptContext with the corresponding value of scope on the default ScriptContext of the ScriptEngine.
Parameters
bindings:Bindings

The Bindings for the specified scope.

scope:int

The specified scope. Either ScriptContext.ENGINE_SCOPE, ScriptContext.GLOBAL_SCOPE, or any other valid value of scope.

Exceptions
IllegalArgumentException:
if the scope is invalid
NullPointerException:
if the bindings is null and the scope is ScriptContext.ENGINE_SCOPE
setContextback to summary
public 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:ScriptContext

A ScriptContext that will replace the default ScriptContext in the ScriptEngine.

Exceptions
NullPointerException:
if context is null.