Class ClassMethods

  • All Implemented Interfaces:
    Named

    public class ClassMethods
    extends Procedure2
    • Field Detail

      • classMethods

        public static final ClassMethods classMethods
    • Constructor Detail

      • ClassMethods

        public ClassMethods()
    • Method Detail

      • apply2

        public Object apply2​(Object arg0,
                             Object arg1)
        Create a method or generic of the matching methods.
        Specified by:
        apply2 in class Procedure2
        Parameters:
        arg0 - a Class, ClassType, or a CharSequence or Symbol that names a class.
        arg1 - a method name (a CharSequence, 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.
        Parameters:
        caller - if non-null, check that methods are accessible in it.
        Returns:
        an array containing the methods.
      • selectApplicable

        public static long selectApplicable​(PrimProcedure[] methods,
                                            Type[] atypes,
                                            Type restType)
        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).
        Returns:
        ((number of definitely applicable methods) << 32 + (number of possibly applicable methods.
      • selectApplicable

        public static int selectApplicable​(PrimProcedure[] methods,
                                           int numArgs,
                                           boolean maybeMore)
        Select methods that have the right number of parameters.
        Returns:
        number of methods that apply, NO_MATCH_TOO_FEW_ARGS, or NO_MATCH_TOO_MANY_ARGS.
      • apply

        public static MethodProc apply​(ObjectType dtype,
                                       String mname,
                                       char mode,
                                       Language language)
        Find methods.
        Parameters:
        dtype - class to search
        mname - 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).