import java.util.Map; import java.util.HashMap; class BuilderPlain { public static final String DEFAULT = "default"; public static final int IGNORE = 2; private String optionalVal1 = $Builder.$optionalVal1Default(); private java.util.List<java.lang.Long> optionalVal2 = $Builder.$optionalVal2Default(); private Map<java.lang.String, java.lang.Long> optionalVal3 = $Builder.$optionalVal3Default(); @java.lang.SuppressWarnings("all") private BuilderPlain(final $Builder builder) { this.optionalVal1 = builder.optionalVal1; this.optionalVal2 = builder.optionalVal2; this.optionalVal3 = builder.optionalVal3; } @java.lang.SuppressWarnings("all") public static OptionalDef builderPlain() { return new $Builder(); } @java.lang.SuppressWarnings("all") public static interface OptionalDef { OptionalDef withOptionalVal1(final String optionalVal1); OptionalDef withOptionalVal2(final java.lang.Long arg0); OptionalDef withOptionalVal2(final java.util.Collection<? extends java.lang.Long> arg0); OptionalDef withOptionalVal3(final java.lang.String arg0, final java.lang.Long arg1); OptionalDef withOptionalVal3(final java.util.Map<? extends java.lang.String, ? extends java.lang.Long> arg0); BuilderPlain build(); } @java.lang.SuppressWarnings("all") private static class $Builder implements OptionalDef { private String optionalVal1 = $optionalVal1Default(); private java.util.List<java.lang.Long> optionalVal2 = $optionalVal2Default(); private Map<java.lang.String, java.lang.Long> optionalVal3 = $optionalVal3Default(); static String $optionalVal1Default() { return DEFAULT; } static java.util.List<java.lang.Long> $optionalVal2Default() { return new java.util.ArrayList<java.lang.Long>(); } static Map<java.lang.String, java.lang.Long> $optionalVal3Default() { return new HashMap<java.lang.String, java.lang.Long>(); } public OptionalDef withOptionalVal1(final String optionalVal1) { this.optionalVal1 = optionalVal1; return this; } public OptionalDef withOptionalVal2(final java.lang.Long arg0) { this.optionalVal2.add(arg0); return this; } public OptionalDef withOptionalVal2(final java.util.Collection<? extends java.lang.Long> arg0) { this.optionalVal2.addAll(arg0); return this; } public OptionalDef withOptionalVal3(final java.lang.String arg0, final java.lang.Long arg1) { this.optionalVal3.put(arg0, arg1); return this; } public OptionalDef withOptionalVal3(final java.util.Map<? extends java.lang.String, ? extends java.lang.Long> arg0) { this.optionalVal3.putAll(arg0); return this; } public BuilderPlain build() { return new BuilderPlain(this); } private $Builder() { } } }