[
https://issues.apache.org/jira/browse/GROOVY-7957?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18053956#comment-18053956
]
Eric Milles commented on GROOVY-7957:
-------------------------------------
A type-checking extension that provides a {{methodNotFound}} hook could make
the association between the method call and {{methodMissing}} or
{{propertyMissing}}.
> Allow static compilation of builders that implement methodMissing /
> propertyMissing
> -----------------------------------------------------------------------------------
>
> Key: GROOVY-7957
> URL: https://issues.apache.org/jira/browse/GROOVY-7957
> Project: Groovy
> Issue Type: New Feature
> Components: GEP
> Reporter: Graeme Rocher
> Priority: Major
>
> Similar to Scala's {{Dynamic}}
> http://www.scala-lang.org/api/current/index.html#scala.Dynamic
> We should be able to write builders that are usable from statically compiled
> code. To achieve this I recommend the following:
> {code}
> // if the object implements methodMissing dispatch to it
> foo.bar("blah") ~~> foo.methodMissing("bar", "blah")
> // if the object implements propertyMissing dispatch to it
> foo.var1 ~~> foo.propertyMissing("var1")
> // if the object implements propertyMissing dispatch to it
> foo.var1 = 10 ~~> foo.propertyMissing("var1", 10)
> {code}
> When combined with GROOVY-7956 it would then be possibly to fully implement
> builders that are compatible with {{@CompileStatic}} and certain existing
> builders could be enhanced to take advantage of this feature {{JsonBuilder}},
> {{MarkupBuilder}} etc.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)