### javax.script

# Interface ScriptEngine

Known Implementing Classes:
  AbstractScriptEngine, PhpFacesScriptEngine, PhpScriptEngine

`public interface ScriptEngine`

The ScriptEngine interfaces contains only the methods which are expected to be fully functional in every Java ScriptEngine.

Authors:
  Nandika Jayawardana <nandika@opensource.lk>
  Sanka Samaranayake <sanka@opensource.lk>

## Field Summary

`static java.lang.String`

`ARGV`
  Reserved key associated with an object array which is used to pass set of positional parameters to the ScriptEngines.

`static java.lang.String`

`ENGINE`
  Reserved key associated with the name of the Java ScriptEngine

`static java.lang.String`

`ENGINE_VERSION`
  Reserved key associated with the version of the Java ScriptEngine

`static java.lang.String`

`FILENAME`
  Reserved key associated with name of the file which contains the source of the script.

`static java.lang.String`

`LANGUAGE`
  Reserved key associated with the name of the supported scripting language

`static java.lang.String`

`LANGUAGE_VERSION`
  Reserved key associated with the version of the supported scripting language

`static java.lang.String`

`NAME`
  Reserved key associated with the named value which identifies the short name of the supported language

## Method Summary

`Bindings`

`createBindings()`
  Retrieves an uninitailized namespace which can be used as the scope of the ScriptEngine.

`java.lang.Object`

`eval(java.io.Reader reader)`
  Evaluates a piece of script obtained using the specified reader as the script source.

`java.lang.Object`

`eval(java.io.Reader reader, Bindings namespace)`
  Evaluates a piece of scripts obtained using a reader as the script source and using the specified namespace as the SCRIPT_SCOPE.

`java.lang.Object`

`eval(java.io.Reader reader, ScriptContext context)`
  Evaluates a script obtained using the specified reader as the script source and using the namespaces in the specifed ScriptContext.

`java.lang.Object`

`eval(java.lang.String script)`
  Evaluates a piece of script and returns the resultant object.

`java.lang.Object`

`eval(java.lang.String script, Bindings namespace)`
  Evaluates a piece of script using the specified namespace as the SCRIPT_SCOPE.

`java.lang.Object`

`eval(java.lang.String script, ScriptContext context)`
  Evaluates a script using the namespaces in the specifed ScriptContext.

`java.lang.Object`

`get(java.lang.String key)`
  Retrieves the value which is associated with the specified key in the state of the ScriptEngine.

`Bindings`

`getBindings(int scope)`
  Retrieves a reference to the associated namespace for the specified level of scope.

`ScriptContext`

`getContext()`

`ScriptEngineFactory`

`getFactory()`
  Retrieves a ScriptEngineFactory for the class to which describes the underlying ScriptEngine.

`void`

`put(java.lang.String key, java.lang.Object value)`
  Associates a key and a value in the ScriptEngine namespace.

`void`

`setBindings(Bindings namespace, int scope)`
  Associates the specified namespace with the specified level of scope.

`void`

`setContext(ScriptContext ctx)`
  Set the default ScriptContext

## Field Details

### ARGV

    public static final java.lang.String ARGV

> Reserved key associated with an object array which is used to pass set of positional parameters to the ScriptEngines.

> Field Value:
>   ""

### ENGINE

    public static final java.lang.String ENGINE

> Reserved key associated with the name of the Java ScriptEngine

> Field Value:
>   ""

### ENGINE_VERSION

    public static final java.lang.String ENGINE_VERSION

> Reserved key associated with the version of the Java ScriptEngine

> Field Value:
>   ""

### FILENAME

    public static final java.lang.String FILENAME

> Reserved key associated with name of the file which contains the source of the script.

> Field Value:
>   ""

### LANGUAGE

    public static final java.lang.String LANGUAGE

> Reserved key associated with the name of the supported scripting language

> Field Value:
>   ""

### LANGUAGE_VERSION

    public static final java.lang.String LANGUAGE_VERSION

> Reserved key associated with the version of the supported scripting language

> Field Value:
>   ""

### NAME

    public static final java.lang.String NAME

> Reserved key associated with the named value which identifies the short name of the supported language

> Field Value:
>   ""

## Method Details

### createBindings

    public Bindings createBindings()

> Retrieves an uninitailized namespace which can be used as the scope of the ScriptEngine.

> Returns:
>   an initialzed namespace which can be used to repalce the state of the ScriptEngine

### eval

    public java.lang.Object eval(java.io.Reader reader)
                throws ScriptException

