Package: groovy.transform

## [Java] Annotation Type Sortable

- groovy.transform.Sortable

- 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`.
  Authors:
    Andres Almiray
    Paul King

- - ### Element Summary

    Optional Element Summary
    Type | Name and Description
    --- | ---
    `String[]` | `excludes` Property names to exclude in the comparison algorithm.
    `String[]` | `includes` Property names to include in the comparison algorithm.

  - ### Inherited Methods Summary

    Inherited Methods
    Methods inherited from class | Name
    --- | ---
    `class Object` | `wait, wait, wait, equals, toString, hashCode, getClass, notify, notifyAll`

- - ### Element Detail

    - #### public String[] excludes

      Property names to exclude in the comparison algorithm. Must not be used if 'includes' is used. @default {}

    - #### public String[] includes

      Property names to include in the comparison algorithm. Must not be used if 'excludes' is used. @default {}