PhenotypeTerm implements Comparable<PhenotypeTerm> { @Override public boolean equals(Object o) { if (this == o) return true; if (!(o instanceof PhenotypeTerm)) return false; PhenotypeTerm that = (PhenotypeTerm) o; return Objects.equals(id, that.id) && Objects.equals(label, that.label) && status == that.status; } private  PhenotypeTerm(String id, String label, Status status); @JsonProperty String getId(); @JsonProperty String getLabel(); @JsonIgnore boolean isPresent(); @JsonIgnore boolean notPresent(); @Override boolean equals(Object o); @Override int hashCode(); @Override int compareTo(PhenotypeTerm o); @Override String toString(); @JsonCreator static PhenotypeTerm of(String id, String label); static PhenotypeTerm notOf(String id, String label);  }
@Test public void testEquals() { assertThat(instance, equalTo(instance)); }