import java.util.List; import java.util.Collection; import lombok.Singular; @lombok.Builder class BuilderSingularLists { public static @java.lang.SuppressWarnings("all") class BuilderSingularListsBuilder { private @java.lang.SuppressWarnings("all") java.util.ArrayList children; private @java.lang.SuppressWarnings("all") java.util.ArrayList scarves; private @java.lang.SuppressWarnings("all") java.util.ArrayList rawList; @java.lang.SuppressWarnings("all") BuilderSingularListsBuilder() { super(); } public @java.lang.SuppressWarnings("all") BuilderSingularListsBuilder child(final T child) { if ((this.children == null)) this.children = new java.util.ArrayList(); this.children.add(child); return this; } public @java.lang.SuppressWarnings("all") BuilderSingularListsBuilder children(final java.util.Collection children) { if ((this.children == null)) this.children = new java.util.ArrayList(); this.children.addAll(children); return this; } public @java.lang.SuppressWarnings("all") BuilderSingularListsBuilder clearChildren() { if ((this.children != null)) this.children.clear(); return this; } public @java.lang.SuppressWarnings("all") BuilderSingularListsBuilder scarf(final Number scarf) { if ((this.scarves == null)) this.scarves = new java.util.ArrayList(); this.scarves.add(scarf); return this; } public @java.lang.SuppressWarnings("all") BuilderSingularListsBuilder scarves(final java.util.Collection scarves) { if ((this.scarves == null)) this.scarves = new java.util.ArrayList(); this.scarves.addAll(scarves); return this; } public @java.lang.SuppressWarnings("all") BuilderSingularListsBuilder clearScarves() { if ((this.scarves != null)) this.scarves.clear(); return this; } public @java.lang.SuppressWarnings("all") BuilderSingularListsBuilder rawList(final java.lang.Object rawList) { if ((this.rawList == null)) this.rawList = new java.util.ArrayList(); this.rawList.add(rawList); return this; } public @java.lang.SuppressWarnings("all") BuilderSingularListsBuilder rawList(final java.util.Collection rawList) { if ((this.rawList == null)) this.rawList = new java.util.ArrayList(); this.rawList.addAll(rawList); return this; } public @java.lang.SuppressWarnings("all") BuilderSingularListsBuilder clearRawList() { if ((this.rawList != null)) this.rawList.clear(); return this; } public @java.lang.SuppressWarnings("all") BuilderSingularLists build() { java.util.List children; switch (((this.children == null) ? 0 : this.children.size())) { case 0 : children = java.util.Collections.emptyList(); break; case 1 : children = java.util.Collections.singletonList(this.children.get(0)); break; default : children = java.util.Collections.unmodifiableList(new java.util.ArrayList(this.children)); } java.util.Collection scarves; switch (((this.scarves == null) ? 0 : this.scarves.size())) { case 0 : scarves = java.util.Collections.emptyList(); break; case 1 : scarves = java.util.Collections.singletonList(this.scarves.get(0)); break; default : scarves = java.util.Collections.unmodifiableList(new java.util.ArrayList(this.scarves)); } java.util.List rawList; switch (((this.rawList == null) ? 0 : this.rawList.size())) { case 0 : rawList = java.util.Collections.emptyList(); break; case 1 : rawList = java.util.Collections.singletonList(this.rawList.get(0)); break; default : rawList = java.util.Collections.unmodifiableList(new java.util.ArrayList(this.rawList)); } return new BuilderSingularLists(children, scarves, rawList); } public @java.lang.Override @java.lang.SuppressWarnings("all") java.lang.String toString() { return (((((("BuilderSingularLists.BuilderSingularListsBuilder(children=" + this.children) + ", scarves=") + this.scarves) + ", rawList=") + this.rawList) + ")"); } } private @Singular List children; private @Singular Collection scarves; private @SuppressWarnings("all") @Singular("rawList") List rawList; @java.lang.SuppressWarnings("all") BuilderSingularLists(final List children, final Collection scarves, final List rawList) { super(); this.children = children; this.scarves = scarves; this.rawList = rawList; } public static @java.lang.SuppressWarnings("all") BuilderSingularListsBuilder builder() { return new BuilderSingularListsBuilder(); } }