Skip to content

Commit aa4f76d

Browse files
committed
Avoid repeating (.md jdb), import java deps
1 parent 2264e4b commit aa4f76d

File tree

1 file changed

+12
-10
lines changed

1 file changed

+12
-10
lines changed

src/xitdb/util/conversion.clj

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,9 @@
77
ReadArrayList ReadCountedHashSet ReadCursor ReadHashMap ReadCountedHashMap
88
ReadHashSet Slot Tag WriteArrayList WriteCountedHashSet WriteCursor WriteCountedHashMap
99
WriteHashMap WriteHashSet WriteLinkedArrayList]
10-
[java.nio ByteBuffer]))
10+
[java.io OutputStream OutputStreamWriter]
11+
[java.nio ByteBuffer]
12+
[java.security DigestOutputStream]))
1113

1214
(defn xit-tag->keyword
1315
"Converts a XitDB Tag enum to a corresponding Clojure keyword."
@@ -57,32 +59,32 @@
5759
^bytes [^Database jdb v]
5860
(if (nil? v)
5961
(byte-array (-> jdb .md .getDigestLength))
60-
(do
62+
(let [digest (.md jdb)]
6163
;; add type name
62-
(.update (.md jdb) (-> v .getClass .getCanonicalName (.getBytes "UTF-8")))
64+
(.update digest (-> v .getClass .getCanonicalName (.getBytes "UTF-8")))
6365
;; add null byte as separator
64-
(.update (.md jdb) (byte-array 1))
66+
(.update digest (byte-array 1))
6567
;; add the value
6668
(cond
6769
(validation/lazy-seq? v)
6870
(throw (IllegalArgumentException. "Lazy sequences can be infinite and not allowed!"))
6971

7072
(bytes? v)
71-
(.update (.md jdb) v)
73+
(.update digest v)
7274

7375
(instance? Database$Bytes v)
74-
(.update (.md jdb) (.value v))
76+
(.update digest (.value v))
7577

7678
(coll? v)
77-
(with-open [os (java.security.DigestOutputStream. (java.io.OutputStream/nullOutputStream) (.md jdb))]
78-
(with-open [writer (java.io.OutputStreamWriter. os)]
79+
(with-open [os (DigestOutputStream. (OutputStream/nullOutputStream) digest)]
80+
(with-open [writer (OutputStreamWriter. os)]
7981
(binding [*out* writer]
8082
(pr v))))
8183

8284
:else
83-
(.update (.md jdb) (.getBytes (str v) "UTF-8")))
85+
(.update digest (.getBytes (str v) "UTF-8")))
8486
;; finish hash
85-
(.digest (.md jdb)))))
87+
(.digest digest))))
8688

8789
(defn ^Slot primitive-for
8890
"Converts a Clojure primitive value to its corresponding XitDB representation.

0 commit comments

Comments
 (0)