public abstract class DelegatingScript extends Script
Script that performs method invocations and property access like Closure does.
 
 DelegatingScript is a convenient basis for loading a custom-defined DSL as a Script, then execute it.
 The following sample code illustrates how to do it:
 
 class MyDSL {
     public void foo(int x, int y, Closure z) { ... }
     public void setBar(String a) { ... }
 }
 CompilerConfiguration cc = new CompilerConfiguration();
 cc.setScriptBaseClass(DelegatingScript.class.getName());
 GroovyShell sh = new GroovyShell(cl,new Binding(),cc);
 DelegatingScript script = (DelegatingScript)sh.parse(new File("my.dsl"))
 script.setDelegate(new MyDSL());
 script.run();
 
 my.dsl can look like this:
 foo(1,2) {
     ....
 }
 bar = ...;
 
 
 DelegatingScript does this by delegating property access and method invocation to the delegate object.
 
More formally speaking, given the following script:
a = 1; b(2);
 Using DelegatingScript as the base class, the code will run as:
 
delegate.a = 1; delegate.b(2);... whereas in plain
Script, this will be run as:
 
 binding.setProperty("a",1);
 ((Closure)binding.getProperty("b")).call(2);
 | Modifier | Constructor and Description | 
|---|---|
| protected  | DelegatingScript() | 
| protected  | DelegatingScript(Binding binding) | 
| Modifier and Type | Method and Description | 
|---|---|
| java.lang.Object | getDelegate() | 
| java.lang.Object | getProperty(java.lang.String property)Retrieves a property value. | 
| java.lang.Object | invokeMethod(java.lang.String name,
            java.lang.Object args)Invoke a method (or closure in the binding) defined. | 
| void | setDelegate(java.lang.Object delegate)Sets the delegation target. | 
| void | setProperty(java.lang.String property,
           java.lang.Object newValue)Sets the given property to the new value. | 
evaluate, evaluate, getBinding, print, printf, printf, println, println, run, run, setBindinggetMetaClass, setMetaClassprotected DelegatingScript()
protected DelegatingScript(Binding binding)
public void setDelegate(java.lang.Object delegate)
public java.lang.Object invokeMethod(java.lang.String name,
                                     java.lang.Object args)
ScriptinvokeMethod in interface GroovyObjectinvokeMethod in class Scriptname - method to callargs - arguments to pass to the methodpublic java.lang.Object getProperty(java.lang.String property)
GroovyObjectgetProperty in interface GroovyObjectgetProperty in class Scriptproperty - the name of the property of interestpublic void setProperty(java.lang.String property,
                        java.lang.Object newValue)
GroovyObjectsetProperty in interface GroovyObjectsetProperty in class Scriptproperty - the name of the property of interestnewValue - the new value for the propertypublic java.lang.Object getDelegate()