Ok, I'll maybe try to ;)

Another question in regard of ExtensionModules, is it possible to make a class comparable ?

I tried to implement compareTo (in a static way, within the extension module) but it doesn't seem to work. And actually, it makes sense, because the classe wasn't comparable.


Say I have a Car object, how should I write the compareTo method ?

class CarExtension {
  static int compareTo(Car self, Car other) { // or Object other ? or ? :[
    self.name.compareTo(other.name) // should this work ?
  }
}

Le 04/12/2015 12:00, Dinko Srkoč a écrit :
On 4 December 2015 at 11:41, Arnaud Estève <[email protected]> wrote:
[...]
Just a question (pure curiosity) though, what happens when many jars
register many extension modules on the same type/method, and you embed both
the jars ?
I would assume one would win and shadow the other. Sounds like a nice
experiment. ;-)

Cheers,
Dinko

On Fri, Dec 4, 2015 at 11:18 AM, Dinko Srkoč <[email protected]> wrote:
Just forward the call to the original `asType` method:

   org.codehaus.groovy.runtime.StringGroovyMethods.asType(self, someClass)

Cheers,
Dinko

On 4 December 2015 at 10:16, Arnaud Estève <[email protected]>
wrote:
Hello,

I'm currently playing with extension modules and congrats, it's very fun
to
add syntaxic sugar to an existing API.

I was wondering if it was possible to delegate to the "super" method
within
an extension module.

For instance, let's imagine I want to overload String's asType() method
:

class MyStringExtension {
   static Object asType(String self, Class someClass) {
     if (myClass = SomethingICanHandler.class) {
       // create an object from my string
     } else {
       // Here I'd like to "delegate" to the default String asType()
method
     }
   }
}

With metaclass it would be easy, but is it even possible (and does it
make
sense ?) to do so with an extension module ?

Thanks a lot :)



Reply via email to