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

Eric Milles commented on GROOVY-10801:
--------------------------------------

I did consider some alternate names before settling on `Namesapce`.  I think 
`StaticScope` (akin to `PackageScope`) is one of the better ones.  I've also 
been considering an implicit case where a file Foo.groovy only has methods and 
field-like declarations it would be mapped to a script but instead "utility" 
class, with all static members and private no-arg constructor.  This may jive 
or may conflict with your recent changes for alternative main method detection.


> AST transform for simple utility classes (only static fields and methods)
> -------------------------------------------------------------------------
>
>                 Key: GROOVY-10801
>                 URL: https://issues.apache.org/jira/browse/GROOVY-10801
>             Project: Groovy
>          Issue Type: New Feature
>          Components: ast builder
>            Reporter: Eric Milles
>            Assignee: Eric Milles
>            Priority: Minor
>
> Similar to the {{@Category}} transform, I'd like to have a local transform 
> for utility classes.  Consider the following:
> {code:groovy}
> @Namespace
> class C {
>   int constant = 1
>   def method() {
>     // ...
>   }
> }
> {code}
> This would be Groovy shorthand for the canonical "utility class":
> {code:groovy}
> final class C {
>   private C() { throw new AssertionError() }
>   public static final int constant = 1
>   static method {
>     // ...
>   }
> }
> {code}
> *Update:* Like {{trait}} or {{record}}, we might consider taking this to the 
> next step:
> {code:groovy}
> namespace C {
>   int constant = 1
>   def method() {
>     // ...
>   }
> }
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to