[ https://issues.apache.org/jira/browse/GROOVY-7640?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Pascal Schumacher updated GROOVY-7640: -------------------------------------- Assignee: Pascal Schumacher Priority: Major (was: Minor) Component/s: (was: ast builder) Summary: @Builder should include superclass properties (was: AST Builder should include superclass properties) > @Builder should include superclass properties > --------------------------------------------- > > Key: GROOVY-7640 > URL: https://issues.apache.org/jira/browse/GROOVY-7640 > Project: Groovy > Issue Type: Bug > Affects Versions: 2.4.5 > Reporter: Marc Bogaerts > Assignee: Pascal Schumacher > > If one annotates a groovy class with @Builder and that class extends from > another class, then the generated builder does not support setting the parent > class properties. > This is especially problematic when mixin groovy builders in java code. > e.g. the following class shows what will and will not compile > {code:java} > // Animal.groovy > import groovy.transform.builder.Builder > import groovy.transform.builder.SimpleStrategy > @Builder(builderStrategy = SimpleStrategy) > class Animal { > String color > int legs > } > // Pet.groovy > import groovy.transform.builder.Builder > import groovy.transform.builder.SimpleStrategy > @Builder(builderStrategy = SimpleStrategy) > class Pet extends Animal { > String name > } > // PetTest.java > import org.junit.Test; > import static org.junit.Assert.*; > public class PetTest { > @Test public void createPet() { > // Pet pet = new Pet().setColor("white").setLegs(4).setName("Bobby"); > does not compile > Pet pet = (Pet) new > Pet().setName("Bobby").setColor("white").setLegs(4); > assertTrue(pet.getLegs() == 4); > } > } > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)