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);
| Constructor and description |
|---|
protected DelegatingScript()Creates a delegating script with an empty binding. |
protected DelegatingScript(Binding binding)Creates a delegating script using the supplied binding. |
| Type Params | Return Type | Name and description |
|---|---|---|
|
public Object |
getDelegate()Returns the current delegation target. |
|
public Object |
getProperty(String property)Resolves properties against the delegate before the script binding. |
|
public Object |
invokeMethod(String name, Object args)Delegates method invocation before falling back to normal script dispatch. |
|
public void |
setDelegate(Object delegate)Sets the delegation target. |
|
public void |
setProperty(String property, Object newValue)Sets a property on the delegate before falling back to the script binding. |
| Methods inherited from class | Name |
|---|---|
class Script |
evaluate, evaluate, getBinding, getProperty, invokeMethod, print, printf, printf, println, println, run, run, setBinding, setProperty |
class GroovyObjectSupport |
getMetaClass, setMetaClass |
Creates a delegating script with an empty binding.
Creates a delegating script using the supplied binding.
binding - the binding to use for the scriptReturns the current delegation target.
Resolves properties against the delegate before the script binding.
property - the property nameDelegates method invocation before falling back to normal script dispatch.
name - the method nameargs - the invocation argumentsSets the delegation target.
Copyright © 2003-2026 The Apache Software Foundation. All rights reserved.