Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.batik.script.rhino
Class RhinoInterpreter

    java.lang.Object
      org.apache.batik.script.rhino.RhinoInterpreter

All Implemented Interfaces:
  Localizable, Interpreter

Direct Known Subclasses:
  SVG12RhinoInterpreter

    public class RhinoInterpreter

extends Object
implements Interpreter

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

Nested Class Summary
`static interface` | `RhinoInterpreter.ArgumentsBuilder` To build an argument list.
`protected static class` | `RhinoInterpreter.Entry` Class to store cached compiled scripts.
`protected class` | `RhinoInterpreter.Factory` Factory for Context objects.

Field Summary
`static String` | `BIND_NAME_WINDOW` Name of the "window" object when referenced by scripts
`protected ClassShutter` | `classShutter` Class shutter.
`protected LinkedList` | `compiledScripts` List of cached compiled scripts.
`protected ContextFactory` | `contextFactory` Factory object for creating Contexts.
`protected static List` | `contexts` Context vector, to make sure we are not setting the security context too many times
`protected Context` | `defaultContext` Default Context for scripts.
`protected ScriptableObject` | `globalObject` The global object.
`protected RhinoClassLoader` | `rhinoClassLoader` The Rhino 'security domain'.
`protected SecurityController` | `securityController` The SecurityController implementation for Batik, which ensures scripts have access to the server they were downloaded from
`static String` | `SOURCE_NAME_SVG` Constant used to describe an SVG source
`protected static String[]` | `TO_BE_IMPORTED` Java packages that will be imported into the scripting environment.
`protected Window` | `window` The window object.
`protected WrapFactory` | `wrapFactory` Factory for Java wrapper objects.

Constructor Summary
`RhinoInterpreter(URL documentURL)` Build a `Interpreter` for ECMAScript using Rhino.

Method Summary
`void` | `bindObject(String name, Object object)` This method registers a particular Java `Object` in the environment of the interpreter.
`protected ScriptableObject` | `createGlobalObject(Context ctx)` Creates the global object.
`protected void` | `defineGlobalWrapperClass(Scriptable global)` Defines the class for the global object.
`void` | `dispose()` For `RhinoInterpreter` this method flushes the Rhino caches to avoid memory leaks.
`Object` | `evaluate(Reader scriptreader)` This method evaluates a piece of ECMAScript.
`Object` | `evaluate(Reader scriptReader, String description)` This method evaluates a piece of ECMAScript.
`Object` | `evaluate(String scriptStr)` This method evaluates a piece of ECMA script.
`String` | `formatMessage(String key, 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.
`AccessControlContext` | `getAccessControlContext()` Returns the AccessControlContext associated with this Interpreter.
`ContextFactory` | `getContextFactory()` Returns the ContextFactory for this interpreter.
`protected ScriptableObject` | `getGlobalObject()` This method returns the ECMAScript global object used by this interpreter.
`Locale` | `getLocale()` Returns the current locale or null if the locale currently used is the default one.
`Window` | `getWindow()` Returns the window object for this interpreter.
`void` | `setLocale(Locale locale)` Provides a way to the user to specify a locale which override the default one.
`void` | `setOut(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

### TO_BE_IMPORTED

    protected static String[] TO_BE_IMPORTED

  Java packages that will be imported into the scripting environment.

### SOURCE_NAME_SVG

    public static final String SOURCE_NAME_SVG

  Constant used to describe an SVG source

  See Also:
    Constant Field Values

### BIND_NAME_WINDOW

    public static final String BIND_NAME_WINDOW

  Name of the "window" object when referenced by scripts

  See Also:
    Constant Field Values

### contexts

    protected static List contexts

  Context vector, to make sure we are not setting the security context too many times

### window

    protected Window window

  The window object.

### globalObject

    protected ScriptableObject globalObject

  The global object.

### compiledScripts

    protected LinkedList compiledScripts

  List of cached compiled scripts.

### wrapFactory

    protected WrapFactory wrapFactory

  Factory for Java wrapper objects.

### classShutter

    protected ClassShutter classShutter

  Class shutter.

### rhinoClassLoader

    protected RhinoClassLoader rhinoClassLoader

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

### securityController

    protected SecurityController securityController

  The SecurityController implementation for Batik, which ensures scripts have access to the server they were downloaded from

### contextFactory

    protected ContextFactory contextFactory

  Factory object for creating Contexts.

### defaultContext

    protected Context defaultContext

  Default Context for scripts. This is used only for efficiency reasons.

Constructor Detail

### RhinoInterpreter

    public RhinoInterpreter(URL documentURL)

  Build a `Interpreter` for ECMAScript using Rhino.

  Parameters:
    `documentURL` - the URL for the document which references
  See Also:
    `Interpreter`, `InterpreterPool`

Method Detail

### getWindow

    public Window getWindow()

  Returns the window object for this interpreter.

### getContextFactory

    public ContextFactory getContextFactory()

  Returns the ContextFactory for this interpreter.

### defineGlobalWrapperClass

    protected void defineGlobalWrapperClass(Scriptable global)

  Defines the class for the global object.

### createGlobalObject

    protected ScriptableObject createGlobalObject(Context ctx)

  Creates the global object.

### getAccessControlContext

    public AccessControlContext getAccessControlContext()

  Returns the AccessControlContext associated with this Interpreter.

  See Also:
    `RhinoClassLoader`

### getGlobalObject

    protected ScriptableObject getGlobalObject()

  This method returns the ECMAScript global object used by this interpreter.

### evaluate

    public Object evaluate(Reader scriptreader)
                    throws 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.
  Throws:
    `IOException`

### evaluate

    public Object evaluate(Reader scriptReader,
                           String description)
                    throws 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
    `description` - description which can be later used (e.g., for error messages).
  Returns:
    if no exception is thrown during the call, should return the value of the last expression evaluated in the script.
  Throws:
    `IOException`

### evaluate

    public Object evaluate(String scriptStr)

  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 flushes the Rhino caches to avoid memory leaks.

  Specified by:
    `dispose` in interface `Interpreter`

### bindObject

    public void bindObject(String name,
                           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(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:
    `out` - the new out `Writer`.

### getLocale

    public Locale getLocale()

  Returns the current locale or null if the locale currently used is the default one.

  Specified by:
    `getLocale` in interface `Localizable`

### setLocale

    public void setLocale(Locale locale)

  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:
    `setLocale` in interface `Localizable`
  Parameters:
    `locale` - The locale to set.

### formatMessage

    public String formatMessage(String key,
                                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.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2008 Apache Software Foundation. All Rights Reserved.