Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ifesdjeen/3826589 to your computer and use it in GitHub Desktop.
Save ifesdjeen/3826589 to your computer and use it in GitHub Desktop.
(ns clojurewerkz.cassaforte.thrift.column
(:use [clojurewerkz.support.string :only [to-byte-buffer]]
[clojurewerkz.cassaforte.bytes :only [encode]])
(:import [org.apache.cassandra.thrift Column]))
(defn ^Column build-column
"Converts clojure map to column"
([^String key ^String value]
(build-column to-byte-buffer key value (System/currentTimeMillis)))
([^clojure.lang.IFn encoder ^String key ^String value ^Long timestamp]
(-> (Column.)
(.setName (encoder (name key)))
(.setValue (encode value))
(.setTimestamp timestamp))))
;;
;; Compilation Results:
;;
;; Reflection warning, /Users/ifesdjeen/p/clojurewerkz/cassaforte/src/clojure/clojurewerkz/cassaforte/thrift/column.clj:36 - call to setName can't be resolved.
;; Reflection warning, /Users/ifesdjeen/p/clojurewerkz/cassaforte/src/clojure/clojurewerkz/cassaforte/thrift/column.clj:37 - call to setValue can't be resolved.
;; Reflection warning, /Users/ifesdjeen/p/clojurewerkz/cassaforte/src/clojure/clojurewerkz/cassaforte/thrift/column.clj:38 - call to setTimestamp can't be resolved.
;;
;; Same thing with that could be reproduced pretty much anywhere:
;;
(defn this-is-a-test
[]
(-> (java.util.ArrayList.)
(.add "test")
(.add "test2")))
;; Reflection warning, /Users/ifesdjeen/p/clojurewerkz/cassaforte/src/clojure/clojurewerkz/cassaforte/thrift/column.clj:43 - call to add can't be resolved.
;; Reflection warning, /Users/ifesdjeen/p/clojurewerkz/cassaforte/src/clojure/clojurewerkz/cassaforte/thrift/column.clj:44 - call to add can't be resolved.
;; With a type hint:
(defn this-is-a-test
[]
(let [list ^java.util.List (java.util.ArrayList.)]
(-> list
(.add "test")
(.add "test2"))))
;; Reflection warning, /Users/ifesdjeen/p/clojurewerkz/cassaforte/src/clojure/clojurewerkz/cassaforte/thrift/column.clj:45 - call to add can't be resolved.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment