groovy-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Nikolai Dück <nikolai.du...@googlemail.com>
Subject FactoryBuilderSupport Help
Date Fri, 14 Apr 2017 14:15:04 GMT
Hello,
I'm really interested using Groovy for DSLs. I've read some articles and
books (DSLs by Martin Fowler, Groovy for DSLs by Fergal Dearle, Design
Guidelines for DSLs and some others).
Currently, I am trying to create a DSL and just want to generate code.
Here's an example of a model written in the DSL:

Entity(Customer) {
    attribute firstName, type: Text
    attribute lastName, type: Text
    ...
    has Address
}

Entity(Address) {
    attribute city, type: Text
    ...
}

I'd like to make it more convenient and omit the attribute keyword.
Using BuilderSupport in groovy it was an easy task, just checking if the
parent is an Entity and interpret every unknown child as an attribute.
A quick look at FactoryBuilderSupport I've found only examples using
keywords, e.g. SwingBuilder.
Is there a way to register factories for children of a specific keyword or
do you know a better approach?
For further workings on my DSL, I've got some other questions:
- is there an easy way to make libraries extending the DSL?
- How can I make use of the grouping feature in FactoryBuilderSupport? What
is it for exactly for?  ->  public void registerFactory(String name, String
*groupName*, Factory factory)
- Do you know guides which can help me get a deeper understanding of the
FactoryBuilderSupport class, since it may have more useful features I could
make use of?
- By using Groovy for DSLs, you write *internal DSLs. *To reach the syntax
you'd like to, sometimes you've got to use groovy in a tricky way. Do you
know collections of some tricks?

For all those, who never heard about (Factory)BuilderSupport, here are some
examples how to use BuilderSupport and FactoryBuilderSupport:
http://javabeat.net/groovy-for-domain-specific-languages/

Thanks in advance
Nikolai

Mime
View raw message