FreeBuilder
FreeBuilder copied to clipboard
Automatic generation of the Builder pattern for Java
Currently, merging from a partial will raise an UnsupportedOperationException if any required field is unset. This was to avoid a performance penalty in non-test code. However, I think we can...
Currently FreeBuilder's supports on collection cannot support de-pluralizing the property names. e.g. ` List descendants();` would generate `addDescendants(String element)` in the builder class, but what really expected is `addDescendant(String element)`....
I'd be cool if any annotations defined in the interface getter methods, and maybe even the interface itself, were propagated to the `Value` class. Something like https://github.com/google/FreeBuilder/pull/81 but for any...
I thought of using the Builder pattern to create a rather complex Object containing a chain of certificates and keys. Our intention is to take from clients of the class...
Default values set on a nested buildable type in the constructor should be ignored when merging, but unfortunately they are currently treated as explicitly-set values, as the merge method in...
When a nested buildable type fails to build, exception is passed as is, giving no hint in exception message of failed property. For example ``` @FreeBuilder public abstract class TopLevel...
Allocating objects in hot loops can cause unwanted GC and memory pressure if the JVM cannot optimize them away with escape analysis. We use an EnumSet (to store which properties...
Rather than requiring users type abstract methods for useful value utilities like `.toBuilder()` or `.streamX()`, generate an interface they can implement, with defaults so any other subclass is not negatively...
Especially `@MatchesPattern` and `@Nonnegative`. Note: `Optional` can be stored internally as an int instead of an Integer, as -1 can represent Optional.absent. This kind of savings may be too rare...
Good candidates: - [x] lists - [ ] maps - [ ] optional properties