summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRich Hickey <richhickey@gmail.com>2008-02-06 05:55:44 +0000
committerRich Hickey <richhickey@gmail.com>2008-02-06 05:55:44 +0000
commit81d57a3b85548d82668494a95368524087055665 (patch)
tree12adf5e0c4708515638696d8fb600240bfafebde
parentb7f44fa102c405f9220f271ac89b518ed2e916e2 (diff)
added seq support and inspector support for Java Maps
-rw-r--r--src/inspector.clj3
-rw-r--r--src/jvm/clojure/lang/RT.java2
2 files changed, 5 insertions, 0 deletions
diff --git a/src/inspector.clj b/src/inspector.clj
index ec77eae8..83ebc460 100644
--- a/src/inspector.clj
+++ b/src/inspector.clj
@@ -20,6 +20,7 @@
(cond
(instance? java.util.Map$Entry x) :entry
(instance? clojure.lang.IPersistentMap x) :map
+ (instance? java.util.Map x) :map
(instance? clojure.lang.Sequential x) :seq
:atom))
@@ -41,6 +42,8 @@
(defmethod get-child-count :entry [e]
(count (val e)))
+(defmethod is-leaf :map [m]
+ false)
(defmethod get-child :map [m index]
(nth (seq m) index))
diff --git a/src/jvm/clojure/lang/RT.java b/src/jvm/clojure/lang/RT.java
index 4762e101..1ede12f4 100644
--- a/src/jvm/clojure/lang/RT.java
+++ b/src/jvm/clojure/lang/RT.java
@@ -296,6 +296,8 @@ static public ISeq seq(Object coll){
return ArraySeq.create((Object[]) coll);
else if(coll instanceof String)
return StringSeq.create((String) coll);
+ else if(coll instanceof Map)
+ return seq(((Map) coll).entrySet());
else
throw new IllegalAccessError("Don't know how to create ISeq from arg");
}