public final class ValueAndWither { private final String myField; @java.beans.ConstructorProperties({"myField"}) protected ValueAndWither(String myField) { this.myField = myField; } public void methodCallingWith() { this.withMyField(""); } public String getMyField() { return this.myField; } public boolean equals(Object o) { if (o == this) return true; if (!(o instanceof ValueAndWither)) return false; final ValueAndWither other = (ValueAndWither) o; final Object this$myField = this.myField; final Object other$myField = other.myField; if (this$myField == null ? other$myField != null : !this$myField.equals(other$myField)) return false; return true; } public int hashCode() { final int PRIME = 59; int result = 1; final Object $myField = this.myField; result = result * PRIME + ($myField == null ? 43 : $myField.hashCode()); return result; } public String toString() { return "ValueAndWither(myField=" + this.myField + ")"; } public ValueAndWither withMyField(String myField) { return this.myField == myField ? this : new ValueAndWither(myField); } }