public abstract class MethodProc extends ProcedureN
Modifier and Type | Field and Description |
---|---|
protected java.lang.Object |
argTypes
The parameter types.
|
static int |
NO_MATCH
Return code from match: Unspecified failure.
|
static int |
NO_MATCH_AMBIGUOUS
Return code from match: Ambigious which method to select.
|
static int |
NO_MATCH_BAD_TYPE
Return code from match: Invalid argument type.
|
static int |
NO_MATCH_TOO_FEW_ARGS
Return code from match: Too few actual arguments.
|
static int |
NO_MATCH_TOO_MANY_ARGS
Return code from match: Too many actual arguments.
|
noArgs
compilerKey, validateApplyKey
nameKey
Constructor and Description |
---|
MethodProc() |
Modifier and Type | Method and Description |
---|---|
java.lang.Object |
applyN(java.lang.Object[] args) |
Type |
getParameterType(int index) |
int |
isApplicable(Type[] argTypes)
Test if method is applicable to an invocation with given arguments.
|
static java.lang.RuntimeException |
matchFailAsException(int code,
Procedure proc,
java.lang.Object[] args)
Helper method to throw an exception if a
matchX
method fails. |
static MethodProc |
mostSpecific(MethodProc proc1,
MethodProc proc2)
Return the more specific of the arguments.
|
int |
numParameters()
Return number of parameters, including optional and rest arguments.
|
static boolean |
overrideEquivalent(MethodProc proc1,
MethodProc proc2)
An approximation of "override-equivalent" as defined in the JLS.
|
protected void |
resolveParameterTypes()
Figure out or decode the parameter types, setting argTypes.
|
apply, apply, check0, check1, check2, check3, check4, checkArgCount, checkN, getReturnType, getSetter, getSourceLocation, isSideEffectFree, match0, match1, match2, match3, match4, matchN, maxArgs, maxArgs, minArgs, minArgs, numArgs, set0, set1, setN, setSetter, setSourceLocation, toString
getName, getProperty, getSymbol, removeProperty, setName, setProperty, setProperty, setSymbol
protected java.lang.Object argTypes
public static final int NO_MATCH
public static final int NO_MATCH_TOO_FEW_ARGS
public static final int NO_MATCH_TOO_MANY_ARGS
public static final int NO_MATCH_AMBIGUOUS
public static final int NO_MATCH_BAD_TYPE
public int isApplicable(Type[] argTypes)
public int numParameters()
protected void resolveParameterTypes()
public Type getParameterType(int index)
public static java.lang.RuntimeException matchFailAsException(int code, Procedure proc, java.lang.Object[] args)
matchX
method fails.public java.lang.Object applyN(java.lang.Object[] args) throws java.lang.Throwable
applyN
in class ProcedureN
java.lang.Throwable
public static MethodProc mostSpecific(MethodProc proc1, MethodProc proc2)
public static boolean overrideEquivalent(MethodProc proc1, MethodProc proc2)