org.apache.batik.script.rhino
Class RhinoInterpreter

java.lang.Object
  |
  +--org.apache.batik.script.rhino.RhinoInterpreter
All Implemented Interfaces:
Interpreter, Localizable

public class RhinoInterpreter
extends java.lang.Object
implements Interpreter

A simple implementation of Interpreter interface to use Rhino ECMAScript interpreter.


Inner Class Summary
static interface RhinoInterpreter.ArgumentsBuilder
          To build an argument list.
 
Field Summary
static java.lang.String BIND_NAME_WINDOW
          Name of the "window" object when referenced by scripts
protected  java.util.Vector contexts
          Context vector, to make sure we are not setting the security context too many times
protected  org.mozilla.javascript.Context defaultContext
          Default Context for scripts.
static java.lang.String ECMA_WINDOW_INSTANTIATION
          Instantiate the "window" object
protected  RhinoClassLoader rhinoClassLoader
          The Rhino 'security domain'.
static java.lang.String SOURCE_NAME_SVG
          Constant used to describe an SVG source
 
Constructor Summary
RhinoInterpreter(java.net.URL documentURL)
          Build a Interpreter for ECMAScript using Rhino.
 
Method Summary
 void bindObject(java.lang.String name, java.lang.Object object)
          This method registers a particular Java Object in the environment of the interpreter.
 void dispose()
          For RhinoInterpreter this method does nothing.
 org.mozilla.javascript.Context enterContext()
          Implementation helper.
 java.lang.Object evaluate(java.io.Reader scriptreader)
          This method evaluates a piece of ECMAScript.
 java.lang.Object evaluate(java.lang.String scriptstr)
          This method evaluates a piece of ECMA script.
 java.lang.String formatMessage(java.lang.String key, java.lang.Object[] args)
          Creates and returns a localized message, given the key of the message, 0, data.length in the resource bundle and the message parameters.
 java.security.AccessControlContext getAccessControlContext()
          Returns the AccessControlContext associated with this Interpreter.
protected  org.mozilla.javascript.ScriptableObject getGlobalObject()
          This method returns the ECMAScript global object used by this interpreter.
 java.util.Locale getLocale()
          Provides a way to the user to specify a locale which override the default one.
 void setLocale(java.util.Locale locale)
          Returns the current locale or null if the locale currently used is the default one.
 void setOut(java.io.Writer out)
          By default Rhino has no output method in its language.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

SOURCE_NAME_SVG

public static final java.lang.String SOURCE_NAME_SVG
Constant used to describe an SVG source

BIND_NAME_WINDOW

public static final java.lang.String BIND_NAME_WINDOW
Name of the "window" object when referenced by scripts

ECMA_WINDOW_INSTANTIATION

public static final java.lang.String ECMA_WINDOW_INSTANTIATION
Instantiate the "window" object

rhinoClassLoader

protected RhinoClassLoader rhinoClassLoader
The Rhino 'security domain'. We use the RhinoClassLoader which will grant permissions to connect to the document URL.

defaultContext

protected org.mozilla.javascript.Context defaultContext
Default Context for scripts. This is used only for efficiency reason.

contexts

protected java.util.Vector contexts
Context vector, to make sure we are not setting the security context too many times
Constructor Detail

RhinoInterpreter

public RhinoInterpreter(java.net.URL documentURL)
Build a Interpreter for ECMAScript using Rhino.
Parameters:
documentURL - the URL for the document which references
See Also:
Interpreter, InterpreterPool
Method Detail

getAccessControlContext

public java.security.AccessControlContext getAccessControlContext()
Returns the AccessControlContext associated with this Interpreter.
See Also:
RhinoClassLoader

enterContext

public org.mozilla.javascript.Context enterContext()
Implementation helper. Makes sure the proper security is set on the context.

getGlobalObject

protected org.mozilla.javascript.ScriptableObject getGlobalObject()
This method returns the ECMAScript global object used by this interpreter.

evaluate

public java.lang.Object evaluate(java.io.Reader scriptreader)
                          throws InterpreterException,
                                 java.io.IOException
This method evaluates a piece of ECMAScript.
Specified by:
evaluate in interface Interpreter
Parameters:
scriptreader - a java.io.Reader on the piece of script
Returns:
if no exception is thrown during the call, should return the value of the last expression evaluated in the script.

evaluate

public java.lang.Object evaluate(java.lang.String scriptstr)
                          throws InterpreterException
This method evaluates a piece of ECMA script. The first time a String is passed, it is compiled and evaluated. At next call, the piece of script will only be evaluated to prevent from recompiling it.
Specified by:
evaluate in interface Interpreter
Parameters:
scriptstr - the piece of script
Returns:
if no exception is thrown during the call, should return the value of the last expression evaluated in the script.

dispose

public void dispose()
For RhinoInterpreter this method does nothing.
Specified by:
dispose in interface Interpreter

bindObject

public void bindObject(java.lang.String name,
                       java.lang.Object object)
This method registers a particular Java Object in the environment of the interpreter.
Specified by:
bindObject in interface Interpreter
Parameters:
name - the name of the script object to create
object - the Java object

setOut

public void setOut(java.io.Writer out)
By default Rhino has no output method in its language. That's why this method does nothing.
Specified by:
setOut in interface Interpreter
Parameters:
output - the new out Writer.

getLocale

public java.util.Locale getLocale()
Provides a way to the user to specify a locale which override the default one. If null is passed to this method, the used locale becomes the global one.
Specified by:
getLocale in interface Localizable
Parameters:
l - The locale to set.

setLocale

public void setLocale(java.util.Locale locale)
Returns the current locale or null if the locale currently used is the default one.
Specified by:
setLocale in interface Localizable
Following copied from interface: org.apache.batik.i18n.Localizable
Parameters:
l - The locale to set.

formatMessage

public java.lang.String formatMessage(java.lang.String key,
                                      java.lang.Object[] args)
Creates and returns a localized message, given the key of the message, 0, data.length in the resource bundle and the message parameters. The messages in the resource bundle must have the syntax described in the java.text.MessageFormat class documentation.
Specified by:
formatMessage in interface Localizable
Parameters:
key - The key used to retreive the message from the resource bundle.
args - The objects that compose the message.
Throws:
MissingResourceException - if the key is not in the bundle.


Copyright © 2002 Apache Software Foundation. All Rights Reserved.