diff options
author | Jan Rieke <rieke@subshell.com> | 2021-03-12 11:51:18 +0100 |
---|---|---|
committer | Jan Rieke <rieke@subshell.com> | 2021-03-12 11:51:18 +0100 |
commit | 14f861b5f1c49d9ccc2eb0cda088753e6b63d349 (patch) | |
tree | b5a3cd1dc17cbf7ad85c4c4c5da40889da8f873a /test/transform/resource/after-ecj/SuperBuilderSingularCustomized.java | |
parent | f8c16ed8ac69d0106a845ca96573557700b6f39d (diff) | |
download | lombok-14f861b5f1c49d9ccc2eb0cda088753e6b63d349.tar.gz lombok-14f861b5f1c49d9ccc2eb0cda088753e6b63d349.tar.bz2 lombok-14f861b5f1c49d9ccc2eb0cda088753e6b63d349.zip |
[fixes #2701] fix NPE on customized SuperBuilder with Singular
Diffstat (limited to 'test/transform/resource/after-ecj/SuperBuilderSingularCustomized.java')
-rw-r--r-- | test/transform/resource/after-ecj/SuperBuilderSingularCustomized.java | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/test/transform/resource/after-ecj/SuperBuilderSingularCustomized.java b/test/transform/resource/after-ecj/SuperBuilderSingularCustomized.java new file mode 100644 index 00000000..613edb03 --- /dev/null +++ b/test/transform/resource/after-ecj/SuperBuilderSingularCustomized.java @@ -0,0 +1,70 @@ +import java.util.Set; +@lombok.experimental.SuperBuilder class SuperBuilderSingularCustomized { + public static abstract class SuperBuilderSingularCustomizedBuilder<C extends SuperBuilderSingularCustomized, B extends SuperBuilderSingularCustomized.SuperBuilderSingularCustomizedBuilder<C, B>> { + private @java.lang.SuppressWarnings("all") java.util.ArrayList<String> foos; + public SuperBuilderSingularCustomizedBuilder() { + super(); + } + public B custom(final String value) { + return self(); + } + protected abstract @java.lang.SuppressWarnings("all") B self(); + public abstract @java.lang.SuppressWarnings("all") C build(); + public @java.lang.SuppressWarnings("all") B foo(final String foo) { + if ((this.foos == null)) + this.foos = new java.util.ArrayList<String>(); + this.foos.add(foo); + return self(); + } + public @java.lang.SuppressWarnings("all") B foos(final java.util.Collection<? extends String> foos) { + if ((foos == null)) + { + throw new java.lang.NullPointerException("foos cannot be null"); + } + if ((this.foos == null)) + this.foos = new java.util.ArrayList<String>(); + this.foos.addAll(foos); + return self(); + } + public @java.lang.SuppressWarnings("all") B clearFoos() { + if ((this.foos != null)) + this.foos.clear(); + return self(); + } + public @java.lang.Override @java.lang.SuppressWarnings("all") java.lang.String toString() { + return (("SuperBuilderSingularCustomized.SuperBuilderSingularCustomizedBuilder(foos=" + this.foos) + ")"); + } + } + private static final @java.lang.SuppressWarnings("all") class SuperBuilderSingularCustomizedBuilderImpl extends SuperBuilderSingularCustomized.SuperBuilderSingularCustomizedBuilder<SuperBuilderSingularCustomized, SuperBuilderSingularCustomized.SuperBuilderSingularCustomizedBuilderImpl> { + private SuperBuilderSingularCustomizedBuilderImpl() { + super(); + } + protected @java.lang.Override @java.lang.SuppressWarnings("all") SuperBuilderSingularCustomized.SuperBuilderSingularCustomizedBuilderImpl self() { + return this; + } + public @java.lang.Override @java.lang.SuppressWarnings("all") SuperBuilderSingularCustomized build() { + return new SuperBuilderSingularCustomized(this); + } + } + private @lombok.Singular Set<String> foos; + protected @java.lang.SuppressWarnings("all") SuperBuilderSingularCustomized(final SuperBuilderSingularCustomized.SuperBuilderSingularCustomizedBuilder<?, ?> b) { + super(); + java.util.Set<String> foos; + switch (((b.foos == null) ? 0 : b.foos.size())) { + case 0 : + foos = java.util.Collections.emptySet(); + break; + case 1 : + foos = java.util.Collections.singleton(b.foos.get(0)); + break; + default : + foos = new java.util.LinkedHashSet<String>(((b.foos.size() < 0x40000000) ? ((1 + b.foos.size()) + ((b.foos.size() - 3) / 3)) : java.lang.Integer.MAX_VALUE)); + foos.addAll(b.foos); + foos = java.util.Collections.unmodifiableSet(foos); + } + this.foos = foos; + } + public static @java.lang.SuppressWarnings("all") SuperBuilderSingularCustomized.SuperBuilderSingularCustomizedBuilder<?, ?> builder() { + return new SuperBuilderSingularCustomized.SuperBuilderSingularCustomizedBuilderImpl(); + } +}
\ No newline at end of file |