package foo; import io.norberg.automatter.AutoMatter; import java.util.Arrays; import javax.annotation.Generated; @Generated("io.norberg.automatter.processor.AutoMatterProcessor") public final class FooBuilder { private boolean aBoolean; private byte aByte; private short aShort; private int aInt; private long aLong; private char aChar; private float aFloat; private double aDouble; private Object object; private Object[] array; public FooBuilder() { } private FooBuilder(Foo v) { this.aBoolean = v.aBoolean(); this.aByte = v.aByte(); this.aShort = v.aShort(); this.aInt = v.aInt(); this.aLong = v.aLong(); this.aChar = v.aChar(); this.aFloat = v.aFloat(); this.aDouble = v.aDouble(); this.object = v.object(); this.array = v.array(); } private FooBuilder(FooBuilder v) { this.aBoolean = v.aBoolean; this.aByte = v.aByte; this.aShort = v.aShort; this.aInt = v.aInt; this.aLong = v.aLong; this.aChar = v.aChar; this.aFloat = v.aFloat; this.aDouble = v.aDouble; this.object = v.object; this.array = v.array; } public boolean aBoolean() { return aBoolean; } public FooBuilder aBoolean(boolean aBoolean) { this.aBoolean = aBoolean; return this; } public byte aByte() { return aByte; } public FooBuilder aByte(byte aByte) { this.aByte = aByte; return this; } public short aShort() { return aShort; } public FooBuilder aShort(short aShort) { this.aShort = aShort; return this; } public int aInt() { return aInt; } public FooBuilder aInt(int aInt) { this.aInt = aInt; return this; } public long aLong() { return aLong; } public FooBuilder aLong(long aLong) { this.aLong = aLong; return this; } public char aChar() { return aChar; } public FooBuilder aChar(char aChar) { this.aChar = aChar; return this; } public float aFloat() { return aFloat; } public FooBuilder aFloat(float aFloat) { this.aFloat = aFloat; return this; } public double aDouble() { return aDouble; } public FooBuilder aDouble(double aDouble) { this.aDouble = aDouble; return this; } public Object object() { return object; } public FooBuilder object(Object object) { if (object == null) { throw new NullPointerException("object"); } this.object = object; return this; } public Object[] array() { return array; } public FooBuilder array(Object[] array) { if (array == null) { throw new NullPointerException("array"); } this.array = array; return this; } public FooBuilder builder() { return new FooBuilder(this); } public Foo build() { return new Value( aBoolean, aByte, aShort, aInt, aLong, aChar, aFloat, aDouble, object, array); } public static FooBuilder from(Foo v) { return new FooBuilder(v); } public static FooBuilder from(FooBuilder v) { return new FooBuilder(v); } private static final class Value implements Foo { private final boolean aBoolean; private final byte aByte; private final short aShort; private final int aInt; private final long aLong; private final char aChar; private final float aFloat; private final double aDouble; private final Object object; private final Object[] array; private Value( @AutoMatter.Field("aBoolean") boolean aBoolean, @AutoMatter.Field("aByte") byte aByte, @AutoMatter.Field("aShort") short aShort, @AutoMatter.Field("aInt") int aInt, @AutoMatter.Field("aLong") long aLong, @AutoMatter.Field("aChar") char aChar, @AutoMatter.Field("aFloat") float aFloat, @AutoMatter.Field("aDouble") double aDouble, @AutoMatter.Field("object") Object object, @AutoMatter.Field("array") Object[] array ) { if (object == null) { throw new NullPointerException("object"); } if (array == null) { throw new NullPointerException("array"); } this.aBoolean = aBoolean; this.aByte = aByte; this.aShort = aShort; this.aInt = aInt; this.aLong = aLong; this.aChar = aChar; this.aFloat = aFloat; this.aDouble = aDouble; this.object = object; this.array = array; } @AutoMatter.Field @Override public boolean aBoolean() { return aBoolean; } @AutoMatter.Field @Override public byte aByte() { return aByte; } @AutoMatter.Field @Override public short aShort() { return aShort; } @AutoMatter.Field @Override public int aInt() { return aInt; } @AutoMatter.Field @Override public long aLong() { return aLong; } @AutoMatter.Field @Override public char aChar() { return aChar; } @AutoMatter.Field @Override public float aFloat() { return aFloat; } @AutoMatter.Field @Override public double aDouble() { return aDouble; } @AutoMatter.Field @Override public Object object() { return object; } @AutoMatter.Field @Override public Object[] array() { return array; } @Override public FooBuilder builder() { return new FooBuilder(this); } @Override public boolean equals(Object o) { if (this == o) { return true; } if (!(o instanceof Foo)) { return false; } final Foo that = (Foo) o; if (aBoolean != that.aBoolean()) { return false; } if (aByte != that.aByte()) { return false; } if (aShort != that.aShort()) { return false; } if (aInt != that.aInt()) { return false; } if (aLong != that.aLong()) { return false; } if (aChar != that.aChar()) { return false; } if (Float.compare(aFloat, that.aFloat()) != 0) { return false; } if (Double.compare(aDouble, that.aDouble()) != 0) { return false; } if (object != null ? !object.equals(that.object()) : that.object() != null) { return false; } if (!Arrays.equals(array, that.array())) { return false; } return true; } @Override public int hashCode() { int result = 1; long temp; result = 31 * result + (this.aBoolean ? 1231 : 1237); result = 31 * result + (int) this.aByte; result = 31 * result + (int) this.aShort; result = 31 * result + this.aInt; result = 31 * result + (int) (this.aLong ^ (this.aLong >>> 32)); result = 31 * result + (int) this.aChar; result = 31 * result + (this.aFloat != +0.0f ? Float.floatToIntBits(this.aFloat) : 0); temp = Double.doubleToLongBits(this.aDouble); result = 31 * result + (int) (temp ^ (temp >>> 32)); result = 31 * result + (this.object != null ? this.object.hashCode() : 0); result = 31 * result + (this.array != null ? Arrays.hashCode(this.array) : 0); return result; } @Override public String toString() { return "Foo{" + "aBoolean=" + aBoolean + ", aByte=" + aByte + ", aShort=" + aShort + ", aInt=" + aInt + ", aLong=" + aLong + ", aChar=" + aChar + ", aFloat=" + aFloat + ", aDouble=" + aDouble + ", object=" + object + ", array=" + Arrays.toString(array) + '}'; } } }