Class ClassMethods

All Implemented Interfaces:
Named

public class ClassMethods extends Procedure2
  • Field Details

    • classMethods

      public static final ClassMethods classMethods
  • Constructor Details

    • ClassMethods

      public ClassMethods()
  • Method Details

    • 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.
    • apply

      public static MethodProc apply(Procedure thisProc, Object arg0, Object arg1)
    • 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).