import java.util.List; class BuilderSingularNoAuto { private List things; private List widgets; private List items; @java.lang.SuppressWarnings("all") BuilderSingularNoAuto(final List things, final List widgets, final List items) { this.things = things; this.widgets = widgets; this.items = items; } @java.lang.SuppressWarnings("all") public static class BuilderSingularNoAutoBuilder { @java.lang.SuppressWarnings("all") private java.util.ArrayList things; @java.lang.SuppressWarnings("all") private java.util.ArrayList widgets; @java.lang.SuppressWarnings("all") private java.util.ArrayList items; @java.lang.SuppressWarnings("all") BuilderSingularNoAutoBuilder() { } @java.lang.SuppressWarnings("all") public BuilderSingularNoAuto.BuilderSingularNoAutoBuilder things(final String things) { if (this.things == null) this.things = new java.util.ArrayList(); this.things.add(things); return this; } @java.lang.SuppressWarnings("all") public BuilderSingularNoAuto.BuilderSingularNoAutoBuilder things(final java.util.Collection things) { if (things == null) throw new java.lang.NullPointerException("things cannot be null"); if (this.things == null) this.things = new java.util.ArrayList(); this.things.addAll(things); return this; } @java.lang.SuppressWarnings("all") public BuilderSingularNoAuto.BuilderSingularNoAutoBuilder clearThings() { if (this.things != null) this.things.clear(); return this; } @java.lang.SuppressWarnings("all") public BuilderSingularNoAuto.BuilderSingularNoAutoBuilder widget(final String widget) { if (this.widgets == null) this.widgets = new java.util.ArrayList(); this.widgets.add(widget); return this; } @java.lang.SuppressWarnings("all") public BuilderSingularNoAuto.BuilderSingularNoAutoBuilder widgets(final java.util.Collection widgets) { if (widgets == null) throw new java.lang.NullPointerException("widgets cannot be null"); if (this.widgets == null) this.widgets = new java.util.ArrayList(); this.widgets.addAll(widgets); return this; } @java.lang.SuppressWarnings("all") public BuilderSingularNoAuto.BuilderSingularNoAutoBuilder clearWidgets() { if (this.widgets != null) this.widgets.clear(); return this; } @java.lang.SuppressWarnings("all") public BuilderSingularNoAuto.BuilderSingularNoAutoBuilder items(final String items) { if (this.items == null) this.items = new java.util.ArrayList(); this.items.add(items); return this; } @java.lang.SuppressWarnings("all") public BuilderSingularNoAuto.BuilderSingularNoAutoBuilder items(final java.util.Collection items) { if (items == null) throw new java.lang.NullPointerException("items cannot be null"); if (this.items == null) this.items = new java.util.ArrayList(); this.items.addAll(items); return this; } @java.lang.SuppressWarnings("all") public BuilderSingularNoAuto.BuilderSingularNoAutoBuilder clearItems() { if (this.items != null) this.items.clear(); return this; } @java.lang.SuppressWarnings("all") public BuilderSingularNoAuto build() { java.util.List things; switch (this.things == null ? 0 : this.things.size()) { case 0: things = java.util.Collections.emptyList(); break; case 1: things = java.util.Collections.singletonList(this.things.get(0)); break; default: things = java.util.Collections.unmodifiableList(new java.util.ArrayList(this.things)); } java.util.List widgets; switch (this.widgets == null ? 0 : this.widgets.size()) { case 0: widgets = java.util.Collections.emptyList(); break; case 1: widgets = java.util.Collections.singletonList(this.widgets.get(0)); break; default: widgets = java.util.Collections.unmodifiableList(new java.util.ArrayList(this.widgets)); } java.util.List 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(this.items)); } return new BuilderSingularNoAuto(things, widgets, items); } @java.lang.Override @java.lang.SuppressWarnings("all") public java.lang.String toString() { return "BuilderSingularNoAuto.BuilderSingularNoAutoBuilder(things=" + this.things + ", widgets=" + this.widgets + ", items=" + this.items + ")"; } } @java.lang.SuppressWarnings("all") public static BuilderSingularNoAuto.BuilderSingularNoAutoBuilder builder() { return new BuilderSingularNoAuto.BuilderSingularNoAutoBuilder(); } }