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 <benignbala@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



On Wed, Nov 11, 2015 at 11:03 PM, Schalk Cronjé <ysb33r@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é <ysb33r@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