org.apache.commons.jexl2.scripting
Class JexlScriptEngine

java.lang.Object
  extended by javax.script.AbstractScriptEngine
      extended by org.apache.commons.jexl2.scripting.JexlScriptEngine
All Implemented Interfaces:
Compilable, ScriptEngine

public class JexlScriptEngine
extends AbstractScriptEngine
implements Compilable

Implements the Jexl ScriptEngine for JSF-223.

This implementation gives access to both ENGINE_SCOPE and GLOBAL_SCOPE bindings. When a JEXL script accesses a variable for read or write, this implementation checks first ENGINE and then GLOBAL scope. The first one found is used. If no variable is found, and the JEXL script is writing to a variable, it will be stored in the ENGINE scope.

The implementation also creates the "JEXL" script object as an instance of the class JexlScriptEngine.JexlScriptObject for access to utility methods and variables.

See Java Scripting API Javadoc.

Since:
2.0

Nested Class Summary
 class JexlScriptEngine.JexlScriptObject
          Implements engine and engine context properties for use by JEXL scripts.
 
Field Summary
static String CONTEXT_KEY
          Reserved key for context (mandated by JSR-223).
static String JEXL_OBJECT_KEY
          Reserved key for JexlScriptObject.
 
Fields inherited from class javax.script.AbstractScriptEngine
context
 
Fields inherited from interface javax.script.ScriptEngine
ARGV, ENGINE, ENGINE_VERSION, FILENAME, LANGUAGE, LANGUAGE_VERSION, NAME
 
Constructor Summary
JexlScriptEngine()
          Default constructor.
JexlScriptEngine(ScriptEngineFactory factory)
          Create a scripting engine using the supplied factory.
 
Method Summary
 CompiledScript compile(Reader script)
          
 CompiledScript compile(String script)
          
 Bindings createBindings()
          
 Object eval(Reader reader, ScriptContext context)
          
 Object eval(String script, ScriptContext context)
          
 ScriptEngineFactory getFactory()
          
 
Methods inherited from class javax.script.AbstractScriptEngine
eval, eval, eval, eval, get, getBindings, getContext, getScriptContext, put, setBindings, setContext
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

CONTEXT_KEY

public static final String CONTEXT_KEY
Reserved key for context (mandated by JSR-223).

See Also:
Constant Field Values

JEXL_OBJECT_KEY

public static final String JEXL_OBJECT_KEY
Reserved key for JexlScriptObject.

See Also:
Constant Field Values
Constructor Detail

JexlScriptEngine

public JexlScriptEngine()
Default constructor.

Only intended for use when not using a factory. Sets the factory to JexlScriptEngineFactory.


JexlScriptEngine

public JexlScriptEngine(ScriptEngineFactory factory)
Create a scripting engine using the supplied factory.

Parameters:
factory - the factory which created this instance.
Throws:
NullPointerException - if factory is null
Method Detail

createBindings

public Bindings createBindings()

Specified by:
createBindings in interface ScriptEngine

eval

public Object eval(Reader reader,
                   ScriptContext context)
            throws ScriptException

Specified by:
eval in interface ScriptEngine
Throws:
ScriptException

eval

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

Specified by:
eval in interface ScriptEngine
Throws:
ScriptException

getFactory

public ScriptEngineFactory getFactory()

Specified by:
getFactory in interface ScriptEngine

compile

public CompiledScript compile(String script)
                       throws ScriptException

Specified by:
compile in interface Compilable
Throws:
ScriptException

compile

public CompiledScript compile(Reader script)
                       throws ScriptException

Specified by:
compile in interface Compilable
Throws:
ScriptException


Copyright © 2001-2011 The Apache Software Foundation. All Rights Reserved.