diff options
author | Rich Hickey <richhickey@gmail.com> | 2008-02-06 05:23:43 +0000 |
---|---|---|
committer | Rich Hickey <richhickey@gmail.com> | 2008-02-06 05:23:43 +0000 |
commit | bb759a177e9185741b2dc5e217061298b007cea6 (patch) | |
tree | 9a8c0ddfb64cd1f68afd4ca190897cceeb63e696 /src/jvm/clojure/lang/ProxyHandler.java | |
parent | 2600301b4f797c09cbf9fb7539c39a6333851b4f (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.java | 12 |
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)); |