You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@groovy.apache.org by "Paul King (JIRA)" <ji...@apache.org> on 2017/05/02 02:04:17 UTC
[jira] [Closed] (GROOVY-7672) TupleConstructor should have only
SOURCE retention policy
[ https://issues.apache.org/jira/browse/GROOVY-7672?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Paul King closed GROOVY-7672.
-----------------------------
> TupleConstructor should have only SOURCE retention policy
> ---------------------------------------------------------
>
> Key: GROOVY-7672
> URL: https://issues.apache.org/jira/browse/GROOVY-7672
> Project: Groovy
> Issue Type: Improvement
> Components: xforms
> Affects Versions: 2.4.5
> Reporter: Paul King
> Assignee: Paul King
> Fix For: 2.5.0-alpha-1
>
>
> We originally gave TupleConstructor RUNTIME retention policy since it might provide a small amount of introspection information for future tools. But so far, as far as I know, it hasn't been used. Given that it makes certain usages impossible, I propose to put back to SOURCE retention policy. This will allow code such as shown below to be possible:
> {code}
> import groovy.transform.*
> import java.awt.Color
> class Named {
> String name
> }
> @ToString(includeSuperProperties=true, ignoreNulls=true, includeNames=true, includeFields=true)
> @TupleConstructor(force=true, defaults=false)
> @TupleConstructor(force=true, defaults=false, includeFields=true)
> @TupleConstructor(force=true, defaults=false, includeSuperProperties=true)
> class Cat extends Named {
> int age
> private Color color
> }
> assert new Cat("Felix", 3).toString() == 'Cat(age:3, name:Felix)'
> assert new Cat(3, Color.BLACK).toString() == 'Cat(age:3, color:java.awt.Color[r=0,g=0,b=0])'
> assert new Cat(3).toString() == 'Cat(age:3)'
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)