summaryrefslogtreecommitdiff
path: root/src/jvm/clojure/lang/ProxyHandler.java
diff options
context:
space:
mode:
authorRich Hickey <richhickey@gmail.com>2008-02-06 05:23:43 +0000
committerRich Hickey <richhickey@gmail.com>2008-02-06 05:23:43 +0000
commitbb759a177e9185741b2dc5e217061298b007cea6 (patch)
tree9a8c0ddfb64cd1f68afd4ca190897cceeb63e696 /src/jvm/clojure/lang/ProxyHandler.java
parent2600301b4f797c09cbf9fb7539c39a6333851b4f (diff)
added default handling of equals, toString and hashCode
Diffstat (limited to 'src/jvm/clojure/lang/ProxyHandler.java')
-rw-r--r--src/jvm/clojure/lang/ProxyHandler.java12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/jvm/clojure/lang/ProxyHandler.java b/src/jvm/clojure/lang/ProxyHandler.java
index 832deefa..f670fae3 100644
--- a/src/jvm/clojure/lang/ProxyHandler.java
+++ b/src/jvm/clojure/lang/ProxyHandler.java
@@ -31,6 +31,18 @@ public Object invoke(Object proxy, Method method, Object[] args) throws Throwabl
{
if(rt == Void.TYPE)
return null;
+ else if(method.getName().equals("equals"))
+ {
+ return proxy == args[0];
+ }
+ else if(method.getName().equals("hashCode"))
+ {
+ return System.identityHashCode(proxy);
+ }
+ else if(method.getName().equals("toString"))
+ {
+ return "Proxy: " + System.identityHashCode(proxy);
+ }
throw new UnsupportedOperationException();
}
Object ret = fn.applyTo(ArraySeq.create(args));