Package groovy.util
Class DelegatingScript
java.lang.Object
groovy.lang.GroovyObjectSupport
groovy.lang.Script
groovy.util.DelegatingScript
- All Implemented Interfaces:
- GroovyObject
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);
 - 
Constructor SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptiongetProperty(String property) Retrieves a property value.invokeMethod(String name, Object args) Invoke a method (or closure in the binding) defined.voidsetDelegate(Object delegate) Sets the delegation target.voidsetProperty(String property, Object newValue) Sets the given property to the new value.Methods inherited from class groovy.lang.Scriptevaluate, evaluate, getBinding, print, printf, printf, println, println, run, run, setBindingMethods inherited from class groovy.lang.GroovyObjectSupportgetMetaClass, setMetaClass
- 
Constructor Details- 
DelegatingScriptprotected DelegatingScript()
- 
DelegatingScript
 
- 
- 
Method Details- 
setDelegateSets the delegation target.
- 
invokeMethodDescription copied from class:ScriptInvoke a method (or closure in the binding) defined.- Specified by:
- invokeMethodin interface- GroovyObject
- Overrides:
- invokeMethodin class- Script
- Parameters:
- name- method to call
- args- arguments to pass to the method
- Returns:
- value
 
- 
getPropertyDescription copied from interface:GroovyObjectRetrieves a property value.- Specified by:
- getPropertyin interface- GroovyObject
- Overrides:
- getPropertyin class- Script
- Parameters:
- property- the name of the property of interest
- Returns:
- the given property
 
- 
setPropertyDescription copied from interface:GroovyObjectSets the given property to the new value.- Specified by:
- setPropertyin interface- GroovyObject
- Overrides:
- setPropertyin class- Script
- Parameters:
- property- the name of the property of interest
- newValue- the new value for the property
 
- 
getDelegate
 
-