Script that performs method invocations and property access like groovy.lang.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);
| Access | Constructor and Description |
|---|---|
| protected | |
| protected |
| Modifier and Type | Method and Description |
|---|---|
| public Object | |
| public Object | getProperty(String
the name of the property of interest property)Overrides groovy. Overrides default groovy. |
| public Object | invokeMethod(String
method to call name, Object arguments to pass to the method args)Overrides groovy. Overrides default groovy. |
| public void | |
| public void | setProperty(String
the name of the property of interest property, Object the new value for the property newValue)Overrides groovy. Overrides default groovy. |
| delegate | back to summary |
|---|---|
| private Object delegate | |
| metaClass | back to summary |
|---|---|
| private MetaClass metaClass | |
| DelegatingScript | back to summary |
|---|---|
| protected DelegatingScript() | |
| DelegatingScript | back to summary |
|---|---|
| protected DelegatingScript(Binding binding) | |
| getDelegate | back to summary |
|---|---|
| public Object getDelegate() | |
| getProperty | back to summary |
|---|---|
| public Object getProperty(String property) Overrides groovy. Overrides default groovy. Doc from groovy. Retrieves a property value. | |
| invokeMethod | back to summary |
|---|---|
| public Object invokeMethod(String name, Object args) Overrides groovy. Overrides default groovy. Doc from groovy. Invoke a method (or closure in the binding) defined. | |
| setDelegate | back to summary |
|---|---|
| public void setDelegate(Object delegate) Sets the delegation target. | |
| setProperty | back to summary |
|---|---|
| public void setProperty(String property, Object newValue) Overrides groovy. Overrides default groovy. Doc from groovy. Sets the given property to the new value. | |