groovy-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jason Winnebeck (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (GROOVY-7957) Allow static compilation of builders that implement methodMissing / propertyMissing
Date Tue, 04 Oct 2016 19:30:22 GMT

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

Jason Winnebeck commented on GROOVY-7957:
-----------------------------------------

It would be interesting if Groovy had this, because this is one of the few cases where I don't
use {{@CompileStatic}} is when building XML/JSON/HTML/etc., but it would be nice to support
static compilation (type checking, really) for the other classes -- most of the time the builder
code is binding from known types onto another document so you have dynamic calls on one side
with potentially static getter calls on the other.

> 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