Looks like Java Doc have it
The implementor must ensure that sgn(compare(x, y)) ==
-sgn(compare(y, x)) for all x and y. (This implies that compare(x, y) must throw an exception if and only if compare(y, x) throws an
exception.)
The implementor must also ensure that the relation is transitive:
((compare(x, y)>0) && (compare(y, z)>0)) implies compare(x, z)>0.
Finally, the implementor must ensure that compare(x, y)==0 implies
that sgn(compare(x, z))==sgn(compare(y, z)) for all z.
It is generally the case, but not strictly required that (compare(x,
y)==0) == (x.equals(y)). Generally speaking, any comparator that
violates this condition should clearly indicate this fact. The
recommended language is "Note: this comparator imposes orderings that
are inconsistent with equals."