Package groovy.util
Class DelegatingScript
- java.lang.Object
- 
- groovy.lang.GroovyObjectSupport
- 
- groovy.lang.Script
- 
- groovy.util.DelegatingScript
 
 
 
- 
- All Implemented Interfaces:
- GroovyObject
 
 public abstract class DelegatingScript extends Script Scriptthat performs method invocations and property access likeClosuredoes.DelegatingScriptis a convenient basis for loading a custom-defined DSL as aScript, 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 = ...;DelegatingScriptdoes this by delegating property access and method invocation to the delegate object.More formally speaking, given the following script: a = 1; b(2); Using DelegatingScriptas the base class, the code will run as:delegate.a = 1; delegate.b(2); ... whereas in plainScript, this will be run as:binding.setProperty("a",1); ((Closure)binding.getProperty("b")).call(2);
- 
- 
Constructor SummaryConstructors Modifier Constructor Description protectedDelegatingScript()protectedDelegatingScript(Binding binding)
 - 
Method SummaryAll Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.ObjectgetDelegate()java.lang.ObjectgetProperty(java.lang.String property)Retrieves a property value.java.lang.ObjectinvokeMethod(java.lang.String name, java.lang.Object args)Invoke a method (or closure in the binding) defined.voidsetDelegate(java.lang.Object delegate)Sets the delegation target.voidsetProperty(java.lang.String property, java.lang.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, setBinding
 - 
Methods inherited from class groovy.lang.GroovyObjectSupportgetMetaClass, setMetaClass
 
- 
 
- 
- 
- 
Constructor Detail- 
DelegatingScriptprotected DelegatingScript() 
 - 
DelegatingScriptprotected DelegatingScript(Binding binding) 
 
- 
 - 
Method Detail- 
setDelegatepublic void setDelegate(java.lang.Object delegate) Sets the delegation target.
 - 
invokeMethodpublic java.lang.Object invokeMethod(java.lang.String name, java.lang.Object args)Description 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
 
 - 
getPropertypublic java.lang.Object getProperty(java.lang.String property) Description 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
 
 - 
setPropertypublic void setProperty(java.lang.String property, java.lang.Object newValue)Description 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
 
 - 
getDelegatepublic java.lang.Object getDelegate() 
 
- 
 
-