From a0010d3ff9c6c0be744660cac7076bb017210fb9 Mon Sep 17 00:00:00 2001 From: Andy Fingerhut Date: Sun, 28 Oct 2012 16:09:12 -0700 Subject: [PATCH] DXML-9: Eliminate one instance of reflection via a type hint --- src/main/clojure/clojure/data/xml.clj | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/clojure/clojure/data/xml.clj b/src/main/clojure/clojure/data/xml.clj index d53259e..0bf5ecc 100644 --- a/src/main/clojure/clojure/data/xml.clj +++ b/src/main/clojure/clojure/data/xml.clj @@ -291,6 +291,10 @@ and xml-input-factory-props for more information. Defaults coalescing true." [s & {:as props}] (let [fac (new-xml-input-factory (merge {:coalescing true} props)) + ;; Reflection on following line cannot be eliminated via a + ;; type hint, because s is advertised by fn parse to be an + ;; InputStream or Reader, and there are different + ;; createXMLStreamReader signatures for each of those types. sreader (.createXMLStreamReader fac s)] (pull-seq sreader))) @@ -344,7 +348,7 @@ (emit e sw) (.toString sw))) -(defn indenting-transformer [] +(defn ^javax.xml.transform.Transformer indenting-transformer [] (doto (-> (javax.xml.transform.TransformerFactory/newInstance) .newTransformer) (.setOutputProperty (javax.xml.transform.OutputKeys/INDENT) "yes") (.setOutputProperty (javax.xml.transform.OutputKeys/METHOD) "xml") -- 1.8.0