package foo;
import io.norberg.automatter.AutoMatter;
import java.util.Date;
import javax.annotation.Generated;
@Generated("io.norberg.automatter.processor.AutoMatterProcessor")
public final class NullableFieldsBuilder {
private String nullableFoo;
private String customNullableBar;
private String nonNullQuux;
private int nonNullPrimitive;
public NullableFieldsBuilder() {
}
private NullableFieldsBuilder(NullableFields v) {
this.nullableFoo = v.nullableFoo();
this.customNullableBar = v.customNullableBar();
this.nonNullQuux = v.nonNullQuux();
this.nonNullPrimitive = v.nonNullPrimitive();
}
private NullableFieldsBuilder(NullableFieldsBuilder v) {
this.nullableFoo = v.nullableFoo;
this.customNullableBar = v.customNullableBar;
this.nonNullQuux = v.nonNullQuux;
this.nonNullPrimitive = v.nonNullPrimitive;
}
public String nullableFoo() {
return nullableFoo;
}
public NullableFieldsBuilder nullableFoo(@javax.annotation.Nullable String nullableFoo) {
this.nullableFoo = nullableFoo;
return this;
}
public String customNullableBar() {
return customNullableBar;
}
public NullableFieldsBuilder customNullableBar(@Nullable(simple = "foo", complex = Date.class) String customNullableBar) {
this.customNullableBar = customNullableBar;
return this;
}
public String nonNullQuux() {
return nonNullQuux;
}
public NullableFieldsBuilder nonNullQuux(String nonNullQuux) {
if (nonNullQuux == null) {
throw new NullPointerException("nonNullQuux");
}
this.nonNullQuux = nonNullQuux;
return this;
}
public int nonNullPrimitive() {
return nonNullPrimitive;
}
public NullableFieldsBuilder nonNullPrimitive(int nonNullPrimitive) {
this.nonNullPrimitive = nonNullPrimitive;
return this;
}
public NullableFields build() {
return new Value(
nullableFoo,
customNullableBar,
nonNullQuux,
nonNullPrimitive);
}
public static NullableFieldsBuilder from(NullableFields v) {
return new NullableFieldsBuilder(v);
}
public static NullableFieldsBuilder from(NullableFieldsBuilder v) {
return new NullableFieldsBuilder(v);
}
private static final class Value
implements NullableFields {
private final String nullableFoo;
private final String customNullableBar;
private final String nonNullQuux;
private final int nonNullPrimitive;
private Value(
@AutoMatter.Field("nullableFoo") String nullableFoo,
@AutoMatter.Field("customNullableBar") String customNullableBar,
@AutoMatter.Field("nonNullQuux") String nonNullQuux,
@AutoMatter.Field("nonNullPrimitive") int nonNullPrimitive
) {
if (nonNullQuux == null) {
throw new NullPointerException("nonNullQuux");
}
this.nullableFoo = nullableFoo;
this.customNullableBar = customNullableBar;
this.nonNullQuux = nonNullQuux;
this.nonNullPrimitive = nonNullPrimitive;
}
@AutoMatter.Field
@Override
public String nullableFoo() {
return nullableFoo;
}
@AutoMatter.Field
@Override
public String customNullableBar() {
return customNullableBar;
}
@AutoMatter.Field
@Override
public String nonNullQuux() {
return nonNullQuux;
}
@AutoMatter.Field
@Override
public int nonNullPrimitive() {
return nonNullPrimitive;
}
public NullableFieldsBuilder builder() {
return new NullableFieldsBuilder(this);
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (!(o instanceof NullableFields)) {
return false;
}
final NullableFields that = (NullableFields) o;
if (nullableFoo != null ? !nullableFoo.equals(that.nullableFoo()) : that.nullableFoo() != null) {
return false;
}
if (customNullableBar != null ? !customNullableBar.equals(that.customNullableBar()) : that.customNullableBar() != null) {
return false;
}
if (nonNullQuux != null ? !nonNullQuux.equals(that.nonNullQuux()) : that.nonNullQuux() != null) {
return false;
}
if (nonNullPrimitive != that.nonNullPrimitive()) {
return false;
}
return true;
}
@Override
public int hashCode() {
int result = 1;
long temp;
result = 31 * result + (this.nullableFoo != null ? this.nullableFoo.hashCode() : 0);
result = 31 * result + (this.customNullableBar != null ? this.customNullableBar.hashCode() : 0);
result = 31 * result + (this.nonNullQuux != null ? this.nonNullQuux.hashCode() : 0);
result = 31 * result + this.nonNullPrimitive;
return result;
}
@Override
public String toString() {
return "NullableFields{" +
"nullableFoo=" + nullableFoo +
", customNullableBar=" + customNullableBar +
", nonNullQuux=" + nonNullQuux +
", nonNullPrimitive=" + nonNullPrimitive +
'}';
}
}
}