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.*
{@code @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 {@code 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 other annotation attributes for the {@code @Builder} transform for configuring the building process aren't applicable for this strategy.