Package edu.umd.cs.findbugs.ba
Class SignatureParser
- java.lang.Object
-
- edu.umd.cs.findbugs.ba.SignatureParser
-
public class SignatureParser extends java.lang.Object
A simple class to parse method signatures.- Author:
- David Hovemeyer
-
-
Constructor Summary
Constructors Constructor Description SignatureParser(java.lang.String signature)
Constructor.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.String[]
getArguments()
int
getNumParameters()
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(java.lang.String sig)
Return how many stack frame slots a type whose signature is given will occupy.java.lang.String
getParameter(int pos)
java.lang.String
getReturnTypeSignature()
Get the method return type signature.int
getSlotsFromTopOfStackForParameter(int paramNum)
int
getTotalArgumentSize()
boolean
hasReferenceParameters()
static boolean
isReferenceType(java.lang.String signature)
Determine whether or not given signature denotes a reference type.static void
main(java.lang.String[] args)
java.util.Iterator<java.lang.String>
parameterSignatureIterator()
Get an Iterator over signatures of the method parameters.java.lang.Iterable<java.lang.String>
parameterSignatures()
java.lang.String
toString()
-
-
-
Method Detail
-
getTotalArgumentSize
public int getTotalArgumentSize()
-
getSlotsFromTopOfStackForParameter
public int getSlotsFromTopOfStackForParameter(int paramNum)
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
getArguments
public java.lang.String[] getArguments()
-
parameterSignatureIterator
public java.util.Iterator<java.lang.String> parameterSignatureIterator()
Get an Iterator over signatures of the method parameters.- Returns:
- Iterator which returns the parameter type signatures in order
-
parameterSignatures
public java.lang.Iterable<java.lang.String> parameterSignatures()
-
getReturnTypeSignature
public java.lang.String 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
public java.lang.String getParameter(int pos)
-
isReferenceType
public static boolean isReferenceType(java.lang.String signature)
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
public static int getNumSlotsForType(java.lang.String sig)
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
public static void main(java.lang.String[] args)
-
-