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

public final class ValueAndWither {
  private final String myField;

  public void methodCallingWith() {
    this.withMyField("");
  }

  @java.beans.ConstructorProperties({"myField"})
  @java.lang.SuppressWarnings("all")
  public ValueAndWither(final String myField) {
    this.myField = myField;
  }

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

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

  @java.lang.Override
  @java.lang.SuppressWarnings("all")
  public java.lang.String toString() {
    return "ValueAndWither(myField=" + this.getMyField() + ")";
  }

  @java.lang.SuppressWarnings("all")
  public ValueAndWither withMyField(final String myField) {
    return this.myField == myField ? this : new ValueAndWither(myField);
  }
}
