As of immutables 2.9.2, the builder in the template class can extend the generated builder, which removes a lot of boilerplate code. Adopt this.
Also, change some things in the PureImmutable annotation:
set typeImmutableEnclosing to "*_Immutables"
set overshadowImplementation to true
add an inner annotation Style which exactly reflects the style of PureImmutable, but isn't listed in services, so it doesn't imply that the annotated class is an immutable itself (useful e.g. for Value.Enclosing)
As of immutables 2.9.2, the builder in the template class can extend the generated builder, which removes a lot of boilerplate code. Adopt this.
Also, change some things in the PureImmutable annotation:
typeImmutableEnclosing
to"*_Immutables"
overshadowImplementation
totrue
Style
which exactly reflects the style ofPureImmutable
, but isn't listed in services, so it doesn't imply that the annotated class is an immutable itself (useful e.g. forValue.Enclosing
)passAnnotations = {SuppressWarnings.class}