package foo; import io.norberg.automatter.AutoMatter; import java.util.Optional; import javax.annotation.Generated; @Generated("io.norberg.automatter.processor.AutoMatterProcessor") public final class GenericJUTOptionalFieldsBuilder<T> { private Optional<T> foo; private Optional<T> bar; public GenericJUTOptionalFieldsBuilder() { this.foo = Optional.empty(); } private GenericJUTOptionalFieldsBuilder(GenericJUTOptionalFields<? extends T> v) { @SuppressWarnings("unchecked") Optional<T> _foo = (Optional<T>) v.foo(); this.foo = _foo; @SuppressWarnings("unchecked") Optional<T> _bar = (Optional<T>) v.bar(); this.bar = _bar; } private GenericJUTOptionalFieldsBuilder(GenericJUTOptionalFieldsBuilder<? extends T> v) { @SuppressWarnings("unchecked") Optional<T> _foo = (Optional<T>) v.foo(); this.foo = _foo; @SuppressWarnings("unchecked") Optional<T> _bar = (Optional<T>) v.bar(); this.bar = _bar; } public Optional<T> foo() { return foo; } public GenericJUTOptionalFieldsBuilder<T> foo(T foo) { return foo(Optional.ofNullable(foo)); } @SuppressWarnings("unchecked") public GenericJUTOptionalFieldsBuilder<T> foo(Optional<? extends T> foo) { if (foo == null) { throw new NullPointerException("foo"); } this.foo = (Optional<T>) foo; return this; } public Optional<T> bar() { return bar; } public GenericJUTOptionalFieldsBuilder<T> bar(T bar) { return bar(Optional.ofNullable(bar)); } @SuppressWarnings("unchecked") public GenericJUTOptionalFieldsBuilder<T> bar(Optional<? extends T> bar) { this.bar = (Optional<T>) bar; return this; } public GenericJUTOptionalFields<T> build() { return new Value<T>(foo, bar); } public static <T> GenericJUTOptionalFieldsBuilder<T> from(GenericJUTOptionalFields<? extends T> v) { return new GenericJUTOptionalFieldsBuilder<T>(v); } public static <T> GenericJUTOptionalFieldsBuilder<T> from(GenericJUTOptionalFieldsBuilder<? extends T> v) { return new GenericJUTOptionalFieldsBuilder<T>(v); } private static final class Value<T> implements GenericJUTOptionalFields<T> { private final Optional<T> foo; private final Optional<T> bar; private Value(@AutoMatter.Field("foo") Optional<T> foo, @AutoMatter.Field("bar") Optional<T> bar) { if (foo == null) { throw new NullPointerException("foo"); } this.foo = foo; this.bar = bar; } @AutoMatter.Field @Override public Optional<T> foo() { return foo; } @AutoMatter.Field @Override public Optional<T> bar() { return bar; } public GenericJUTOptionalFieldsBuilder<T> builder() { return new GenericJUTOptionalFieldsBuilder<T>(this); } @Override public boolean equals(Object o) { if (this == o) { return true; } if (!(o instanceof GenericJUTOptionalFields)) { return false; } final GenericJUTOptionalFields<?> that = (GenericJUTOptionalFields<?>) 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 "GenericJUTOptionalFields{" + "foo=" + foo + ", bar=" + bar + '}'; } } }