org.zkoss.zk.scripting
Interface Interpreter

All Known Implementing Classes:
BSHInterpreter, GenericInterpreter, GroovyInterpreter, JRubyInterpreter, RhinoInterpreter

public interface Interpreter

Represents an interpter that can interpret the scripting codes.

It is easier to implement by extending from GenericInterpreter.

Author:
tomyeh

Method Summary
 boolean containsVariable(java.lang.String name)
          Tests whether the variable is defined in this interpreter.
 void destroy()
          Called when the interpreter is about to be destroyed.
 java.lang.Class getClass(java.lang.String clsnm)
          Returns the class defined in this interpreter, or null if not found.
 java.lang.String getLanguage()
          Returns the scripting language this interpreter is associated with.
 Method getMethod(java.lang.String name, java.lang.Class[] argTypes)
          Returns the method of the specified name defined in this interpreter, or null if not defined.
 Page getOwner()
          Returns the owner of this interpreter.
 java.lang.Object getVariable(java.lang.String name)
          Returns the value of a variable defined in this interpreter.
 void init(Page owner, java.lang.String zslang)
          Initializes the interpreter.
 void interpret(java.lang.String script, Namespace ns)
          Evaluates the script against the specified namespace.
 void setVariable(java.lang.String name, java.lang.Object value)
          Sets the value of a variable to this interpreter, as if they are defined in the interpreter.
 void unsetVariable(java.lang.String name)
          Removes the value of a variable defined in this interpreter.
 

Method Detail

init

void init(Page owner,
          java.lang.String zslang)
Initializes the interpreter. It is called once when the new instance of interpreter is constructed.

Parameters:
zslang - the language this interpreter is associated with

destroy

void destroy()
Called when the interpreter is about to be destroyed. After called, this interpreter cannot be used again.


getOwner

Page getOwner()
Returns the owner of this interpreter.


getLanguage

java.lang.String getLanguage()
Returns the scripting language this interpreter is associated with.


interpret

void interpret(java.lang.String script,
               Namespace ns)
Evaluates the script against the specified namespace.

Implementation Note:

  1. The implementation has to concatenate the string returned by LanguageDefinition.getEachTimeScript(java.lang.String) if not null.
  2. The implementation must use Namespaces.getCurrent(org.zkoss.zk.ui.Page) to retrieve the current namesace if the ns argument is null.

    Parameters:
    ns - the namspace. If null, the current namespace is assumed. The current namespace is Namespaces.getCurrent(org.zkoss.zk.ui.Page), which is the event target's namespace, if the thread is processing an event. The event target is Event.getTarget(). Otherwise, the current namespace is the owner page's namespace (getOwner().

getClass

java.lang.Class getClass(java.lang.String clsnm)
Returns the class defined in this interpreter, or null if not found.


getMethod

Method getMethod(java.lang.String name,
                 java.lang.Class[] argTypes)
Returns the method of the specified name defined in this interpreter, or null if not defined.

Parameters:
argTypes - the list of argument (aka., parameter) types. If null, Class[0] is assumed.

containsVariable

boolean containsVariable(java.lang.String name)
Tests whether the variable is defined in this interpreter. Note: it doesn't search the namespace (Namespace).

Since:
2.4.0

getVariable

java.lang.Object getVariable(java.lang.String name)
Returns the value of a variable defined in this interpreter. Note: it doesn't search the namespace (Namespace).


setVariable

void setVariable(java.lang.String name,
                 java.lang.Object value)
Sets the value of a variable to this interpreter, as if they are defined in the interpreter.

Note: it is not part of any namespace and it has higher prioerty if its name conflicts with any variable defined in the namespaces.


unsetVariable

void unsetVariable(java.lang.String name)
Removes the value of a variable defined in this interpreter.



Copyright © 2005-2007 Potix Corporation. All Rights Reserved.