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 :)