std.object.element.impl.multi

elegible-candidates

added in 3.0

(elegible-candidates prelim aparams)

finds elegible candidates based upon argument list

(-> (query/query-class clojure.lang.PersistentVector “create” :#) (get-in :lookup :method 1) (multi/elegible-candidates java.util.List)) ;;=> (#create :: (java.util.List) -> clojure.lang.PersistentVector ;; #create :: (java.lang.Iterable) -> clojure.lang.PersistentVector)

find-candidate

added in 3.0

(find-candidate mele aparams)

finds best element within the multi, methods then fields

(-> (query/query-class String “value” :#) (multi/find-candidate String (type (chars “a”)))) ;; #[value :: (java.lang.String) | byte[]] => (any std.object.element.common.Element nil)

find-field-candidate

added in 3.0

(find-field-candidate mele aparams)

finds best field candidate for the element

(-> (query/query-class String “value” :#) (multi/find-field-candidate (type (chars “a”)))) ;; #[value :: (java.lang.String) | byte[]] => (any std.object.element.common.Element nil)

find-method-candidate

added in 3.0

(find-method-candidate mele aparams)

creates a map path for the element (-> (query/query-class clojure.lang.PersistentVector “create” :#) (multi/find-method-candidate java.util.List)) ;; #create :: (java.util.List) -> clojure.lang.PersistentVector => std.object.element.common.Element

get-name

added in 3.0

(get-name v)

all elements in the array have to have the same name (multi/get-name {:name “a”} {:name “b”}) => (throws)

(multi/get-name {:name “a”} {:name “a”}) => “a”

multi-element

added in 3.0

(multi-element m v)

combining elements together into one

(->> (query/query-class clojure.lang.PersistentVector “create”) (multi/multi-element {})) ;;=> #[create :: (java.util.List), … (java.lang.Iterable)]

to-element-array

added in 3.0

(to-element-array m0)

converts a three layer map to a flat sequence of values

(multi/to-element-array {:a {:b {:c 1 :d 2}}}) => 1 2

to-element-map-path

added in 3.0

(to-element-map-path ele)

creates a map path for the element

(-> (query/query-class String “charAt” :#) (multi/to-element-map-path)) => [:method 2 java.lang.String Integer/TYPE]