> Evaluates a piece of script obtained using the specified reader as the script source. Returns null for non-returning scripts.

> Parameters:
>   `reader` - the source of the script

> Returns:
>   the value of the evaluated script

> Throws:
>   `ScriptException` - if an error occurs

### eval

    public java.lang.Object eval(java.io.Reader reader,
                                 Bindings namespace)
                throws ScriptException

> Evaluates a piece of scripts obtained using a reader as the script source and using the specified namespace as the SCRIPT_SCOPE. Returns null for non-returning scripts.

> Parameters:
>   `reader` - the script source used to obtained the script
>   `namespace` - the namespace to be used as SCRIPT_SCOPE

> Returns:
>   the value of the evaluated script

> Throws:
>   `ScriptException` - if an error occurs

### eval

    public java.lang.Object eval(java.io.Reader reader,
                                 ScriptContext context)
                throws ScriptException

> Evaluates a script obtained using the specified reader as the script source and using the namespaces in the specifed ScriptContext. Returns null for non-returning scripts

> Parameters:
>   `reader` - the script source
>   `context` - the context contianing different namespace for script evaluation

> Returns:
>   the value of the evaluated script

> Throws:
>   `ScriptException` - if an error occurs

### eval

    public java.lang.Object eval(java.lang.String script)
                throws ScriptException

> Evaluates a piece of script and returns the resultant object. Returns null for non-returning scripts.

> Parameters:
>   `script` - the String representation of the script

> Returns:
>   the value of the evaluated script

> Throws:
>   `ScriptException` - if an error occurs

### eval

    public java.lang.Object eval(java.lang.String script,
                                 Bindings namespace)
                throws ScriptException

> Evaluates a piece of script using the specified namespace as the SCRIPT_SCOPE. Retruns null for non-returning scripts.

> Parameters:
>   `script` - the String representation of the script
>   `namespace` - the namespace to be used as the SCRIPT_SCOPE

> Returns:
>   the value of the evaluated script

> Throws:
>   `ScriptException` - if an error occurs

### eval

    public java.lang.Object eval(java.lang.String script,
                                 ScriptContext context)
                throws ScriptException

> Evaluates a script using the namespaces in the specifed ScriptContext. Return null for non-returning scripts.

> Parameters:
>   `script` - the String representation of the script
>   `context` - tbe ScriptContext containing namespaces for the script evaluation

> Returns:
>   the value of the evaluated script

> Throws:
>   `ScriptException` - if an error occurs

### get

    public java.lang.Object get(java.lang.String key)

> Retrieves the value which is associated with the specified key in the state of the ScriptEngine.

> Parameters:
>   `key` - the key associated with value.

> Returns:
>   an object value which is associated with the key

### getBindings

    public Bindings getBindings(int scope)
                throws java.lang.IllegalArgumentException

> Retrieves a reference to the associated namespace for the specified level of scope. Possible scopes are: GLOBAL_SCOPE : if the ScriptEngine was created by ScriptingEngineManager then GLOBAL_SCOPE of it is returned (or null if there is no GLOBAL_SCOPE stored in the ScriptEngine). ENGINE_SCOPE : the set of key-value pairs stored in the ScriptEngine is returned.

> Parameters:
>   `scope` - the specified level of scope

> Returns:
>   associated namespace for the specified level of scope

> Throws:
>   `java.lang.IllegalArgumentException` - if the scope is invalid

### getContext

    public ScriptContext getContext()

### getFactory

    public ScriptEngineFactory getFactory()

> Retrieves a ScriptEngineFactory for the class to which describes the underlying ScriptEngine.

> Returns:
>   an instance of ScriptEngineFactory which describes the underlying ScriptEngine

### put

    public void put(java.lang.String key,
                    java.lang.Object value)
                throws java.lang.IllegalArgumentException

> Associates a key and a value in the ScriptEngine namespace.

> Parameters:
>   `key` - the specified key associated with the value
>   `value` - value which is to be associated with the specified key

> Throws:
>   `java.lang.IllegalArgumentException` - if the key is null

### setBindings

    public void setBindings(Bindings namespace,
                            int scope)
                throws java.lang.IllegalArgumentException

> Associates the specified namespace with the specified level of scope.

> Parameters:
>   `namespace` - namespace to be associated with the specified level of scope
>   `scope` - level of scope for which the namespace should be associated with

### setContext

    public void setContext(ScriptContext ctx)

> Set the default ScriptContext