package foo;
import com.google.common.base.Optional;
import io.norberg.automatter.AutoMatter;
import javax.annotation.Generated;
@Generated("io.norberg.automatter.processor.AutoMatterProcessor")
public final class GuavaOptionalFieldsBuilder {
private Optional<String> foo;
private Optional<String> bar;
public GuavaOptionalFieldsBuilder() {
this.foo = Optional.absent();
}
private GuavaOptionalFieldsBuilder(GuavaOptionalFields v) {
this.foo = v.foo();
this.bar = v.bar();
}
private GuavaOptionalFieldsBuilder(GuavaOptionalFieldsBuilder v) {
this.foo = v.foo;
this.bar = v.bar;
}
public Optional<String> foo() {
return foo;
}
public GuavaOptionalFieldsBuilder foo(String foo) {
return foo(Optional.fromNullable(foo));
}
@SuppressWarnings("unchecked")
public GuavaOptionalFieldsBuilder foo(Optional<? extends String> foo) {
if (foo == null) {
throw new NullPointerException("foo");
}
this.foo = (Optional<String>) foo;
return this;
}
public Optional<String> bar() {
return bar;
}
public GuavaOptionalFieldsBuilder bar(String bar) {
return bar(Optional.fromNullable(bar));
}
@SuppressWarnings("unchecked")
public GuavaOptionalFieldsBuilder bar(Optional<? extends String> bar) {
this.bar = (Optional<String>) bar;
return this;
}
public GuavaOptionalFields build() {
return new Value(foo, bar);
}
public static GuavaOptionalFieldsBuilder from(GuavaOptionalFields v) {
return new GuavaOptionalFieldsBuilder(v);
}
public static GuavaOptionalFieldsBuilder from(GuavaOptionalFieldsBuilder v) {
return new GuavaOptionalFieldsBuilder(v);
}
private static final class Value
implements GuavaOptionalFields {
private final Optional<String> foo;
private final Optional<String> bar;
private Value(@AutoMatter.Field("foo") Optional<String> foo,
@AutoMatter.Field("bar") Optional<String> bar) {
if (foo == null) {
throw new NullPointerException("foo");
}
this.foo = foo;
this.bar = bar;
}
@AutoMatter.Field
@Override
public Optional<String> foo() {
return foo;
}
@AutoMatter.Field
@Override
public Optional<String> bar() {
return bar;
}
public GuavaOptionalFieldsBuilder builder() {
return new GuavaOptionalFieldsBuilder(this);
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (!(o instanceof GuavaOptionalFields)) {
return false;
}
final GuavaOptionalFields that = (GuavaOptionalFields) o;
if (foo != null ? !foo.equals(that.foo()) : that.foo() != null) {
return false;
}
if (bar != null ? !bar.equals(that.bar()) : that.bar() != null) {
return false;
}
return true;
}
@Override
public int hashCode() {
int result = 1;
long temp;
result = 31 * result + (this.foo != null ? this.foo.hashCode() : 0);
result = 31 * result + (this.bar != null ? this.bar.hashCode() : 0);
return result;
}
@Override
public String toString() {
return "GuavaOptionalFields{" +
"foo=" + foo +
", bar=" + bar +
'}';
}
}
}