File tree Expand file tree Collapse file tree
src/main/clojure/clojure/data/xml Expand file tree Collapse file tree Original file line number Diff line number Diff line change 6363 `(do ~else)))
6464
6565(defn b64-encode [ba]
66- (String. (b64/encode ba)))
66+ (String. ^bytes (b64/encode ba)))
Original file line number Diff line number Diff line change 1717 [qname]]
1818 [clojure.data.xml.pu-map :as pu])
1919 (:import
20+ (java.io InputStream Reader)
2021 (javax.xml.stream
2122 XMLInputFactory XMLStreamReader XMLStreamConstants)
2223 (clojure.data.xml.event EndElementEvent)))
114115 ; ; Consume and ignore comments, spaces, processing instructions etc
115116 (recur ))))))
116117
117- (defn- make-input-factory [props]
118+ (defn- make-input-factory ^XMLInputFactory [props]
118119 (let [fac (XMLInputFactory/newInstance )]
119120 (doseq [[k v] props
120121 :when (contains? input-factory-props k)
124125
125126(defn make-stream-reader [props source]
126127 (let [fac (make-input-factory props)]
127- ; ; Reflection on following line cannot be eliminated via a
128- ; ; type hint, because s is advertised by fn parse to be an
129- ; ; InputStream or Reader, and there are different
130- ; ; createXMLStreamReader signatures for each of those types .
131- ( .createXMLStreamReader fac source)))
128+ ( cond
129+ ( instance? Reader source) ( .createXMLStreamReader fac ^Reader source)
130+ ( instance? InputStream source) ( .createXMLStreamReader fac ^InputStream source)
131+ :else ( throw ( IllegalArgumentException .
132+ " source should be java.io.Reader or java.io.InputStream " )) )))
132133
133134(defn string-source [s]
134135 (java.io.StringReader. s))
You can’t perform that action at this time.
0 commit comments