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

public final class Zoo {
  private final String meerkat;
  private final String warthog;

  public Zoo create() {
    return new Zoo("tomon", "pumbaa");
  }

  @java.lang.SuppressWarnings("all")
  Zoo(final String meerkat, final String warthog) {
    this.meerkat = meerkat;
    this.warthog = warthog;
  }


  @java.lang.SuppressWarnings("all")
  public static class ZooBuilder {
    @java.lang.SuppressWarnings("all")
    private String meerkat;
    @java.lang.SuppressWarnings("all")
    private String warthog;

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

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

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

    @java.lang.SuppressWarnings("all")
    public Zoo build() {
      return new Zoo(meerkat, warthog);
    }

    @java.lang.Override
    @java.lang.SuppressWarnings("all")
    public java.lang.String toString() {
      return "Zoo.ZooBuilder(meerkat=" + this.meerkat + ", warthog=" + this.warthog + ")";
    }
  }

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

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

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

  @java.lang.Override
  @java.lang.SuppressWarnings("all")
  public boolean equals(final java.lang.Object o) {
    if (o == this) return true;
    if (!(o instanceof Zoo)) return false;
    final Zoo other = (Zoo) o;
    final java.lang.Object this$meerkat = this.getMeerkat();
    final java.lang.Object other$meerkat = other.getMeerkat();
    if (this$meerkat == null ? other$meerkat != null : !this$meerkat.equals(other$meerkat)) return false;
    final java.lang.Object this$warthog = this.getWarthog();
    final java.lang.Object other$warthog = other.getWarthog();
    if (this$warthog == null ? other$warthog != null : !this$warthog.equals(other$warthog)) 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 $meerkat = this.getMeerkat();
    result = result * PRIME + ($meerkat == null ? 43 : $meerkat.hashCode());
    final java.lang.Object $warthog = this.getWarthog();
    result = result * PRIME + ($warthog == null ? 43 : $warthog.hashCode());
    return result;
  }

  @java.lang.Override
  @java.lang.SuppressWarnings("all")
  public java.lang.String toString() {
    return "Zoo(meerkat=" + this.getMeerkat() + ", warthog=" + this.getWarthog() + ")";
  }
}
