import java.util.List; import lombok.Singular; @lombok.Builder class BuilderSingularNoAuto { public static @java.lang.SuppressWarnings("all") class BuilderSingularNoAutoBuilder { private @java.lang.SuppressWarnings("all") java.util.ArrayList things; private @java.lang.SuppressWarnings("all") java.util.ArrayList widgets; private @java.lang.SuppressWarnings("all") java.util.ArrayList items; @java.lang.SuppressWarnings("all") BuilderSingularNoAutoBuilder() { super(); } public @java.lang.SuppressWarnings("all") BuilderSingularNoAuto.BuilderSingularNoAutoBuilder things(final String things) { if ((this.things == null)) this.things = new java.util.ArrayList(); this.things.add(things); return this; } public @java.lang.SuppressWarnings("all") 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; } public @java.lang.SuppressWarnings("all") BuilderSingularNoAuto.BuilderSingularNoAutoBuilder clearThings() { if ((this.things != null)) this.things.clear(); return this; } public @java.lang.SuppressWarnings("all") BuilderSingularNoAuto.BuilderSingularNoAutoBuilder widget(final String widget) { if ((this.widgets == null)) this.widgets = new java.util.ArrayList(); this.widgets.add(widget); return this; } public @java.lang.SuppressWarnings("all") 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; } public @java.lang.SuppressWarnings("all") BuilderSingularNoAuto.BuilderSingularNoAutoBuilder clearWidgets() { if ((this.widgets != null)) this.widgets.clear(); return this; } public @java.lang.SuppressWarnings("all") BuilderSingularNoAuto.BuilderSingularNoAutoBuilder items(final String items) { if ((this.items == null)) this.items = new java.util.ArrayList(); this.items.add(items); return this; } public @java.lang.SuppressWarnings("all") 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; } public @java.lang.SuppressWarnings("all") BuilderSingularNoAuto.BuilderSingularNoAutoBuilder clearItems() { if ((this.items != null)) this.items.clear(); return this; } public @java.lang.SuppressWarnings("all") 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); } public @java.lang.Override @java.lang.SuppressWarnings("all") java.lang.String toString() { return (((((("BuilderSingularNoAuto.BuilderSingularNoAutoBuilder(things=" + this.things) + ", widgets=") + this.widgets) + ", items=") + this.items) + ")"); } } private @Singular List things; private @Singular("widget") List widgets; private @Singular List items; @java.lang.SuppressWarnings("all") BuilderSingularNoAuto(final List things, final List widgets, final List items) { super(); this.things = things; this.widgets = widgets; this.items = items; } public static @java.lang.SuppressWarnings("all") BuilderSingularNoAuto.BuilderSingularNoAutoBuilder builder() { return new BuilderSingularNoAuto.BuilderSingularNoAutoBuilder(); } }