Package edu.umd.cs.findbugs.ba
Class SignatureParser
java.lang.Object
edu.umd.cs.findbugs.ba.SignatureParser
A simple class to parse method signatures.
- Author:
- David Hovemeyer
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionString[]
int
Get the number of parameters in the signature.static int
getNumParametersForInvocation
(org.apache.bcel.generic.InvokeInstruction inv, org.apache.bcel.generic.ConstantPoolGen cpg) Get the number of parameters passed to method invocation.static int
getNumSlotsForType
(String sig) Return how many stack frame slots a type whose signature is given will occupy.getParameter
(int pos) Get the method return type signature.int
getSlotsFromTopOfStackForParameter
(int paramNum) int
boolean
static boolean
isReferenceType
(String signature) Determine whether or not given signature denotes a reference type.static void
Get an Iterator over signatures of the method parameters.toString()
-
Constructor Details
-
SignatureParser
Constructor.- Parameters:
signature
- the method signature to be parsed
-
-
Method Details
-
getTotalArgumentSize
public int getTotalArgumentSize() -
getSlotsFromTopOfStackForParameter
public int getSlotsFromTopOfStackForParameter(int paramNum) -
toString
-
getArguments
-
parameterSignatureIterator
Get an Iterator over signatures of the method parameters.- Returns:
- Iterator which returns the parameter type signatures in order
-
parameterSignatures
-
getReturnTypeSignature
Get the method return type signature.- Returns:
- the method return type signature
-
getNumParameters
public int getNumParameters()Get the number of parameters in the signature.- Returns:
- the number of parameters
-
hasReferenceParameters
public boolean hasReferenceParameters() -
getParameter
-
isReferenceType
Determine whether or not given signature denotes a reference type.- Parameters:
signature
- a signature- Returns:
- true if signature denotes a reference type, false otherwise
-
getNumParametersForInvocation
public static int getNumParametersForInvocation(org.apache.bcel.generic.InvokeInstruction inv, org.apache.bcel.generic.ConstantPoolGen cpg) Get the number of parameters passed to method invocation.- Parameters:
inv
-cpg
-- Returns:
- int number of parameters
-
getNumSlotsForType
Return how many stack frame slots a type whose signature is given will occupy. long and double values take 2 slots, while all other kinds of values take 1 slot.- Parameters:
sig
- a type signature- Returns:
- number of stack frame slots a value of the given type will occupy
-
main
-