Package org.zkoss.zk.scripting.rhino

## Class RhinoInterpreter

- java.lang.Object
- - org.zkoss.zk.scripting.util.GenericInterpreter
  - - org.zkoss.zk.scripting.rhino.RhinoInterpreter

- All Implemented Interfaces:
    `Interpreter`

      public class RhinoInterpreter
      extends GenericInterpreter

  Rhino-based JavaScript interpreter.
  Author:
    tomyeh

- - ### Field Summary

    - ### Fields inherited from class org.zkoss.zk.scripting.util.GenericInterpreter

      `UNDEFINED`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `RhinoInterpreter()` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected void` | `afterExec()` | Called after `GenericInterpreter.exec(java.lang.String)`, `GenericInterpreter.get(java.lang.String)` and many others.
    `protected void` | `beforeExec()` | Called before `GenericInterpreter.exec(java.lang.String)`, `GenericInterpreter.get(java.lang.String)` and many others.
    `protected boolean` | `contains​(java.lang.String name)` | Tests whether a variable is defined in this interpreter.
    `void` | `destroy()` | Reset the owner (`GenericInterpreter.getOwner()`) to null.
    `protected void` | `exec​(java.lang.String script)` | Executes the specified script.
    `protected java.lang.Object` | `get​(java.lang.String name)` | Gets the variable from the interpreter.
    `Function` | `getFunction​(java.lang.String name, java.lang.Class[] argTypes)` | Returns the method.
    `java.lang.Object` | `getNativeInterpreter()` | Returns the native interpreter, or null if it is not initialized or destroyed.
    `void` | `init​(Page owner, java.lang.String zslang)` | Initializes the interpreter.
    `protected void` | `set​(java.lang.String name, java.lang.Object value)` | Sets the variable to the interpreter.
    `protected void` | `unset​(java.lang.String name)` | Removes the variable from the interpreter.

    - ### Methods inherited from class org.zkoss.zk.scripting.util.GenericInterpreter

      `afterInterpret, beforeInterpret, contains, containsVariable, containsVariable, get, getClass, getCurrent, getFromNamespace, getFromNamespace, getFunction, getImplicit, getLanguage, getOwner, getVariable, getVariable, interpret, set, setVariable, setVariable, unset, unsetVariable, unsetVariable`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### RhinoInterpreter

          public RhinoInterpreter()

  - ### Method Detail

    - #### getNativeInterpreter

          public java.lang.Object getNativeInterpreter()

      Returns the native interpreter, or null if it is not initialized or destroyed. From application's standpoint, it never returns null, and the returned object must be an instance of `Scriptable`
      Since:
        3.0.2

    - #### exec

          protected void exec​(java.lang.String script)

      Description copied from class: `GenericInterpreter`
      Executes the specified script. Deriving class shall provide an implementation of this method, rather than overriding `GenericInterpreter.interpret(java.lang.String, org.zkoss.zk.ui.ext.Scope)`.
      Specified by:
        `exec` in class `GenericInterpreter`

    - #### contains

          protected boolean contains​(java.lang.String name)

      Description copied from class: `GenericInterpreter`
      Tests whether a variable is defined in this interpreter. Optional. Implement it if the interpreter can tell the difference between null and undefined.

      By default, it tests whether `GenericInterpreter.get(String)` returns non-null.

      Overrides:
        `contains` in class `GenericInterpreter`

    - #### get

          protected java.lang.Object get​(java.lang.String name)

      Description copied from class: `GenericInterpreter`
      Gets the variable from the interpreter. Optional. Implement it if you want to expose variables defined in the interpreter to Java codes.

      `GenericInterpreter.beforeExec()` is called first, before this method is invoked.

      An empty (and fake) scope is pushed so `GenericInterpreter.getFromNamespace(java.lang.String)` always returns null.

      Overrides:
        `get` in class `GenericInterpreter`

    - #### set

          protected void set​(java.lang.String name,
                             java.lang.Object value)

      Description copied from class: `GenericInterpreter`
      Sets the variable to the interpreter. Optional. Implement it if you want to allow Java codes to define a variable in the interpreter.

      `GenericInterpreter.beforeExec()` is called first, before this method is invoked.

      Overrides:
        `set` in class `GenericInterpreter`

    - #### unset

          protected void unset​(java.lang.String name)

      Description copied from class: `GenericInterpreter`
      Removes the variable from the interpreter. Optional. Implement it if you want to allow Java codes to undefine a variable from the interpreter.

      `GenericInterpreter.beforeExec()` is called first, before this method is invoked.

      Overrides:
        `unset` in class `GenericInterpreter`

    - #### beforeExec

          protected void beforeExec()

      Description copied from class: `GenericInterpreter`
      Called before `GenericInterpreter.exec(java.lang.String)`, `GenericInterpreter.get(java.lang.String)` and many others.

      Default: does nothing.

      Overrides:
        `beforeExec` in class `GenericInterpreter`

    - #### afterExec

          protected void afterExec()

      Description copied from class: `GenericInterpreter`
      Called after `GenericInterpreter.exec(java.lang.String)`, `GenericInterpreter.get(java.lang.String)` and many others.

      Default: does nothing.

      Overrides:
        `afterExec` in class `GenericInterpreter`

    - #### init

          public void init​(Page owner,
                           java.lang.String zslang)

      Description copied from interface: `Interpreter`
      Initializes the interpreter. It is called once when the new instance of interpreter is constructed.
      Specified by:
        `init` in interface `Interpreter`
      Overrides:
        `init` in class `GenericInterpreter`
        `zslang` - the language this interpreter is associated with

    - #### destroy

          public void destroy()

      Description copied from class: `GenericInterpreter`
      Reset the owner (`GenericInterpreter.getOwner()`) to null.
      Specified by:
        `destroy` in interface `Interpreter`
      Overrides:
        `destroy` in class `GenericInterpreter`

    - #### getFunction

          public Function getFunction​(java.lang.String name,
                                      java.lang.Class[] argTypes)

      Returns the method.

      Note: JavaScript identifies a function with the name only.

      Specified by:
        `getFunction` in interface `Interpreter`
      Overrides:
        `getFunction` in class `GenericInterpreter`
        `argTypes` - the list of argument (a.k.a., parameter) types. If null, Class[0] is assumed.