You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@groovy.apache.org by "Eric Milles (Jira)" <ji...@apache.org> on 2026/01/23 15:26:00 UTC

[jira] [Updated] (GROOVY-7957) Allow static compilation of builders that implement methodMissing / propertyMissing

     [ https://issues.apache.org/jira/browse/GROOVY-7957?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Eric Milles updated GROOVY-7957:
--------------------------------
    Language: groovy

> 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)