//version 8:
import java.util.List;
import java.util.Collection;
class BuilderSingularNullBehavior1 {
	private List<String> names;
	private List<String> locations;
	@java.lang.SuppressWarnings("all")
	BuilderSingularNullBehavior1(final List<String> names, final List<String> locations) {
		this.names = names;
		this.locations = locations;
	}
	@java.lang.SuppressWarnings("all")
	public static class BuilderSingularNullBehavior1Builder {
		@java.lang.SuppressWarnings("all")
		private java.util.ArrayList<String> names;
		@java.lang.SuppressWarnings("all")
		private java.util.ArrayList<String> locations;
		@java.lang.SuppressWarnings("all")
		BuilderSingularNullBehavior1Builder() {
		}
		@java.lang.SuppressWarnings("all")
		public BuilderSingularNullBehavior1.@org.checkerframework.checker.nullness.qual.NonNull BuilderSingularNullBehavior1Builder name(final String name) {
			if (this.names == null) this.names = new java.util.ArrayList<String>();
			this.names.add(name);
			return this;
		}
		@java.lang.SuppressWarnings("all")
		public BuilderSingularNullBehavior1.@org.checkerframework.checker.nullness.qual.NonNull BuilderSingularNullBehavior1Builder names(final java.util.@org.checkerframework.checker.nullness.qual.NonNull Collection<? extends String> names) {
			assert names != null : "names cannot be null";
			if (this.names == null) this.names = new java.util.ArrayList<String>();
			this.names.addAll(names);
			return this;
		}
		@java.lang.SuppressWarnings("all")
		public BuilderSingularNullBehavior1.@org.checkerframework.checker.nullness.qual.NonNull BuilderSingularNullBehavior1Builder clearNames() {
			if (this.names != null) this.names.clear();
			return this;
		}
		@java.lang.SuppressWarnings("all")
		public BuilderSingularNullBehavior1.@org.checkerframework.checker.nullness.qual.NonNull BuilderSingularNullBehavior1Builder location(final String location) {
			if (this.locations == null) this.locations = new java.util.ArrayList<String>();
			this.locations.add(location);
			return this;
		}
		@java.lang.SuppressWarnings("all")
		public BuilderSingularNullBehavior1.@org.checkerframework.checker.nullness.qual.NonNull BuilderSingularNullBehavior1Builder locations(final java.util.@org.checkerframework.checker.nullness.qual.Nullable Collection<? extends String> locations) {
			if (locations != null) {
				if (this.locations == null) this.locations = new java.util.ArrayList<String>();
				this.locations.addAll(locations);
			}
			return this;
		}
		@java.lang.SuppressWarnings("all")
		public BuilderSingularNullBehavior1.@org.checkerframework.checker.nullness.qual.NonNull BuilderSingularNullBehavior1Builder clearLocations() {
			if (this.locations != null) this.locations.clear();
			return this;
		}
		@org.checkerframework.checker.nullness.qual.NonNull
		@java.lang.SuppressWarnings("all")
		public BuilderSingularNullBehavior1 build() {
			java.util.List<String> names;
			switch (this.names == null ? 0 : this.names.size()) {
			case 0: 
				names = java.util.Collections.emptyList();
				break;
			case 1: 
				names = java.util.Collections.singletonList(this.names.get(0));
				break;
			default: 
				names = java.util.Collections.unmodifiableList(new java.util.ArrayList<String>(this.names));
			}
			java.util.List<String> locations;
			switch (this.locations == null ? 0 : this.locations.size()) {
			case 0: 
				locations = java.util.Collections.emptyList();
				break;
			case 1: 
				locations = java.util.Collections.singletonList(this.locations.get(0));
				break;
			default: 
				locations = java.util.Collections.unmodifiableList(new java.util.ArrayList<String>(this.locations));
			}
			return new BuilderSingularNullBehavior1(names, locations);
		}
		@java.lang.Override
		@java.lang.SuppressWarnings("all")
		public java.lang.@org.checkerframework.checker.nullness.qual.NonNull String toString() {
			return "BuilderSingularNullBehavior1.BuilderSingularNullBehavior1Builder(names=" + this.names + ", locations=" + this.locations + ")";
		}
	}
	@java.lang.SuppressWarnings("all")
	public static BuilderSingularNullBehavior1.@org.checkerframework.checker.nullness.qual.NonNull BuilderSingularNullBehavior1Builder builder() {
		return new BuilderSingularNullBehavior1.BuilderSingularNullBehavior1Builder();
	}
}