Top Description Constructors Methods
groovy.transform.builder

public Class SimpleStrategy

extends AbstractBuilderStrategy
Class Inheritance
Imports
groovy.transform.Undefined, org.codehaus.groovy.ast.AnnotatedNode, .AnnotationNode, .ClassNode, .FieldNode, .Parameter, org.codehaus.groovy.transform.AbstractASTTransformation, .BuilderASTTransformation, org.objectweb.asm.Opcodes, java.util.ArrayList, .List

This strategy is used with the Builder AST transform to modify your Groovy objects so that the setter methods for properties return the original object, thus allowing chained usage of the setters. You use it as follows:
import groovy.transform.builder.*

@Builder(builderStrategy=SimpleStrategy)
class Person {
    String firstName
    String lastName
    int age
}
def person = new Person().setFirstName("Robert").setLastName("Lewandowski").setAge(21)
assert person.firstName == "Robert"
assert person.lastName == "Lewandowski"
assert person.age == 21
The prefix annotation attribute can be used to create setters with a different naming convention, e.g. with the prefix set to the empty String, you would use your setters as follows:
def p1 = new Person().firstName("Robert").lastName("Lewandowski").age(21)
or using a prefix of 'with':
def p2 = new Person().withFirstName("Robert").withLastName("Lewandowski").withAge(21)
When using the default prefix of "set", Groovy's normal setters will be replaced by the chained versions. When using a custom prefix, Groovy's unchained setters will still be available for use in the normal unchained fashion. The 'useSetters' annotation attribute can be used for writable properties as per the Builder transform documentation. The other annotation attributes for the @Builder transform for configuring the building process aren't applicable for this strategy.

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
public void
protected List<FieldNode>
Inherited from org.codehaus.groovy.transform.BuilderASTTransformation.AbstractBuilderStrategy:
checkKnownFieldcheckKnownPropertygetIncludeExcludegetPropertyInfoFromBeanInfogetPropertyInfoFromClassNodegetPropertyInfoFromClassNodegetPropertyInfoFromClassNodegetPropertyInfosgetSetterNameunsupportedAttributeunsupportedAttribute

Constructor Detail

SimpleStrategyback to summary
public SimpleStrategy()

Method Detail

buildback to summary
public void build(BuilderASTTransformation transform, AnnotatedNode annotatedNode, AnnotationNode anno)

Implements org.codehaus.groovy.transform.BuilderASTTransformation.BuilderStrategy.build.

getFieldsback to summary
protected List<FieldNode> getFields(BuilderASTTransformation transform, AnnotationNode anno, ClassNode buildee)

Overrides org.codehaus.groovy.transform.BuilderASTTransformation.AbstractBuilderStrategy.getFields.

Annotations
@Override