Hi Paul,
thank you! I can't see |allProperties| annotation attribute in any of those annotations, at least in Groovy 2.4.x.
Let me know if I should open a JIRA ticket about this.

But... by the way... why the need of such an attribute? What's the difference between properties included whatever value |allProperties| has and those that require |allProperties=true|? If the base class is written in Java, I see the behaviour I described, so I guess all Java bean properties require |allProperties=true| in order to make |includeSuperProperties| work as expected?

Thanks,
Mauro

Il 11/01/2018 23:52, Paul King ha scritto:
I haven't checked the code yet but I think @Builder and @ToString originally had similar issues and we added an `allProperties` attribute with default true. Perhaps that is needed here too. I'll try to check the code shortly.

On Thu, Jan 11, 2018 at 11:57 PM, Mauro Molinari <mauro...@tiscali.it <mailto:mauro...@tiscali.it>> wrote:

    Hello all,
    I'm getting crazy because I can't understand what I'm doing wrong.

    Consider this (it can be pasted on the Groovy console):

    |import groovy.transform.TupleConstructor||
    ||
    ||public class Foobar {||
    ||  private Long id;||
    ||||
    ||  public Long getId() { return this.id <http://this.id>; }||
    ||  public void setId(Long id) { this.id <http://this.id> = id; }||
    ||}||
    ||
    ||@TupleConstructor(includeSuperProperties=true)||
    ||class Ext extends Foobar {||
    ||  String foo||
    ||}||
    ||
    ||Ext.constructors.each {||
    ||    println it||
    ||}||
    ||println 'end'|

    The result is just:

    public Ext(java.lang.String)
    public Ext()
    end

    But isn't |id| a property (as per the Java beans conventions)???

    If I replace |includeSuperProperties=true| with
    |includeSuperFields=true|, I get the expected result:

    public Ext()
    public Ext(java.lang.Long)
    public Ext(java.lang.Long,java.lang.String)
    end

    But in more complex cases, |includeSuperFields=true| will include
    unwanted fields that are not actually properties.

    What am I doing wrong?

    Thanks in advance,
    Mauro



Reply via email to