« Return to Thread: can't override toString in coerced Map... some of the time
Yes, please raise an issue so that we can keep track of it, thanks.
--
Maurice Nicholson-2 wrote:
>
> So it's a bug?
>
> Shall I JIRA it?
>
> 2008/5/1 Andres Almiray <aalmiray@...>:
>
>>
>> Seems like this issue is related to coercing any interface as the
>> following
>> code shows
>>
>> interface Foo {
>> String foo()
>> }
>> class Bar {
>> String bar() { "Bar!" }
>> String toString() { "From Bar" }
>> }
>>
>> def concreteFoo = [
>> foo: { "Foo!" },
>> toString: { "from Proxy" }
>> ] as Foo
>> def concreteBar = [
>> bar: { "Baz!" },
>> toString: { "from Proxy" }
>> ] as Bar
>>
>> println concreteFoo
>> println concreteBar
>>
>> ------ OUTPUT -------
>>
>> ["foo":Script33$_run_closure1@19d9740,
>> "toString":Script33$_run_closure2@135128f]
>> from Proxy
>>
>> The same would happen to the usual suspects (equals, hashCode). I'm not
>> sure
>> if this is a design constraint.
>>
>>
>>
>> Maurice Nicholson-2 wrote:
>> >
>> > Hey all,
>> >
>> > I *love* the fact the Maps can be coerced into arbitrary types. It's
>> what
>> > I
>> > use all the time in Groovy unit tests.
>> >
>> > But what's up with this? I can't seem to override or invoke the
>> toString
>> > in
>> > a Map coerced to org.compass.core.CompassQuery, but a URL proxy Map
>> works
>> > fine:
>> >
>> > --- console ---
>> >
>> > import org.compass.core.CompassQuery
>> >
>> > def query = [toString: {-> 'this is the query'}] as CompassQuery
>> >
>> > println query.toString()
>> > println query.'toString'()
>> >
>> > def socket = [toString: {-> 'this is the socket'}] as Socket
>> >
>> > println socket.toString()
>> >
>> > --- output ----
>> >
>> > groovy> import org.compass.core.CompassQuery
>> > groovy> def query = [toString: {-> 'this is the query'}] as
>> CompassQuery
>> > groovy> println query.toString()
>> > groovy> println query.'toString'()
>> > groovy> def socket = [toString: {-> 'this is the socket'}] as Socket
>> > groovy> println socket.toString()
>> >
>> > ["toString":Script3$_run_closure1@bccf21]
>> > ["toString":Script3$_run_closure1@bccf21]
>> > this is the socket
>> >
>> > --- snip ---
>> >
>> > Any ideas?
>> >
>> > Thanks,
>> > Maurice
>> >
>> >
>>
>> --
>> View this message in context:
>> http://www.nabble.com/can%27t-override-toString-in-coerced-Map...-some-of-the-time-tp16990877p16992781.html
>> Sent from the groovy - user mailing list archive at Nabble.com.
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe from this list, please visit:
>>
>> http://xircles.codehaus.org/manage_email
>>
>>
>>
>
>
View this message in context: http://www.nabble.com/can%27t-override-toString-in-coerced-Map...-some-of-the-time-tp16990877p17021049.html
Sent from the groovy - user mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email
« Return to Thread: can't override toString in coerced Map... some of the time
| Free embeddable forum powered by Nabble | Forum Help |