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]