@Sortable on a class Foo will add "Comparable<Foo>" to the list of implemented interfaces and a "compareTo(Foo other)" method.
If you also implement the raw Comparable interface manually you will need to also add a "compareTo(Object other)" method but the raw version is not required or typically recommended. Cheers, Paul. On Thu, Nov 12, 2015 at 3:18 PM, Balachandran Sivakumar <benignb...@gmail.com> wrote: > Hi, > > Just looked up the Groovy doc - The doc for @Sortable[1] says > that the generated Groovy class will implement the Comparable interface. > Thanks > > [1] > http://docs.groovy-lang.org/next/html/gapi/groovy/transform/Sortable.html > > On Thu, Nov 12, 2015 at 10:21 AM, Balachandran Sivakumar > <benignb...@gmail.com> wrote: >> >> Hi Schalk, >> >> This works on 2.4.5 >> >> @EqualsAndHashCode(excludes = ['config']) >> @Sortable(excludes = ['config']) >> @TupleConstructor >> @ToString >> class Foo { >> String version >> File config >> } >> >> I just have @Sortable annotation. From Groovy 2.3, Sortable implements >> Comparable is what I understand from the Groovy Goodness page on this >> topic[1]. So, just the class which is annotated with @Sortable is enough. I >> think We don't have to implement an "interface" at all. Thanks >> >> [1] >> http://mrhaki.blogspot.in/2014/05/groovy-goodness-use-sortable-annotation.html >> >> >> On Wed, Nov 11, 2015 at 11:03 PM, Schalk Cronjé <ysb...@gmail.com> wrote: >>> >>> Bala, >>> >>> That does not make sense, as the following will also fail: >>> >>> interface Foo extends Comparable { >>> String getVersion() >>> File getLocation() >>> } >>> >>> @EqualsAndHashCode(excludes=['location']) >>> @TupleConstructor >>> @Sortable(excludes=['location']) >>> @ToString >>> class Bar implements Foo { >>> String version >>> File location >>> } >>> >>> >>> On 11/11/2015 16:55, Balachandran Sivakumar wrote: >>> >>> Hi Schalk, >>> >>> >>> >>> On Wed, Nov 11, 2015 at 9:09 PM, Schalk Cronjé <ysb...@gmail.com> wrote: >>>> >>>> This following code works under 2.3.3, but fails under 2.3.6 - 2.4.5 >>>> >>>> @EqualsAndHashCode(excludes=['location']) >>>> @TupleConstructor >>>> @Sortable(excludes=['location']) >>>> @ToString >>>> class Bar implements Comparable { >>> >>> >>> I think @Sortable automatically makes it Comparable. So, we >>> don't have to "implement" Comparable if we use the @Sortable annotation. >>> Without the implements Comparable part, this works fine for me on groovy >>> 2.4.5. Thanks >>> >>> >>> -- >>> Thank you >>> Balachandran Sivakumar >>> >>> >>> >>> -- >>> Schalk W. Cronjé >>> Twitter / Ello / Toeter : @ysb33r >> >> >> >> >> -- >> Thank you >> Balachandran Sivakumar >> > > > > -- > Thank you > Balachandran Sivakumar >