// Generated by delombok at Sat Jun 11 11:12:44 CEST 2016

public final class ValueBuilder {
  private final String o1;
  private final int o2;
  private final double o3;

  public static void main(String[] args) {
    ValueBuilder builder = new ValueBuilder("1", 2, 3.0);
    System.out.println(builder);
  }

  @java.lang.SuppressWarnings("all")
  ValueBuilder(final String o1, final int o2, final double o3) {
    this.o1 = o1;
    this.o2 = o2;
    this.o3 = o3;
  }


  @java.lang.SuppressWarnings("all")
  public static class ValueBuilderBuilder {
    @java.lang.SuppressWarnings("all")
    private String o1;
    @java.lang.SuppressWarnings("all")
    private int o2;
    @java.lang.SuppressWarnings("all")
    private double o3;

    @java.lang.SuppressWarnings("all")
    ValueBuilderBuilder() {
    }

    @java.lang.SuppressWarnings("all")
    public ValueBuilderBuilder o1(final String o1) {
      this.o1 = o1;
      return this;
    }

    @java.lang.SuppressWarnings("all")
    public ValueBuilderBuilder o2(final int o2) {
      this.o2 = o2;
      return this;
    }

    @java.lang.SuppressWarnings("all")
    public ValueBuilderBuilder o3(final double o3) {
      this.o3 = o3;
      return this;
    }

    @java.lang.SuppressWarnings("all")
    public ValueBuilder build() {
      return new ValueBuilder(o1, o2, o3);
    }

    @java.lang.Override
    @java.lang.SuppressWarnings("all")
    public java.lang.String toString() {
      return "ValueBuilder.ValueBuilderBuilder(o1=" + this.o1 + ", o2=" + this.o2 + ", o3=" + this.o3 + ")";
    }
  }

  @java.lang.SuppressWarnings("all")
  public static ValueBuilderBuilder builder() {
    return new ValueBuilderBuilder();
  }

  @java.lang.SuppressWarnings("all")
  public String getO1() {
    return this.o1;
  }

  @java.lang.SuppressWarnings("all")
  public int getO2() {
    return this.o2;
  }

  @java.lang.SuppressWarnings("all")
  public double getO3() {
    return this.o3;
  }

  @java.lang.Override
  @java.lang.SuppressWarnings("all")
  public boolean equals(final java.lang.Object o) {
    if (o == this) return true;
    if (!(o instanceof ValueBuilder)) return false;
    final ValueBuilder other = (ValueBuilder) o;
    final java.lang.Object this$o1 = this.getO1();
    final java.lang.Object other$o1 = other.getO1();
    if (this$o1 == null ? other$o1 != null : !this$o1.equals(other$o1)) return false;
    if (this.getO2() != other.getO2()) return false;
    if (java.lang.Double.compare(this.getO3(), other.getO3()) != 0) return false;
    return true;
  }

  @java.lang.Override
  @java.lang.SuppressWarnings("all")
  public int hashCode() {
    final int PRIME = 59;
    int result = 1;
    final java.lang.Object $o1 = this.getO1();
    result = result * PRIME + ($o1 == null ? 43 : $o1.hashCode());
    result = result * PRIME + this.getO2();
    final long $o3 = java.lang.Double.doubleToLongBits(this.getO3());
    result = result * PRIME + (int) ($o3 >>> 32 ^ $o3);
    return result;
  }

  @java.lang.Override
  @java.lang.SuppressWarnings("all")
  public java.lang.String toString() {
    return "ValueBuilder(o1=" + this.getO1() + ", o2=" + this.getO2() + ", o3=" + this.getO3() + ")";
  }
}
