Added tests to check warnings/errors emitted by Builder.Default support.

This commit is contained in:
Reinier Zwitserloot committed 2017-03-22 23:32:28 +01:00
1 parent 11fdfb56f7
commit 3b1792c397
6 files changed
+143 -11

No files matched your search

@@ -2,11 +2,13 @@ public class BuilderDefaultsWarnings {
long x = System.currentTimeMillis();
final int y = 5;
int z;
java.util.List<String> items;
@java.lang.SuppressWarnings("all")
@javax.annotation.Generated("lombok")
BuilderDefaultsWarnings(final long x, final int z) {
BuilderDefaultsWarnings(final long x, final int z, final java.util.List<String> items) {
this.x = x;
this.z = z;
this.items = items;
}
@java.lang.SuppressWarnings("all")
@javax.annotation.Generated("lombok")
@@ -19,6 +21,9 @@ public class BuilderDefaultsWarnings {
private int z;
@java.lang.SuppressWarnings("all")
@javax.annotation.Generated("lombok")
private java.util.ArrayList<String> items;
@java.lang.SuppressWarnings("all")
@javax.annotation.Generated("lombok")
BuilderDefaultsWarningsBuilder() {
}
@java.lang.SuppressWarnings("all")
@@ -35,14 +40,45 @@ public class BuilderDefaultsWarnings {
}
@java.lang.SuppressWarnings("all")
@javax.annotation.Generated("lombok")
public BuilderDefaultsWarningsBuilder item(final String item) {
if (this.items == null) this.items = new java.util.ArrayList<String>();
this.items.add(item);
return this;
}
@java.lang.SuppressWarnings("all")
@javax.annotation.Generated("lombok")
public BuilderDefaultsWarningsBuilder items(final java.util.Collection<? extends String> items) {
if (this.items == null) this.items = new java.util.ArrayList<String>();
this.items.addAll(items);
return this;
}
@java.lang.SuppressWarnings("all")
@javax.annotation.Generated("lombok")
public BuilderDefaultsWarningsBuilder clearItems() {
if (this.items != null) this.items.clear();
return this;
}
@java.lang.SuppressWarnings("all")
@javax.annotation.Generated("lombok")
public BuilderDefaultsWarnings build() {
return new BuilderDefaultsWarnings(x, z);
java.util.List<String> items;
switch (this.items == null ? 0 : this.items.size()) {
case 0:
items = java.util.Collections.emptyList();
break;
case 1:
items = java.util.Collections.singletonList(this.items.get(0));
break;
default:
items = java.util.Collections.unmodifiableList(new java.util.ArrayList<String>(this.items));
}
return new BuilderDefaultsWarnings(x, z, items);
}
@java.lang.Override
@java.lang.SuppressWarnings("all")
@javax.annotation.Generated("lombok")
public java.lang.String toString() {
return "BuilderDefaultsWarnings.BuilderDefaultsWarningsBuilder(x=" + this.x + ", z=" + this.z + ")";
return "BuilderDefaultsWarnings.BuilderDefaultsWarningsBuilder(x=" + this.x + ", z=" + this.z + ", items=" + this.items + ")";
}
}
@java.lang.SuppressWarnings("all")
@@ -51,3 +87,32 @@ public class BuilderDefaultsWarnings {
return new BuilderDefaultsWarningsBuilder();
}
}
class NoBuilderButHasDefaults {
private final long z = 5;
public NoBuilderButHasDefaults() {
}
@java.lang.SuppressWarnings("all")
@javax.annotation.Generated("lombok")
public static class NoBuilderButHasDefaultsBuilder {
@java.lang.SuppressWarnings("all")
@javax.annotation.Generated("lombok")
NoBuilderButHasDefaultsBuilder() {
}
@java.lang.SuppressWarnings("all")
@javax.annotation.Generated("lombok")
public NoBuilderButHasDefaults build() {
return new NoBuilderButHasDefaults();
}
@java.lang.Override
@java.lang.SuppressWarnings("all")
@javax.annotation.Generated("lombok")
public java.lang.String toString() {
return "NoBuilderButHasDefaults.NoBuilderButHasDefaultsBuilder()";
}
}
@java.lang.SuppressWarnings("all")
@javax.annotation.Generated("lombok")
public static NoBuilderButHasDefaultsBuilder builder() {
return new NoBuilderButHasDefaultsBuilder();
}
}
@@ -1,8 +1,10 @@
import lombok.Builder;
import lombok.Singular;
public @Builder class BuilderDefaultsWarnings {
public static @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") class BuilderDefaultsWarningsBuilder {
private @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") long x;
private @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") int z;
private @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") java.util.ArrayList<String> items;
@java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") BuilderDefaultsWarningsBuilder() {
super();
}
@@ -14,22 +16,72 @@ public @Builder class BuilderDefaultsWarnings {
this.z = z;
return this;
}
public @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") BuilderDefaultsWarningsBuilder item(String item) {
if ((this.items == null))
this.items = new java.util.ArrayList<String>();
this.items.add(item);
return this;
}
public @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") BuilderDefaultsWarningsBuilder items(java.util.Collection<? extends String> items) {
if ((this.items == null))
this.items = new java.util.ArrayList<String>();
this.items.addAll(items);
return this;
}
public @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") BuilderDefaultsWarningsBuilder clearItems() {
if ((this.items != null))
this.items.clear();
return this;
}
public @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") BuilderDefaultsWarnings build() {
return new BuilderDefaultsWarnings(x, z);
java.util.List<String> items;
switch (((this.items == null) ? 0 : this.items.size())) {
case 0 :
items = java.util.Collections.emptyList();
break;
case 1 :
items = java.util.Collections.singletonList(this.items.get(0));
break;
default :
items = java.util.Collections.unmodifiableList(new java.util.ArrayList<String>(this.items));
}
return new BuilderDefaultsWarnings(x, z, items);
}
public @java.lang.Override @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") java.lang.String toString() {
return (((("BuilderDefaultsWarnings.BuilderDefaultsWarningsBuilder(x=" + this.x) + ", z=") + this.z) + ")");
return (((((("BuilderDefaultsWarnings.BuilderDefaultsWarningsBuilder(x=" + this.x) + ", z=") + this.z) + ", items=") + this.items) + ")");
}
}
long x = System.currentTimeMillis();
final int y = 5;
@Builder.Default int z;
@java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") BuilderDefaultsWarnings(final long x, final int z) {
@Builder.Default @Singular java.util.List<String> items;
@java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") BuilderDefaultsWarnings(final long x, final int z, final java.util.List<String> items) {
super();
this.x = x;
this.z = z;
this.items = items;
}
public static @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") BuilderDefaultsWarningsBuilder builder() {
return new BuilderDefaultsWarningsBuilder();
}
}
class NoBuilderButHasDefaults {
public static @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") class NoBuilderButHasDefaultsBuilder {
@java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") NoBuilderButHasDefaultsBuilder() {
super();
}
public @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") NoBuilderButHasDefaults build() {
return new NoBuilderButHasDefaults();
}
public @java.lang.Override @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") java.lang.String toString() {
return "NoBuilderButHasDefaults.NoBuilderButHasDefaultsBuilder()";
}
}
private final @Builder.Default long z = 5;
public @Builder NoBuilderButHasDefaults() {
super();
}
public static @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") NoBuilderButHasDefaultsBuilder builder() {
return new NoBuilderButHasDefaultsBuilder();
}
}
@@ -1,8 +1,18 @@
import lombok.Builder;
import lombok.Singular;
@Builder
public class BuilderDefaultsWarnings {
long x = System.currentTimeMillis();
final int y = 5;
@Builder.Default int z;
@Builder.Default @Singular java.util.List<String> items;
}
class NoBuilderButHasDefaults {
@Builder.Default private final long z = 5;
@Builder
public NoBuilderButHasDefaults() {
}
}
@@ -1,2 +1,4 @@
5 @Builder will ignore the initializing expression entirely. If you want the initializing expression to serve as default, add @Builder.Default. if it is not supposed to be settable during building, add @Builder.Constant.
7 @Builder.Default requires an initializing expression (' = something;').
13 @Builder.Default requires @Builder on the class for it to mean anything.
6 @Builder will ignore the initializing expression entirely. If you want the initializing expression to serve as default, add @Builder.Default. if it is not supposed to be settable during building, add @Builder.Constant.
8 @Builder.Default requires an initializing expression (' = something;').
9 @Builder.Default and @Singular cannot be mixed.
@@ -1,3 +1,5 @@
5 @Builder will ignore the initializing expression entirely. If you want the initializing expression to serve as default, add @Builder.Default. if it is not supposed to be settable during building, add @Builder.Constant.
7 @Builder.Default requires an initializing expression (' = something;').
6 @Builder will ignore the initializing expression entirely. If you want the initializing expression to serve as default, add @Builder.Default. if it is not supposed to be settable during building, add @Builder.Constant.
8 @Builder.Default requires an initializing expression (' = something;').
9 @Builder.Default and @Singular cannot be mixed.
13 @Builder.Default requires @Builder on the class for it to mean anything.
+2 -1
View File
@@ -83,7 +83,8 @@
<div class="overview">
<h3><a id="builderdefault" name="builderdefault">@Builder.Default</a></h3>
<p>
To specify a default value, which will be used if, during the build process this value is never set, initialize the field and add the <code>@Builder.Default</code> annotation:<br />
If a certain field/parameter is never set during a build session, then it always gets 0 / <code>null</code> / false. If you've put <code>@Builder</code> on a class
(and not a method or constructor) you can instead specify the default directly on the field, and annotate the field with <code>@Builder.Default</code>:<br />
<code>@Builder.Default private final long created = System.currentTimeMillis();</code>
</p>
</div>