Package groovy.transform.builder
Class SimpleStrategy
- java.lang.Object
-
- org.codehaus.groovy.transform.BuilderASTTransformation.AbstractBuilderStrategy
-
- groovy.transform.builder.SimpleStrategy
-
- All Implemented Interfaces:
BuilderASTTransformation.BuilderStrategy
public class SimpleStrategy extends BuilderASTTransformation.AbstractBuilderStrategy
This strategy is used with theBuilder
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.*
The@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 == 21prefix
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 theBuilder
transform documentation. The other annotation attributes for the@Builder
transform for configuring the building process aren't applicable for this strategy.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.codehaus.groovy.transform.BuilderASTTransformation.AbstractBuilderStrategy
BuilderASTTransformation.AbstractBuilderStrategy.PropertyInfo
-
-
Constructor Summary
Constructors Constructor Description SimpleStrategy()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
build(BuilderASTTransformation transform, AnnotatedNode annotatedNode, AnnotationNode anno)
protected List<FieldNode>
getFields(BuilderASTTransformation transform, AnnotationNode anno, ClassNode buildee)
-
Methods inherited from class org.codehaus.groovy.transform.BuilderASTTransformation.AbstractBuilderStrategy
checkKnownField, checkKnownProperty, getIncludeExclude, getPropertyInfoFromBeanInfo, getPropertyInfoFromClassNode, getPropertyInfoFromClassNode, getPropertyInfoFromClassNode, getPropertyInfos, getSetterName, unsupportedAttribute, unsupportedAttribute
-
-
-
-
Method Detail
-
build
public void build(BuilderASTTransformation transform, AnnotatedNode annotatedNode, AnnotationNode anno)
-
getFields
protected List<FieldNode> getFields(BuilderASTTransformation transform, AnnotationNode anno, ClassNode buildee)
- Overrides:
getFields
in classBuilderASTTransformation.AbstractBuilderStrategy
-
-