groovy-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Graeme Rocher (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (GROOVY-7957) Allow static compilation of builders that implement methodMissing / propertyMissing
Date Thu, 06 Oct 2016 15:59:21 GMT

    [ https://issues.apache.org/jira/browse/GROOVY-7957?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15552327#comment-15552327
] 

Graeme Rocher commented on GROOVY-7957:
---------------------------------------

A transform could be added that adds the original methodMissing signature and delegates to
the appropriate specific methodMissing implementation so that dynamic Groovy works as well.

Also if you specify the standard methodMissing then that would be used as a fallback so it
would be allowed as well.

> 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
>
> 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
(v6.3.4#6332)

Mime
View raw message