-
Notifications
You must be signed in to change notification settings - Fork 5
/
java.clj
47 lines (41 loc) · 1.77 KB
/
java.clj
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
(ns verter.java
(:require [verter.core :as v]
[verter.store :as vs]
[verter.tools :as vt]
[clojure.edn :as edn])
(:import [verter.core Identity]
[java.util List Map]
[javax.sql DataSource]
[java.time Instant]))
(gen-class
:name tolitius.Verter
:methods [^{:static true} [connect [String javax.sql.DataSource] verter.core.Identity]
^{:static true} [connect [String javax.sql.DataSource java.util.Map] verter.core.Identity]
^{:static true} [createInstituteOfTime [String javax.sql.DataSource] void]
^{:static true} [createInstituteOfTime [String javax.sql.DataSource java.util.Map] void]
^{:static true} [addFacts [verter.core.Identity java.util.List] java.util.Map]
^{:static true} [facts [verter.core.Identity String] java.util.List]
; ^{:static true} [facts [verter.core.Identity String java.time.Instant] java.util.List]
; ^{:static true} [rollup [verter.core.Identity String] java.util.Map]
; ^{:static true} [asOf [verter.core.Identity String java.time.Instant] java.util.Map]
])
;; Java friendly faces
(defn -createInstituteOfTime
([dbtype datasource]
(-createInstituteOfTime dbtype datasource {}))
([dbtype datasource opts]
(vs/create-institute-of-time (keyword dbtype)
datasource
(vt/fmk opts keyword))))
(defn -connect
([dbtype datasource]
(-connect dbtype datasource {}))
([dbtype datasource opts]
(vs/connect (keyword dbtype)
datasource
(vt/fmk opts keyword))))
(defn -addFacts [verter facts]
(v/add-facts verter facts))
(defn -facts [verter id]
(v/facts verter
(edn/read-string id)))