Class SignatureConverter


  • public class SignatureConverter
    extends java.lang.Object
    Convert part or all of a Java type signature into something closer to what types look like in the source code. Both field and method signatures may be processed by this class. For a field signature, just call parseNext() once. For a method signature, parseNext() must be called multiple times, and the parens around the arguments must be skipped manually (by calling the skip() method).
    Author:
    David Hovemeyer
    • Constructor Summary

      Constructors 
      Constructor Description
      SignatureConverter​(java.lang.String signature)
      Constructor.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      static java.lang.String convert​(java.lang.String signature)
      Convenience method for converting a single signature component to human-readable form.
      static java.lang.String convertMethodSignature​(XMethod xmethod)
      Convenience method for generating a method signature in human readable form.
      static java.lang.String convertMethodSignature​(MethodDescriptor methodDescriptor)
      Convenience method for generating a method signature in human readable form.
      static java.lang.String convertMethodSignature​(java.lang.String className, java.lang.String methodName, java.lang.String methodSig)
      Convenience method for generating a method signature in human readable form.
      static java.lang.String convertMethodSignature​(java.lang.String className, java.lang.String methodName, java.lang.String methodSig, java.lang.String pkgName)
      Convenience method for generating a method signature in human readable form.
      static java.lang.String convertMethodSignature​(org.apache.bcel.classfile.JavaClass javaClass, org.apache.bcel.classfile.Method method)
      Convenience method for generating a method signature in human readable form.
      static java.lang.String convertMethodSignature​(org.apache.bcel.generic.InvokeInstruction inv, org.apache.bcel.generic.ConstantPoolGen cpg)
      Convenience method for generating a method signature in human readable form.
      static java.lang.String convertMethodSignature​(org.apache.bcel.generic.MethodGen methodGen)
      Convenience method for generating a method signature in human readable form.
      char getFirst()
      Get the first character of the remaining part of the signature.
      java.lang.String parseNext()
      Parse a single type out of the signature, starting at the beginning of the remaining part of the signature.
      static java.lang.String shorten​(java.lang.String pkgName, java.lang.String typeName)  
      void skip()
      Skip the first character of the remaining part of the signature.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • SignatureConverter

        public SignatureConverter​(java.lang.String signature)
        Constructor.
        Parameters:
        signature - the field or method signature to convert
    • Method Detail

      • getFirst

        public char getFirst()
        Get the first character of the remaining part of the signature.
      • skip

        public void skip()
        Skip the first character of the remaining part of the signature.
      • parseNext

        public java.lang.String parseNext()
        Parse a single type out of the signature, starting at the beginning of the remaining part of the signature. For example, if the first character of the remaining part is "I", then this method will return "int", and the "I" will be consumed. Arrays, reference types, and basic types are all handled.
        Returns:
        the parsed type string
      • convertMethodSignature

        public static java.lang.String convertMethodSignature​(org.apache.bcel.classfile.JavaClass javaClass,
                                                              org.apache.bcel.classfile.Method method)
        Convenience method for generating a method signature in human readable form.
        Parameters:
        javaClass - the class
        method - the method
      • convertMethodSignature

        public static java.lang.String convertMethodSignature​(org.apache.bcel.generic.MethodGen methodGen)
        Convenience method for generating a method signature in human readable form.
        Parameters:
        methodGen - the method to produce a method signature for
      • convertMethodSignature

        public static java.lang.String convertMethodSignature​(org.apache.bcel.generic.InvokeInstruction inv,
                                                              org.apache.bcel.generic.ConstantPoolGen cpg)
        Convenience method for generating a method signature in human readable form.
        Parameters:
        inv - an InvokeInstruction
        cpg - the ConstantPoolGen for the class the instruction belongs to
      • convertMethodSignature

        public static java.lang.String convertMethodSignature​(java.lang.String className,
                                                              java.lang.String methodName,
                                                              java.lang.String methodSig)
        Convenience method for generating a method signature in human readable form.
        Parameters:
        className - name of the class containing the method
        methodName - the name of the method
        methodSig - the signature of the method
      • convertMethodSignature

        public static java.lang.String convertMethodSignature​(XMethod xmethod)
        Convenience method for generating a method signature in human readable form.
        Parameters:
        xmethod - an XMethod
        Returns:
        the formatted version of that signature
      • convertMethodSignature

        public static java.lang.String convertMethodSignature​(MethodDescriptor methodDescriptor)
        Convenience method for generating a method signature in human readable form.
        Parameters:
        methodDescriptor - a MethodDescriptor
        Returns:
        the formatted version of that signature
      • convertMethodSignature

        public static java.lang.String convertMethodSignature​(java.lang.String className,
                                                              java.lang.String methodName,
                                                              java.lang.String methodSig,
                                                              java.lang.String pkgName)
        Convenience method for generating a method signature in human readable form.
        Parameters:
        className - name of the class containing the method
        methodName - the name of the method
        methodSig - the signature of the method
        pkgName - the name of the package the method is in (used to shorten class names)
      • convert

        public static java.lang.String convert​(java.lang.String signature)
        Convenience method for converting a single signature component to human-readable form.
        Parameters:
        signature - the signature
      • shorten

        public static java.lang.String shorten​(java.lang.String pkgName,
                                               java.lang.String typeName)