diff options
author | Reinier Zwitserloot <reinier@zwitserloot.com> | 2018-10-29 21:04:59 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-10-29 21:04:59 +0100 |
commit | fb039c2837430caafbfc165bc4d5cc898e6a9c34 (patch) | |
tree | aa67e829fbd5baf1a15ca621f76bb2f808498469 /website | |
parent | d8b882cf7e7078a7946e04eceba4ce18937a28f0 (diff) | |
parent | 97d8094f42b16e9076ad08a35b3164f3e3ad5c87 (diff) | |
download | lombok-fb039c2837430caafbfc165bc4d5cc898e6a9c34.tar.gz lombok-fb039c2837430caafbfc165bc4d5cc898e6a9c34.tar.bz2 lombok-fb039c2837430caafbfc165bc4d5cc898e6a9c34.zip |
Merge pull request #1871 from janrieke/customizableSuperBuilder
Customizable SuperBuilder
Diffstat (limited to 'website')
-rw-r--r-- | website/templates/features/experimental/SuperBuilder.html | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/website/templates/features/experimental/SuperBuilder.html b/website/templates/features/experimental/SuperBuilder.html index c0d24606..26f0a949 100644 --- a/website/templates/features/experimental/SuperBuilder.html +++ b/website/templates/features/experimental/SuperBuilder.html @@ -4,6 +4,8 @@ <@f.history> <p> <code>@SuperBuilder</code> was introduced as experimental feature in lombok v1.18.2. + </p><p> + <code>@SuperBuilder</code>'s <code>toBuilder</code> feature and limited support for customization was added with lombok v1.18.4. </p> </@f.history> @@ -11,7 +13,7 @@ <p> The <code>@SuperBuilder</code> annotation produces complex builder APIs for your classes. In contrast to <a href="/features/Builder"><code>@Builder</code></a>, <code>@SuperBuilder</code> also works with fields from superclasses. - However, it only works for types, and cannot be customized by providing a partial builder implementation. + However, it only works for types, and customization possibilities are limited. Most importantly, it requires that <em>all superclasses</em> also have the <code>@SuperBuilder</code> annotation. </p><p> <code>@SuperBuilder</code> lets you automatically produce the code required to have your class be instantiable with code such as:<br /> @@ -27,6 +29,9 @@ </p><p> To ensure type-safety, <code>@SuperBuilder</code> generates two inner builder classes for each annotated class, one abstract and one concrete class named <code><em>Foobar</em>Builder</code> and <code><em>Foobar</em>BuilderImpl</code> (where <em>Foobar</em> is the name of the annotated class). </p><p> + Customizing the code generated by <code>@SuperBuilder</code> is limited to adding new methods or annotations to the builder classes, and providing custom implementations of <code>builder()</code> and <code>build()</code>. + You have to make sure that the builder class declaration headers match those that would have been generated by lombok. Due to the heavy generics usage, we strongly advice to copy the builder class definition header from the uncustomized delomboked code. + </p><p> The configurable aspects of builder are: <ul> <li> |