import com.google.common.collect.ImmutableList; import lombok.Builder; import lombok.Singular; public @Builder(setterPrefix = "with") class BuilderWithDeprecated { public static @java.lang.SuppressWarnings("all") class BuilderWithDeprecatedBuilder { private @java.lang.SuppressWarnings("all") String dep1; private @java.lang.SuppressWarnings("all") int dep2; private @java.lang.SuppressWarnings("all") java.util.ArrayList strings; private @java.lang.SuppressWarnings("all") com.google.common.collect.ImmutableList.Builder numbers; @java.lang.SuppressWarnings("all") BuilderWithDeprecatedBuilder() { super(); } public @java.lang.Deprecated @java.lang.SuppressWarnings("all") BuilderWithDeprecatedBuilder withDep1(final String dep1) { this.dep1 = dep1; return this; } public @java.lang.Deprecated @java.lang.SuppressWarnings("all") BuilderWithDeprecatedBuilder withDep2(final int dep2) { this.dep2 = dep2; return this; } public @java.lang.Deprecated @java.lang.SuppressWarnings("all") BuilderWithDeprecatedBuilder withString(final String string) { if ((this.strings == null)) this.strings = new java.util.ArrayList(); this.strings.add(string); return this; } public @java.lang.Deprecated @java.lang.SuppressWarnings("all") BuilderWithDeprecatedBuilder withStrings(final java.util.Collection strings) { if ((this.strings == null)) this.strings = new java.util.ArrayList(); this.strings.addAll(strings); return this; } public @java.lang.Deprecated @java.lang.SuppressWarnings("all") BuilderWithDeprecatedBuilder clearStrings() { if ((this.strings != null)) this.strings.clear(); return this; } public @java.lang.Deprecated @java.lang.SuppressWarnings("all") BuilderWithDeprecatedBuilder withNumber(final Integer number) { if ((this.numbers == null)) this.numbers = com.google.common.collect.ImmutableList.builder(); this.numbers.add(number); return this; } public @java.lang.Deprecated @java.lang.SuppressWarnings("all") BuilderWithDeprecatedBuilder withNumbers(final java.lang.Iterable numbers) { if ((this.numbers == null)) this.numbers = com.google.common.collect.ImmutableList.builder(); this.numbers.addAll(numbers); return this; } public @java.lang.Deprecated @java.lang.SuppressWarnings("all") BuilderWithDeprecatedBuilder clearNumbers() { this.numbers = null; return this; } public @java.lang.SuppressWarnings("all") BuilderWithDeprecated build() { java.util.List strings; switch (((this.strings == null) ? 0 : this.strings.size())) { case 0 : strings = java.util.Collections.emptyList(); break; case 1 : strings = java.util.Collections.singletonList(this.strings.get(0)); break; default : strings = java.util.Collections.unmodifiableList(new java.util.ArrayList(this.strings)); } com.google.common.collect.ImmutableList numbers = ((this.numbers == null) ? com.google.common.collect.ImmutableList.of() : this.numbers.build()); return new BuilderWithDeprecated(dep1, dep2, strings, numbers); } public @java.lang.Override @java.lang.SuppressWarnings("all") java.lang.String toString() { return (((((((("BuilderWithDeprecated.BuilderWithDeprecatedBuilder(dep1=" + this.dep1) + ", dep2=") + this.dep2) + ", strings=") + this.strings) + ", numbers=") + this.numbers) + ")"); } } String dep1; @Deprecated int dep2; @Singular @Deprecated java.util.List strings; @Singular @Deprecated ImmutableList numbers; @java.lang.SuppressWarnings("all") BuilderWithDeprecated(final String dep1, final int dep2, final java.util.List strings, final ImmutableList numbers) { super(); this.dep1 = dep1; this.dep2 = dep2; this.strings = strings; this.numbers = numbers; } public static @java.lang.SuppressWarnings("all") BuilderWithDeprecatedBuilder builder() { return new BuilderWithDeprecatedBuilder(); } }