Disjunction extends PredicateOperator { @Override public int hashCode() { return operands.hashCode(); } Disjunction(Predicate... operands);  Disjunction(List<? extends Predicate> operands); Disjunction addOperand(Predicate operand); Disjunction addOperands(Collection<? extends Predicate> operands); Disjunction setOperands(Collection<? extends Predicate> operands); @Override List<Predicate> getOperands(); @Override Disjunction clone(); @Override int hashCode(); @Override boolean equals(Object obj);  }
@Test public void requireThatHashCodeIsImplemented() { assertEquals(new Disjunction().hashCode(), new Disjunction().hashCode()); }