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
Constructors -
Method Summary
Modifier and TypeMethodDescriptionString[]intGet the number of parameters in the signature.static intgetNumParametersForInvocation(org.apache.bcel.generic.InvokeInstruction inv, org.apache.bcel.generic.ConstantPoolGen cpg) Get the number of parameters passed to method invocation.static intgetNumSlotsForType(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.intgetSlotsFromTopOfStackForParameter(int paramNum) intbooleanstatic booleanisReferenceType(String signature) Determine whether or not given signature denotes a reference type.static voidGet 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
-