import java.util.Set; import java.util.SortedSet; class BuilderSingularSets<T> { private Set<T> dangerMice; private SortedSet<? extends Number> octopodes; @SuppressWarnings("all") private Set rawSet; private Set<String> stringSet; @java.lang.SuppressWarnings("all") BuilderSingularSets(final Set<T> dangerMice, final SortedSet<? extends Number> octopodes, final Set rawSet, final Set<String> stringSet) { this.dangerMice = dangerMice; this.octopodes = octopodes; this.rawSet = rawSet; this.stringSet = stringSet; } @java.lang.SuppressWarnings("all") public static class BuilderSingularSetsBuilder<T> { @java.lang.SuppressWarnings("all") private java.util.ArrayList<T> dangerMice; @java.lang.SuppressWarnings("all") private java.util.ArrayList<Number> octopodes; @java.lang.SuppressWarnings("all") private java.util.ArrayList<java.lang.Object> rawSet; @java.lang.SuppressWarnings("all") private java.util.ArrayList<String> stringSet; @java.lang.SuppressWarnings("all") BuilderSingularSetsBuilder() { } @java.lang.SuppressWarnings("all") public BuilderSingularSets.BuilderSingularSetsBuilder<T> dangerMouse(final T dangerMouse) { if (this.dangerMice == null) this.dangerMice = new java.util.ArrayList<T>(); this.dangerMice.add(dangerMouse); return this; } @java.lang.SuppressWarnings("all") public BuilderSingularSets.BuilderSingularSetsBuilder<T> dangerMice(final java.util.Collection<? extends T> dangerMice) { if (dangerMice == null) { throw new java.lang.NullPointerException("dangerMice cannot be null"); } if (this.dangerMice == null) this.dangerMice = new java.util.ArrayList<T>(); this.dangerMice.addAll(dangerMice); return this; } @java.lang.SuppressWarnings("all") public BuilderSingularSets.BuilderSingularSetsBuilder<T> clearDangerMice() { if (this.dangerMice != null) this.dangerMice.clear(); return this; } @java.lang.SuppressWarnings("all") public BuilderSingularSets.BuilderSingularSetsBuilder<T> octopus(final Number octopus) { if (this.octopodes == null) this.octopodes = new java.util.ArrayList<Number>(); this.octopodes.add(octopus); return this; } @java.lang.SuppressWarnings("all") public BuilderSingularSets.BuilderSingularSetsBuilder<T> octopodes(final java.util.Collection<? extends Number> octopodes) { if (octopodes == null) { throw new java.lang.NullPointerException("octopodes cannot be null"); } if (this.octopodes == null) this.octopodes = new java.util.ArrayList<Number>(); this.octopodes.addAll(octopodes); return this; } @java.lang.SuppressWarnings("all") public BuilderSingularSets.BuilderSingularSetsBuilder<T> clearOctopodes() { if (this.octopodes != null) this.octopodes.clear(); return this; } @java.lang.SuppressWarnings("all") public BuilderSingularSets.BuilderSingularSetsBuilder<T> rawSet(final java.lang.Object rawSet) { if (this.rawSet == null) this.rawSet = new java.util.ArrayList<java.lang.Object>(); this.rawSet.add(rawSet); return this; } @java.lang.SuppressWarnings("all") public BuilderSingularSets.BuilderSingularSetsBuilder<T> rawSet(final java.util.Collection<?> rawSet) { if (rawSet == null) { throw new java.lang.NullPointerException("rawSet cannot be null"); } if (this.rawSet == null) this.rawSet = new java.util.ArrayList<java.lang.Object>(); this.rawSet.addAll(rawSet); return this; } @java.lang.SuppressWarnings("all") public BuilderSingularSets.BuilderSingularSetsBuilder<T> clearRawSet() { if (this.rawSet != null) this.rawSet.clear(); return this; } @java.lang.SuppressWarnings("all") public BuilderSingularSets.BuilderSingularSetsBuilder<T> stringSet(final String stringSet) { if (this.stringSet == null) this.stringSet = new java.util.ArrayList<String>(); this.stringSet.add(stringSet); return this; } @java.lang.SuppressWarnings("all") public BuilderSingularSets.BuilderSingularSetsBuilder<T> stringSet(final java.util.Collection<? extends String> stringSet) { if (stringSet == null) { throw new java.lang.NullPointerException("stringSet cannot be null"); } if (this.stringSet == null) this.stringSet = new java.util.ArrayList<String>(); this.stringSet.addAll(stringSet); return this; } @java.lang.SuppressWarnings("all") public BuilderSingularSets.BuilderSingularSetsBuilder<T> clearStringSet() { if (this.stringSet != null) this.stringSet.clear(); return this; } @java.lang.SuppressWarnings("all") public BuilderSingularSets<T> build() { java.util.Set<T> dangerMice; switch (this.dangerMice == null ? 0 : this.dangerMice.size()) { case 0: dangerMice = java.util.Collections.emptySet(); break; case 1: dangerMice = java.util.Collections.singleton(this.dangerMice.get(0)); break; default: dangerMice = new java.util.LinkedHashSet<T>(this.dangerMice.size() < 1073741824 ? 1 + this.dangerMice.size() + (this.dangerMice.size() - 3) / 3 : java.lang.Integer.MAX_VALUE); dangerMice.addAll(this.dangerMice); dangerMice = java.util.Collections.unmodifiableSet(dangerMice); } java.util.SortedSet<Number> octopodes = new java.util.TreeSet<Number>(); if (this.octopodes != null) octopodes.addAll(this.octopodes); octopodes = java.util.Collections.unmodifiableSortedSet(octopodes); java.util.Set<java.lang.Object> rawSet; switch (this.rawSet == null ? 0 : this.rawSet.size()) { case 0: rawSet = java.util.Collections.emptySet(); break; case 1: rawSet = java.util.Collections.singleton(this.rawSet.get(0)); break; default: rawSet = new java.util.LinkedHashSet<java.lang.Object>(this.rawSet.size() < 1073741824 ? 1 + this.rawSet.size() + (this.rawSet.size() - 3) / 3 : java.lang.Integer.MAX_VALUE); rawSet.addAll(this.rawSet); rawSet = java.util.Collections.unmodifiableSet(rawSet); } java.util.Set<String> stringSet; switch (this.stringSet == null ? 0 : this.stringSet.size()) { case 0: stringSet = java.util.Collections.emptySet(); break; case 1: stringSet = java.util.Collections.singleton(this.stringSet.get(0)); break; default: stringSet = new java.util.LinkedHashSet<String>(this.stringSet.size() < 1073741824 ? 1 + this.stringSet.size() + (this.stringSet.size() - 3) / 3 : java.lang.Integer.MAX_VALUE); stringSet.addAll(this.stringSet); stringSet = java.util.Collections.unmodifiableSet(stringSet); } return new BuilderSingularSets<T>(dangerMice, octopodes, rawSet, stringSet); } @java.lang.Override @java.lang.SuppressWarnings("all") public java.lang.String toString() { return "BuilderSingularSets.BuilderSingularSetsBuilder(dangerMice=" + this.dangerMice + ", octopodes=" + this.octopodes + ", rawSet=" + this.rawSet + ", stringSet=" + this.stringSet + ")"; } } @java.lang.SuppressWarnings("all") public static <T> BuilderSingularSets.BuilderSingularSetsBuilder<T> builder() { return new BuilderSingularSets.BuilderSingularSetsBuilder<T>(); } }