Description
The classes in question:
and
This came up while doing static analysis on the codebase on the trunk branch.
As described by the analysis tool built into Intellij:
Reports classes which implement java.lang.Comparable which do not override equals(). If equals() is not overridden, the equals() implementation is not consistent with the compareTo() implementation. If an object of such a class is added to a collection such as java.util.SortedSet, this collection will violate the contract of java.util.Set, which is defined in terms of equals().
Implementing an equals for an object is generally a best practice, especially considering this caveat, where it's not the compareTo that will be used but the equals method.