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.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private class
SignatureParser.ParameterSignatureIterator
-
Field Summary
Fields Modifier and Type Field Description private int[]
parameterOffset
private java.lang.String
signature
private int
totalArgumentSize
-
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)
(package private) int[]
getParameterOffset()
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()
-
getParameterOffset
@Nonnull int[] getParameterOffset()
-
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)
-
-