Hey folks!
I'm stoked to announce a feature I've been wanting to use for ages: @FreeBuilder now supports Java 8 lambda methods with new map/mutate methods, allowing a more fluent approach to updating properties on a Builder. For example, to increment a property:
Person olderPerson = new Person.Builder()
.mergeFrom(person)
.mapAge(age -> age + 1)
.build();
To delete part of a list:
personBuilder.mutateDescendants(d -> d.subList(3, 5).clear());
To update part of a property with its own builder:
projectBuilder.mutateOwner(b -> b
.setName("Phil")
.setDepartment("HR"));
Happy coding!
Chris