clojure.lang.IFn
, java.lang.Runnable
, java.util.concurrent.Callable
, MultiFn
public final class MultiFnWoutHierarchy extends clojure.lang.AFn implements MultiFn
MultiFn
that optimizes for pure
Class-based method definition and lookup.
Semantic changes:
Class
and Signature
are accepted
as dispatch values.
MultiFn.preferMethod(Object,Object)
transitive:f.preferMethod(a,b)
and
f.preferMethod(b,c)
should imply
f.preferMethod(a,c)
, but that's not
not true in clojure.lang.MultiFn.prefers(x,y)
.
clojure.lang.MultiFn.prefers(x,y)
appears to imply that
f.preferMethod(x,ancestorOfY)
implies f.preferMethod(x,y)
.
This is not what I would expect.
clojure.lang.MultFn.prefers()
ignores
the multimethod's hierarchy, so behavior is different between
multimethods that use global-hierarchy
vs local.
Changed to explicitly use the local hierarchy in preference
evaluation.
See CLJ-2234.
Performance changes:.
clojure.lang.IFn.D, clojure.lang.IFn.DD, clojure.lang.IFn.DDD, clojure.lang.IFn.DDDD, clojure.lang.IFn.DDDDD, clojure.lang.IFn.DDDDL, clojure.lang.IFn.DDDDO, clojure.lang.IFn.DDDL, clojure.lang.IFn.DDDLD, clojure.lang.IFn.DDDLL, clojure.lang.IFn.DDDLO, clojure.lang.IFn.DDDO, clojure.lang.IFn.DDDOD, clojure.lang.IFn.DDDOL, clojure.lang.IFn.DDDOO, clojure.lang.IFn.DDL, clojure.lang.IFn.DDLD, clojure.lang.IFn.DDLDD, clojure.lang.IFn.DDLDL, clojure.lang.IFn.DDLDO, clojure.lang.IFn.DDLL, clojure.lang.IFn.DDLLD, clojure.lang.IFn.DDLLL, clojure.lang.IFn.DDLLO, clojure.lang.IFn.DDLO, clojure.lang.IFn.DDLOD, clojure.lang.IFn.DDLOL, clojure.lang.IFn.DDLOO, clojure.lang.IFn.DDO, clojure.lang.IFn.DDOD, clojure.lang.IFn.DDODD, clojure.lang.IFn.DDODL, clojure.lang.IFn.DDODO, clojure.lang.IFn.DDOL, clojure.lang.IFn.DDOLD, clojure.lang.IFn.DDOLL, clojure.lang.IFn.DDOLO, clojure.lang.IFn.DDOO, clojure.lang.IFn.DDOOD, clojure.lang.IFn.DDOOL, clojure.lang.IFn.DDOOO, clojure.lang.IFn.DL, clojure.lang.IFn.DLD, clojure.lang.IFn.DLDD, clojure.lang.IFn.DLDDD, clojure.lang.IFn.DLDDL, clojure.lang.IFn.DLDDO, clojure.lang.IFn.DLDL, clojure.lang.IFn.DLDLD, clojure.lang.IFn.DLDLL, clojure.lang.IFn.DLDLO, clojure.lang.IFn.DLDO, clojure.lang.IFn.DLDOD, clojure.lang.IFn.DLDOL, clojure.lang.IFn.DLDOO, clojure.lang.IFn.DLL, clojure.lang.IFn.DLLD, clojure.lang.IFn.DLLDD, clojure.lang.IFn.DLLDL, clojure.lang.IFn.DLLDO, clojure.lang.IFn.DLLL, clojure.lang.IFn.DLLLD, clojure.lang.IFn.DLLLL, clojure.lang.IFn.DLLLO, clojure.lang.IFn.DLLO, clojure.lang.IFn.DLLOD, clojure.lang.IFn.DLLOL, clojure.lang.IFn.DLLOO, clojure.lang.IFn.DLO, clojure.lang.IFn.DLOD, clojure.lang.IFn.DLODD, clojure.lang.IFn.DLODL, clojure.lang.IFn.DLODO, clojure.lang.IFn.DLOL, clojure.lang.IFn.DLOLD, clojure.lang.IFn.DLOLL, clojure.lang.IFn.DLOLO, clojure.lang.IFn.DLOO, clojure.lang.IFn.DLOOD, clojure.lang.IFn.DLOOL, clojure.lang.IFn.DLOOO, clojure.lang.IFn.DO, clojure.lang.IFn.DOD, clojure.lang.IFn.DODD, clojure.lang.IFn.DODDD, clojure.lang.IFn.DODDL, clojure.lang.IFn.DODDO, clojure.lang.IFn.DODL, clojure.lang.IFn.DODLD, clojure.lang.IFn.DODLL, clojure.lang.IFn.DODLO, clojure.lang.IFn.DODO, clojure.lang.IFn.DODOD, clojure.lang.IFn.DODOL, clojure.lang.IFn.DODOO, clojure.lang.IFn.DOL, clojure.lang.IFn.DOLD, clojure.lang.IFn.DOLDD, clojure.lang.IFn.DOLDL, clojure.lang.IFn.DOLDO, clojure.lang.IFn.DOLL, clojure.lang.IFn.DOLLD, clojure.lang.IFn.DOLLL, clojure.lang.IFn.DOLLO, clojure.lang.IFn.DOLO, clojure.lang.IFn.DOLOD, clojure.lang.IFn.DOLOL, clojure.lang.IFn.DOLOO, clojure.lang.IFn.DOO, clojure.lang.IFn.DOOD, clojure.lang.IFn.DOODD, clojure.lang.IFn.DOODL, clojure.lang.IFn.DOODO, clojure.lang.IFn.DOOL, clojure.lang.IFn.DOOLD, clojure.lang.IFn.DOOLL, clojure.lang.IFn.DOOLO, clojure.lang.IFn.DOOO, clojure.lang.IFn.DOOOD, clojure.lang.IFn.DOOOL, clojure.lang.IFn.DOOOO, clojure.lang.IFn.L, clojure.lang.IFn.LD, clojure.lang.IFn.LDD, clojure.lang.IFn.LDDD, clojure.lang.IFn.LDDDD, clojure.lang.IFn.LDDDL, clojure.lang.IFn.LDDDO, clojure.lang.IFn.LDDL, clojure.lang.IFn.LDDLD, clojure.lang.IFn.LDDLL, clojure.lang.IFn.LDDLO, clojure.lang.IFn.LDDO, clojure.lang.IFn.LDDOD, clojure.lang.IFn.LDDOL, clojure.lang.IFn.LDDOO, clojure.lang.IFn.LDL, clojure.lang.IFn.LDLD, clojure.lang.IFn.LDLDD, clojure.lang.IFn.LDLDL, clojure.lang.IFn.LDLDO, clojure.lang.IFn.LDLL, clojure.lang.IFn.LDLLD, clojure.lang.IFn.LDLLL, clojure.lang.IFn.LDLLO, clojure.lang.IFn.LDLO, clojure.lang.IFn.LDLOD, clojure.lang.IFn.LDLOL, clojure.lang.IFn.LDLOO, clojure.lang.IFn.LDO, clojure.lang.IFn.LDOD, clojure.lang.IFn.LDODD, clojure.lang.IFn.LDODL, clojure.lang.IFn.LDODO, clojure.lang.IFn.LDOL, clojure.lang.IFn.LDOLD, clojure.lang.IFn.LDOLL, clojure.lang.IFn.LDOLO, clojure.lang.IFn.LDOO, clojure.lang.IFn.LDOOD, clojure.lang.IFn.LDOOL, clojure.lang.IFn.LDOOO, clojure.lang.IFn.LL, clojure.lang.IFn.LLD, clojure.lang.IFn.LLDD, clojure.lang.IFn.LLDDD, clojure.lang.IFn.LLDDL, clojure.lang.IFn.LLDDO, clojure.lang.IFn.LLDL, clojure.lang.IFn.LLDLD, clojure.lang.IFn.LLDLL, clojure.lang.IFn.LLDLO, clojure.lang.IFn.LLDO, clojure.lang.IFn.LLDOD, clojure.lang.IFn.LLDOL, clojure.lang.IFn.LLDOO, clojure.lang.IFn.LLL, clojure.lang.IFn.LLLD, clojure.lang.IFn.LLLDD, clojure.lang.IFn.LLLDL, clojure.lang.IFn.LLLDO, clojure.lang.IFn.LLLL, clojure.lang.IFn.LLLLD, clojure.lang.IFn.LLLLL, clojure.lang.IFn.LLLLO, clojure.lang.IFn.LLLO, clojure.lang.IFn.LLLOD, clojure.lang.IFn.LLLOL, clojure.lang.IFn.LLLOO, clojure.lang.IFn.LLO, clojure.lang.IFn.LLOD, clojure.lang.IFn.LLODD, clojure.lang.IFn.LLODL, clojure.lang.IFn.LLODO, clojure.lang.IFn.LLOL, clojure.lang.IFn.LLOLD, clojure.lang.IFn.LLOLL, clojure.lang.IFn.LLOLO, clojure.lang.IFn.LLOO, clojure.lang.IFn.LLOOD, clojure.lang.IFn.LLOOL, clojure.lang.IFn.LLOOO, clojure.lang.IFn.LO, clojure.lang.IFn.LOD, clojure.lang.IFn.LODD, clojure.lang.IFn.LODDD, clojure.lang.IFn.LODDL, clojure.lang.IFn.LODDO, clojure.lang.IFn.LODL, clojure.lang.IFn.LODLD, clojure.lang.IFn.LODLL, clojure.lang.IFn.LODLO, clojure.lang.IFn.LODO, clojure.lang.IFn.LODOD, clojure.lang.IFn.LODOL, clojure.lang.IFn.LODOO, clojure.lang.IFn.LOL, clojure.lang.IFn.LOLD, clojure.lang.IFn.LOLDD, clojure.lang.IFn.LOLDL, clojure.lang.IFn.LOLDO, clojure.lang.IFn.LOLL, clojure.lang.IFn.LOLLD, clojure.lang.IFn.LOLLL, clojure.lang.IFn.LOLLO, clojure.lang.IFn.LOLO, clojure.lang.IFn.LOLOD, clojure.lang.IFn.LOLOL, clojure.lang.IFn.LOLOO, clojure.lang.IFn.LOO, clojure.lang.IFn.LOOD, clojure.lang.IFn.LOODD, clojure.lang.IFn.LOODL, clojure.lang.IFn.LOODO, clojure.lang.IFn.LOOL, clojure.lang.IFn.LOOLD, clojure.lang.IFn.LOOLL, clojure.lang.IFn.LOOLO, clojure.lang.IFn.LOOO, clojure.lang.IFn.LOOOD, clojure.lang.IFn.LOOOL, clojure.lang.IFn.LOOOO, clojure.lang.IFn.OD, clojure.lang.IFn.ODD, clojure.lang.IFn.ODDD, clojure.lang.IFn.ODDDD, clojure.lang.IFn.ODDDL, clojure.lang.IFn.ODDDO, clojure.lang.IFn.ODDL, clojure.lang.IFn.ODDLD, clojure.lang.IFn.ODDLL, clojure.lang.IFn.ODDLO, clojure.lang.IFn.ODDO, clojure.lang.IFn.ODDOD, clojure.lang.IFn.ODDOL, clojure.lang.IFn.ODDOO, clojure.lang.IFn.ODL, clojure.lang.IFn.ODLD, clojure.lang.IFn.ODLDD, clojure.lang.IFn.ODLDL, clojure.lang.IFn.ODLDO, clojure.lang.IFn.ODLL, clojure.lang.IFn.ODLLD, clojure.lang.IFn.ODLLL, clojure.lang.IFn.ODLLO, clojure.lang.IFn.ODLO, clojure.lang.IFn.ODLOD, clojure.lang.IFn.ODLOL, clojure.lang.IFn.ODLOO, clojure.lang.IFn.ODO, clojure.lang.IFn.ODOD, clojure.lang.IFn.ODODD, clojure.lang.IFn.ODODL, clojure.lang.IFn.ODODO, clojure.lang.IFn.ODOL, clojure.lang.IFn.ODOLD, clojure.lang.IFn.ODOLL, clojure.lang.IFn.ODOLO, clojure.lang.IFn.ODOO, clojure.lang.IFn.ODOOD, clojure.lang.IFn.ODOOL, clojure.lang.IFn.ODOOO, clojure.lang.IFn.OL, clojure.lang.IFn.OLD, clojure.lang.IFn.OLDD, clojure.lang.IFn.OLDDD, clojure.lang.IFn.OLDDL, clojure.lang.IFn.OLDDO, clojure.lang.IFn.OLDL, clojure.lang.IFn.OLDLD, clojure.lang.IFn.OLDLL, clojure.lang.IFn.OLDLO, clojure.lang.IFn.OLDO, clojure.lang.IFn.OLDOD, clojure.lang.IFn.OLDOL, clojure.lang.IFn.OLDOO, clojure.lang.IFn.OLL, clojure.lang.IFn.OLLD, clojure.lang.IFn.OLLDD, clojure.lang.IFn.OLLDL, clojure.lang.IFn.OLLDO, clojure.lang.IFn.OLLL, clojure.lang.IFn.OLLLD, clojure.lang.IFn.OLLLL, clojure.lang.IFn.OLLLO, clojure.lang.IFn.OLLO, clojure.lang.IFn.OLLOD, clojure.lang.IFn.OLLOL, clojure.lang.IFn.OLLOO, clojure.lang.IFn.OLO, clojure.lang.IFn.OLOD, clojure.lang.IFn.OLODD, clojure.lang.IFn.OLODL, clojure.lang.IFn.OLODO, clojure.lang.IFn.OLOL, clojure.lang.IFn.OLOLD, clojure.lang.IFn.OLOLL, clojure.lang.IFn.OLOLO, clojure.lang.IFn.OLOO, clojure.lang.IFn.OLOOD, clojure.lang.IFn.OLOOL, clojure.lang.IFn.OLOOO, clojure.lang.IFn.OOD, clojure.lang.IFn.OODD, clojure.lang.IFn.OODDD, clojure.lang.IFn.OODDL, clojure.lang.IFn.OODDO, clojure.lang.IFn.OODL, clojure.lang.IFn.OODLD, clojure.lang.IFn.OODLL, clojure.lang.IFn.OODLO, clojure.lang.IFn.OODO, clojure.lang.IFn.OODOD, clojure.lang.IFn.OODOL, clojure.lang.IFn.OODOO, clojure.lang.IFn.OOL, clojure.lang.IFn.OOLD, clojure.lang.IFn.OOLDD, clojure.lang.IFn.OOLDL, clojure.lang.IFn.OOLDO, clojure.lang.IFn.OOLL, clojure.lang.IFn.OOLLD, clojure.lang.IFn.OOLLL, clojure.lang.IFn.OOLLO, clojure.lang.IFn.OOLO, clojure.lang.IFn.OOLOD, clojure.lang.IFn.OOLOL, clojure.lang.IFn.OOLOO, clojure.lang.IFn.OOOD, clojure.lang.IFn.OOODD, clojure.lang.IFn.OOODL, clojure.lang.IFn.OOODO, clojure.lang.IFn.OOOL, clojure.lang.IFn.OOOLD, clojure.lang.IFn.OOOLL, clojure.lang.IFn.OOOLO, clojure.lang.IFn.OOOOD, clojure.lang.IFn.OOOOL
Constructor | Description |
---|---|
MultiFnWoutHierarchy(java.lang.String n,
clojure.lang.IFn dispatchF) |
Modifier and Type | Method | Description |
---|---|---|
MultiFn |
addMethod(java.lang.Object x,
clojure.lang.IFn method) |
Make
f the defined method for dispatch value
x . |
boolean |
dominates(java.lang.Object x,
java.lang.Object y) |
Is a method defined for
x preferred to a
method defined for y ? |
clojure.lang.IFn |
getMethod(java.lang.Object x) |
Look up the most preferred method for
dispatch value
x , if any applicable methods are
defined. |
clojure.lang.IPersistentMap |
getMethodTable() |
Return the table of defined methods,
a map from dispatch values to functions.
|
clojure.lang.IPersistentMap |
getPreferTable() |
Return the table of explicit method preferences,
a map from dispatch value to set of dispatch values,
with the interpretation a method defined for the key dispatch
value is preferred to methods defined for any of the dispatch
values in the set.
|
java.lang.Object |
invoke() |
|
java.lang.Object |
invoke(java.lang.Object arg1) |
|
java.lang.Object |
invoke(java.lang.Object arg1,
java.lang.Object arg2) |
|
java.lang.Object |
invoke(java.lang.Object arg1,
java.lang.Object arg2,
java.lang.Object arg3) |
|
java.lang.Object |
invoke(java.lang.Object arg1,
java.lang.Object arg2,
java.lang.Object arg3,
java.lang.Object arg4) |
|
java.lang.Object |
invoke(java.lang.Object arg1,
java.lang.Object arg2,
java.lang.Object arg3,
java.lang.Object arg4,
java.lang.Object arg5) |
|
java.lang.Object |
invoke(java.lang.Object arg1,
java.lang.Object arg2,
java.lang.Object arg3,
java.lang.Object arg4,
java.lang.Object arg5,
java.lang.Object arg6) |
|
java.lang.Object |
invoke(java.lang.Object arg1,
java.lang.Object arg2,
java.lang.Object arg3,
java.lang.Object arg4,
java.lang.Object arg5,
java.lang.Object arg6,
java.lang.Object arg7) |
|
java.lang.Object |
invoke(java.lang.Object arg1,
java.lang.Object arg2,
java.lang.Object arg3,
java.lang.Object arg4,
java.lang.Object arg5,
java.lang.Object arg6,
java.lang.Object arg7,
java.lang.Object arg8) |
|
java.lang.Object |
invoke(java.lang.Object arg1,
java.lang.Object arg2,
java.lang.Object arg3,
java.lang.Object arg4,
java.lang.Object arg5,
java.lang.Object arg6,
java.lang.Object arg7,
java.lang.Object arg8,
java.lang.Object arg9) |
|
java.lang.Object |
invoke(java.lang.Object arg1,
java.lang.Object arg2,
java.lang.Object arg3,
java.lang.Object arg4,
java.lang.Object arg5,
java.lang.Object arg6,
java.lang.Object arg7,
java.lang.Object arg8,
java.lang.Object arg9,
java.lang.Object arg10) |
|
java.lang.Object |
invoke(java.lang.Object arg1,
java.lang.Object arg2,
java.lang.Object arg3,
java.lang.Object arg4,
java.lang.Object arg5,
java.lang.Object arg6,
java.lang.Object arg7,
java.lang.Object arg8,
java.lang.Object arg9,
java.lang.Object arg10,
java.lang.Object arg11) |
|
java.lang.Object |
invoke(java.lang.Object arg1,
java.lang.Object arg2,
java.lang.Object arg3,
java.lang.Object arg4,
java.lang.Object arg5,
java.lang.Object arg6,
java.lang.Object arg7,
java.lang.Object arg8,
java.lang.Object arg9,
java.lang.Object arg10,
java.lang.Object arg11,
java.lang.Object arg12) |
|
java.lang.Object |
invoke(java.lang.Object arg1,
java.lang.Object arg2,
java.lang.Object arg3,
java.lang.Object arg4,
java.lang.Object arg5,
java.lang.Object arg6,
java.lang.Object arg7,
java.lang.Object arg8,
java.lang.Object arg9,
java.lang.Object arg10,
java.lang.Object arg11,
java.lang.Object arg12,
java.lang.Object arg13) |
|
java.lang.Object |
invoke(java.lang.Object arg1,
java.lang.Object arg2,
java.lang.Object arg3,
java.lang.Object arg4,
java.lang.Object arg5,
java.lang.Object arg6,
java.lang.Object arg7,
java.lang.Object arg8,
java.lang.Object arg9,
java.lang.Object arg10,
java.lang.Object arg11,
java.lang.Object arg12,
java.lang.Object arg13,
java.lang.Object arg14) |
|
java.lang.Object |
invoke(java.lang.Object arg1,
java.lang.Object arg2,
java.lang.Object arg3,
java.lang.Object arg4,
java.lang.Object arg5,
java.lang.Object arg6,
java.lang.Object arg7,
java.lang.Object arg8,
java.lang.Object arg9,
java.lang.Object arg10,
java.lang.Object arg11,
java.lang.Object arg12,
java.lang.Object arg13,
java.lang.Object arg14,
java.lang.Object arg15) |
|
java.lang.Object |
invoke(java.lang.Object arg1,
java.lang.Object arg2,
java.lang.Object arg3,
java.lang.Object arg4,
java.lang.Object arg5,
java.lang.Object arg6,
java.lang.Object arg7,
java.lang.Object arg8,
java.lang.Object arg9,
java.lang.Object arg10,
java.lang.Object arg11,
java.lang.Object arg12,
java.lang.Object arg13,
java.lang.Object arg14,
java.lang.Object arg15,
java.lang.Object arg16) |
|
java.lang.Object |
invoke(java.lang.Object arg1,
java.lang.Object arg2,
java.lang.Object arg3,
java.lang.Object arg4,
java.lang.Object arg5,
java.lang.Object arg6,
java.lang.Object arg7,
java.lang.Object arg8,
java.lang.Object arg9,
java.lang.Object arg10,
java.lang.Object arg11,
java.lang.Object arg12,
java.lang.Object arg13,
java.lang.Object arg14,
java.lang.Object arg15,
java.lang.Object arg16,
java.lang.Object arg17) |
|
java.lang.Object |
invoke(java.lang.Object arg1,
java.lang.Object arg2,
java.lang.Object arg3,
java.lang.Object arg4,
java.lang.Object arg5,
java.lang.Object arg6,
java.lang.Object arg7,
java.lang.Object arg8,
java.lang.Object arg9,
java.lang.Object arg10,
java.lang.Object arg11,
java.lang.Object arg12,
java.lang.Object arg13,
java.lang.Object arg14,
java.lang.Object arg15,
java.lang.Object arg16,
java.lang.Object arg17,
java.lang.Object arg18) |
|
java.lang.Object |
invoke(java.lang.Object arg1,
java.lang.Object arg2,
java.lang.Object arg3,
java.lang.Object arg4,
java.lang.Object arg5,
java.lang.Object arg6,
java.lang.Object arg7,
java.lang.Object arg8,
java.lang.Object arg9,
java.lang.Object arg10,
java.lang.Object arg11,
java.lang.Object arg12,
java.lang.Object arg13,
java.lang.Object arg14,
java.lang.Object arg15,
java.lang.Object arg16,
java.lang.Object arg17,
java.lang.Object arg18,
java.lang.Object arg19) |
|
java.lang.Object |
invoke(java.lang.Object arg1,
java.lang.Object arg2,
java.lang.Object arg3,
java.lang.Object arg4,
java.lang.Object arg5,
java.lang.Object arg6,
java.lang.Object arg7,
java.lang.Object arg8,
java.lang.Object arg9,
java.lang.Object arg10,
java.lang.Object arg11,
java.lang.Object arg12,
java.lang.Object arg13,
java.lang.Object arg14,
java.lang.Object arg15,
java.lang.Object arg16,
java.lang.Object arg17,
java.lang.Object arg18,
java.lang.Object arg19,
java.lang.Object arg20) |
|
java.lang.Object |
invoke(java.lang.Object arg1,
java.lang.Object arg2,
java.lang.Object arg3,
java.lang.Object arg4,
java.lang.Object arg5,
java.lang.Object arg6,
java.lang.Object arg7,
java.lang.Object arg8,
java.lang.Object arg9,
java.lang.Object arg10,
java.lang.Object arg11,
java.lang.Object arg12,
java.lang.Object arg13,
java.lang.Object arg14,
java.lang.Object arg15,
java.lang.Object arg16,
java.lang.Object arg17,
java.lang.Object arg18,
java.lang.Object arg19,
java.lang.Object arg20,
java.lang.Object... args) |
|
boolean |
isA(java.lang.Object child,
java.lang.Object parent) |
Are methods defined for
y applicable to
x ? |
boolean |
isLegalDispatchValue(java.lang.Object x) |
Is
x a legal dispatch value for this
MultiFn ? |
MultiFn |
preferMethod(java.lang.Object x,
java.lang.Object y) |
Prefer a method defined for dispatch value
x
to one defined for y . |
MultiFn |
removeMethod(java.lang.Object x) |
Removes the defined method for dispatch value
x , if there is one. |
MultiFn |
reset() |
Clear the
MultiFn , removing all defined
methods and preferences, and emptying the cache. |
checkLegalDispatchValue
public MultiFnWoutHierarchy(java.lang.String n, clojure.lang.IFn dispatchF)
public final boolean isLegalDispatchValue(java.lang.Object x)
MultiFn
x
a legal dispatch value for this
MultiFn
?
For performance reasons, some implementations of
MultiFn
may restrict kinds of dispatch values
they support.
Note: 'Legal' means it is possible to define methods for
x
, not that one has already been defined.
isLegalDispatchValue
in interface MultiFn
public final clojure.lang.IPersistentMap getMethodTable()
MultiFn
getMethodTable
in interface MultiFn
clojure.lang.IPersistentMap
public final clojure.lang.IPersistentMap getPreferTable()
MultiFn
getPreferTable
in interface MultiFn
clojure.lang.IPersistentMap
public final MultiFn reset()
MultiFn
MultiFn
, removing all defined
methods and preferences, and emptying the cache.public final MultiFn addMethod(java.lang.Object x, clojure.lang.IFn method)
MultiFn
f
the defined method for dispatch value
x
.public final MultiFn removeMethod(java.lang.Object x)
MultiFn
x
, if there is one. If not, does nothing.removeMethod
in interface MultiFn
MultiFn
.public final MultiFn preferMethod(java.lang.Object x, java.lang.Object y)
MultiFn
x
to one defined for y
.preferMethod
in interface MultiFn
MultiFn
.public final boolean isA(java.lang.Object child, java.lang.Object parent)
MultiFn
y
applicable to
x
?public final boolean dominates(java.lang.Object x, java.lang.Object y)
MultiFn
x
preferred to a
method defined for y
?public final clojure.lang.IFn getMethod(java.lang.Object x)
MultiFn
x
, if any applicable methods are
defined.
To keep method lookup fast, does NOT check that dispatch
value is legal,
just returning null
in that case.public final java.lang.Object invoke()
invoke
in interface clojure.lang.IFn
invoke
in class clojure.lang.AFn
public final java.lang.Object invoke(java.lang.Object arg1)
invoke
in interface clojure.lang.IFn
invoke
in class clojure.lang.AFn
public final java.lang.Object invoke(java.lang.Object arg1, java.lang.Object arg2)
invoke
in interface clojure.lang.IFn
invoke
in class clojure.lang.AFn
public final java.lang.Object invoke(java.lang.Object arg1, java.lang.Object arg2, java.lang.Object arg3)
invoke
in interface clojure.lang.IFn
invoke
in class clojure.lang.AFn
public final java.lang.Object invoke(java.lang.Object arg1, java.lang.Object arg2, java.lang.Object arg3, java.lang.Object arg4)
invoke
in interface clojure.lang.IFn
invoke
in class clojure.lang.AFn
public final java.lang.Object invoke(java.lang.Object arg1, java.lang.Object arg2, java.lang.Object arg3, java.lang.Object arg4, java.lang.Object arg5)
invoke
in interface clojure.lang.IFn
invoke
in class clojure.lang.AFn
public final java.lang.Object invoke(java.lang.Object arg1, java.lang.Object arg2, java.lang.Object arg3, java.lang.Object arg4, java.lang.Object arg5, java.lang.Object arg6)
invoke
in interface clojure.lang.IFn
invoke
in class clojure.lang.AFn
public final java.lang.Object invoke(java.lang.Object arg1, java.lang.Object arg2, java.lang.Object arg3, java.lang.Object arg4, java.lang.Object arg5, java.lang.Object arg6, java.lang.Object arg7)
invoke
in interface clojure.lang.IFn
invoke
in class clojure.lang.AFn
public final java.lang.Object invoke(java.lang.Object arg1, java.lang.Object arg2, java.lang.Object arg3, java.lang.Object arg4, java.lang.Object arg5, java.lang.Object arg6, java.lang.Object arg7, java.lang.Object arg8)
invoke
in interface clojure.lang.IFn
invoke
in class clojure.lang.AFn
public final java.lang.Object invoke(java.lang.Object arg1, java.lang.Object arg2, java.lang.Object arg3, java.lang.Object arg4, java.lang.Object arg5, java.lang.Object arg6, java.lang.Object arg7, java.lang.Object arg8, java.lang.Object arg9)
invoke
in interface clojure.lang.IFn
invoke
in class clojure.lang.AFn
public final java.lang.Object invoke(java.lang.Object arg1, java.lang.Object arg2, java.lang.Object arg3, java.lang.Object arg4, java.lang.Object arg5, java.lang.Object arg6, java.lang.Object arg7, java.lang.Object arg8, java.lang.Object arg9, java.lang.Object arg10)
invoke
in interface clojure.lang.IFn
invoke
in class clojure.lang.AFn
public final java.lang.Object invoke(java.lang.Object arg1, java.lang.Object arg2, java.lang.Object arg3, java.lang.Object arg4, java.lang.Object arg5, java.lang.Object arg6, java.lang.Object arg7, java.lang.Object arg8, java.lang.Object arg9, java.lang.Object arg10, java.lang.Object arg11)
invoke
in interface clojure.lang.IFn
invoke
in class clojure.lang.AFn
public final java.lang.Object invoke(java.lang.Object arg1, java.lang.Object arg2, java.lang.Object arg3, java.lang.Object arg4, java.lang.Object arg5, java.lang.Object arg6, java.lang.Object arg7, java.lang.Object arg8, java.lang.Object arg9, java.lang.Object arg10, java.lang.Object arg11, java.lang.Object arg12)
invoke
in interface clojure.lang.IFn
invoke
in class clojure.lang.AFn
public final java.lang.Object invoke(java.lang.Object arg1, java.lang.Object arg2, java.lang.Object arg3, java.lang.Object arg4, java.lang.Object arg5, java.lang.Object arg6, java.lang.Object arg7, java.lang.Object arg8, java.lang.Object arg9, java.lang.Object arg10, java.lang.Object arg11, java.lang.Object arg12, java.lang.Object arg13)
invoke
in interface clojure.lang.IFn
invoke
in class clojure.lang.AFn
public final java.lang.Object invoke(java.lang.Object arg1, java.lang.Object arg2, java.lang.Object arg3, java.lang.Object arg4, java.lang.Object arg5, java.lang.Object arg6, java.lang.Object arg7, java.lang.Object arg8, java.lang.Object arg9, java.lang.Object arg10, java.lang.Object arg11, java.lang.Object arg12, java.lang.Object arg13, java.lang.Object arg14)
invoke
in interface clojure.lang.IFn
invoke
in class clojure.lang.AFn
public final java.lang.Object invoke(java.lang.Object arg1, java.lang.Object arg2, java.lang.Object arg3, java.lang.Object arg4, java.lang.Object arg5, java.lang.Object arg6, java.lang.Object arg7, java.lang.Object arg8, java.lang.Object arg9, java.lang.Object arg10, java.lang.Object arg11, java.lang.Object arg12, java.lang.Object arg13, java.lang.Object arg14, java.lang.Object arg15)
invoke
in interface clojure.lang.IFn
invoke
in class clojure.lang.AFn
public final java.lang.Object invoke(java.lang.Object arg1, java.lang.Object arg2, java.lang.Object arg3, java.lang.Object arg4, java.lang.Object arg5, java.lang.Object arg6, java.lang.Object arg7, java.lang.Object arg8, java.lang.Object arg9, java.lang.Object arg10, java.lang.Object arg11, java.lang.Object arg12, java.lang.Object arg13, java.lang.Object arg14, java.lang.Object arg15, java.lang.Object arg16)
invoke
in interface clojure.lang.IFn
invoke
in class clojure.lang.AFn
public final java.lang.Object invoke(java.lang.Object arg1, java.lang.Object arg2, java.lang.Object arg3, java.lang.Object arg4, java.lang.Object arg5, java.lang.Object arg6, java.lang.Object arg7, java.lang.Object arg8, java.lang.Object arg9, java.lang.Object arg10, java.lang.Object arg11, java.lang.Object arg12, java.lang.Object arg13, java.lang.Object arg14, java.lang.Object arg15, java.lang.Object arg16, java.lang.Object arg17)
invoke
in interface clojure.lang.IFn
invoke
in class clojure.lang.AFn
public final java.lang.Object invoke(java.lang.Object arg1, java.lang.Object arg2, java.lang.Object arg3, java.lang.Object arg4, java.lang.Object arg5, java.lang.Object arg6, java.lang.Object arg7, java.lang.Object arg8, java.lang.Object arg9, java.lang.Object arg10, java.lang.Object arg11, java.lang.Object arg12, java.lang.Object arg13, java.lang.Object arg14, java.lang.Object arg15, java.lang.Object arg16, java.lang.Object arg17, java.lang.Object arg18)
invoke
in interface clojure.lang.IFn
invoke
in class clojure.lang.AFn
public final java.lang.Object invoke(java.lang.Object arg1, java.lang.Object arg2, java.lang.Object arg3, java.lang.Object arg4, java.lang.Object arg5, java.lang.Object arg6, java.lang.Object arg7, java.lang.Object arg8, java.lang.Object arg9, java.lang.Object arg10, java.lang.Object arg11, java.lang.Object arg12, java.lang.Object arg13, java.lang.Object arg14, java.lang.Object arg15, java.lang.Object arg16, java.lang.Object arg17, java.lang.Object arg18, java.lang.Object arg19)
invoke
in interface clojure.lang.IFn
invoke
in class clojure.lang.AFn
public final java.lang.Object invoke(java.lang.Object arg1, java.lang.Object arg2, java.lang.Object arg3, java.lang.Object arg4, java.lang.Object arg5, java.lang.Object arg6, java.lang.Object arg7, java.lang.Object arg8, java.lang.Object arg9, java.lang.Object arg10, java.lang.Object arg11, java.lang.Object arg12, java.lang.Object arg13, java.lang.Object arg14, java.lang.Object arg15, java.lang.Object arg16, java.lang.Object arg17, java.lang.Object arg18, java.lang.Object arg19, java.lang.Object arg20)
invoke
in interface clojure.lang.IFn
invoke
in class clojure.lang.AFn
public final java.lang.Object invoke(java.lang.Object arg1, java.lang.Object arg2, java.lang.Object arg3, java.lang.Object arg4, java.lang.Object arg5, java.lang.Object arg6, java.lang.Object arg7, java.lang.Object arg8, java.lang.Object arg9, java.lang.Object arg10, java.lang.Object arg11, java.lang.Object arg12, java.lang.Object arg13, java.lang.Object arg14, java.lang.Object arg15, java.lang.Object arg16, java.lang.Object arg17, java.lang.Object arg18, java.lang.Object arg19, java.lang.Object arg20, java.lang.Object... args)
invoke
in interface clojure.lang.IFn
invoke
in class clojure.lang.AFn
Copyright © 2017. All rights reserved.