Package org.zkoss.zk.scripting
Interface Interpreter
-
- All Known Implementing Classes:
BSHInterpreter,GenericInterpreter,GroovyInterpreter,JRubyInterpreter,JythonInterpreter,RhinoInterpreter
public interface InterpreterRepresents an interpreter that can interpret the scripting codes.It is easier to implement by extending from
GenericInterpreter.- Author:
- tomyeh
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description booleancontainsVariable(java.lang.String name)Tests whether the variable is defined in this interpreter.voiddestroy()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.org.zkoss.xel.FunctiongetFunction(java.lang.String name, java.lang.Class[] argTypes)Returns the method of the specified name defined in this interpreter, or null if not defined.java.lang.StringgetLanguage()Returns the scripting language this interpreter is associated with.java.lang.ObjectgetNativeInterpreter()Returns the native interpreter, or null if not available.PagegetOwner()Returns the owner of this interpreter.java.lang.ObjectgetVariable(java.lang.String name)Returns the value of a variable defined in this interpreter.voidinit(Page owner, java.lang.String zslang)Initializes the interpreter.voidinterpret(java.lang.String script, Scope scope)Evaluates the script against the specified scope.voidsetVariable(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.voidunsetVariable(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.
-
getNativeInterpreter
java.lang.Object getNativeInterpreter()
Returns the native interpreter, or null if not available. The native interpreter depends on the implementation of an interpreter.- Since:
- 3.0.2
-
interpret
void interpret(java.lang.String script, Scope scope)Evaluates the script against the specified scope.Implementation Note:
- The implementation has to concatenate
the string returned by
LanguageDefinition.getEachTimeScript(java.lang.String)if not null. - The implementation must use
Scopes.getCurrent(org.zkoss.zk.ui.Page)to retrieve the current namespace if the comp argument is null.
- Parameters:
scope- the scope as the context to interpret the script. If null, the current scope is assumed. The current scope isScopes.getCurrent(org.zkoss.zk.ui.Page), which is the event target's scope, if the thread is processing an event. The event target isEvent.getTarget(). Otherwise, the current scope is the owner page (getOwner().- Since:
- 5.0.0
- The implementation has to concatenate
the string returned by
-
getClass
java.lang.Class<?> getClass(java.lang.String clsnm)
Returns the class defined in this interpreter, or null if not found.
-
getFunction
org.zkoss.xel.Function getFunction(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 (a.k.a., parameter) types. If null, Class[0] is assumed.- Since:
- 3.0.0
-
containsVariable
boolean containsVariable(java.lang.String name)
Tests whether the variable is defined in this interpreter. Note: it doesn't search the attributes (Scope).- 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 scope (Scope).
-
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 priority 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.
-
-