Class SignatureParser

java.lang.Object
edu.umd.cs.findbugs.ba.SignatureParser

public class SignatureParser extends Object
A simple class to parse method signatures.
Author:
David Hovemeyer
  • Constructor Details

    • SignatureParser

      public SignatureParser(String signature)
      Constructor.
      Parameters:
      signature - the method signature to be parsed
  • Method Details

    • getTotalArgumentSize

      public int getTotalArgumentSize()
    • getSlotsFromTopOfStackForParameter

      public int getSlotsFromTopOfStackForParameter(int paramNum)
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • getArguments

      public String[] getArguments()
    • parameterSignatureIterator

      public Iterator<String> parameterSignatureIterator()
      Get an Iterator over signatures of the method parameters.
      Returns:
      Iterator which returns the parameter type signatures in order
    • parameterSignatures

      public Iterable<String> parameterSignatures()
    • getReturnTypeSignature

      public 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 String getParameter(int pos)
    • isReferenceType

      public static boolean isReferenceType(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(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(String[] args)