On the last page we looked at calling a DSL from a DSL. On this page we look at inheritance in DSLs:
- Inheriting a DSL from another DSL.
- Inheriting from a native java class or interface in a DSL.
- Inheriting from a DSL in a native java class.
Inheriting a DSL from another DSL.
Here is some simple code for my DSL interface. | // my DSL interface package example4 interface HelloWorld4 { def String getString() } |
Here is the DSL that inherits from it | // my DSL code package example4 import example4.HelloWorld4 class HelloMe implements HelloWorld4 { def String getString(){ "Hello Me" } } |
This works fine.
Note 1. The requirement to use the override keyword is not yet implemented. There is no checking of what is overridden (as in java). Note 2. The way that I implemented the interface in my DSL means that the 'abstract' keyword appears in the generated interface code (but it still seems to work). |
package example4; public interface HelloWorld4 { public abstract String getString(); } |
Inheriting from a native java class or interface in a DSL.
Further Reading
There is more about cross-referencing, on this page.
For more information about naming go on to this page.
This itemis blog has more information about this topic.