A class annotation used to make a class Comparable by multiple Comparators.
As an example, given this class:
@Sortable
class Person {
String first
String last
Integer born
}
The generated Groovy class will:
- implement the
Comparable
interface
- have a
compareTo
method based on the first
,
last
and born
properties (priority ordering will be according
to the ordering of property definition, highest first, unless 'includes' is used; in which case,
priority will be according to the order given in the includes list)
- have three
Comparator
methods named comparatorByFirst
,
comparatorByLast
and comparatorByBorn
The properties within the class must themselves be
Comparable
or
@Sortable
.