gnu.kawa.reflect
Class ClassMethods
- Named
public class ClassMethods
static MethodProc | apply(ObjectType dtype, String mname, char mode, Language language)- Find methods.
|
static MethodProc | apply(Procedure thisProc, Object arg0, Object arg1)
|
Object | apply2(Object arg0, Object arg1)- Create a method or generic of the matching methods.
|
static PrimProcedure[] | getMethods(ObjectType dtype, String mname, char mode, ClassType caller, Language language)- Return the methods of a class with the specified name and flag.
|
static long | selectApplicable(PrimProcedure[] methods, Type[] atypes)- Re-order the methods such that the ones that are definite
applicable (all argtypes is subset of parameter type) are first;
those possibly applicable next (argtype overlaps parameter types);
and ending with those definitely not applicable (some argtype does
overlap its parameter type).
|
apply, apply, apply0, apply1, apply2, apply3, apply4, applyN, check0, check1, check2, check3, check4, checkArgCount, checkN, getSetter, getSourceLocation, match0, match1, match2, match3, match4, matchN, maxArgs, minArgs, numArgs, set0, set1, setN, setSetter, setSourceLocation, toString |
apply
public static MethodProc apply(ObjectType dtype,
String mname,
char mode,
Language language)Find methods.
dtype - class to searchmname - method name (already mangled, if need be).mode - one of 'P' (use invokespecial). 'V' (require this argument
even if method is static), or '\0' (otherwise).
apply2
public Object apply2(Object arg0,
Object arg1)Create a method or generic of the matching methods.
- apply2 in interface Procedure2
arg0 - a Class, ClassType, or a String, FString or Symbol
that names a class.arg1 - a method name (a String, FString, or Symbol)
Loosely the same as GetNamedPart.make(arg0, arg1),
but with some extra conversions and checks.
getMethods
public static PrimProcedure[] getMethods(ObjectType dtype,
String mname,
char mode,
ClassType caller,
Language language)Return the methods of a class with the specified name and flag.
caller - if non-null, check that methods are accessible in it.
- an array containing the methods.
selectApplicable
public static long selectApplicable(PrimProcedure[] methods,
Type[] atypes)Re-order the methods such that the ones that are definite
applicable (all argtypes is subset of parameter type) are first;
those possibly applicable next (argtype overlaps parameter types);
and ending with those definitely not applicable (some argtype does
overlap its parameter type).
- ((number of definitely applicable methods) << 32
+ (number of possibly applicable methods.