psdi.iface.webservices.action.bytecode

Class ParamReader

  • All Implemented Interfaces:
    java.io.Closeable, java.lang.AutoCloseable


    public class ParamReader
    extends ClassReader
    This is the class file reader for obtaining the parameter names for declared methods in a class. The class must have debugging attributes for us to obtain this information.

    This does not work for inherited methods. To obtain parameter names for inherited methods, you must use a paramReader for the class that originally declared the method.

    • Constructor Detail

      • ParamReader

        public ParamReader(java.lang.Class c)
                    throws java.io.IOException
        process a class file, given it's class. We'll use the defining classloader to locate the bytecode.
        Parameters:
        c -
        Throws:
        java.io.IOException
      • ParamReader

        public ParamReader(byte[] b)
                    throws java.io.IOException
        process the given class bytes directly.
        Parameters:
        b -
        Throws:
        java.io.IOException
    • Method Detail

      • readCode

        public void readCode()
                      throws java.io.IOException
        Description copied from class: ClassReader
        read a code attribute
        Overrides:
        readCode in class ClassReader
        Throws:
        java.io.IOException
      • getParameterNames

        public java.lang.String[] getParameterNames(java.lang.reflect.Constructor ctor)
        return the names of the declared parameters for the given constructor. If we cannot determine the names, return null. The returned array will have one name per parameter. The length of the array will be the same as the length of the Class[] array returned by Constructor.getParameterTypes().
        Parameters:
        ctor -
        Returns:
        String[] array of names, one per parameter, or null
      • getParameterNames

        public java.lang.String[] getParameterNames(java.lang.reflect.Method method)
        return the names of the declared parameters for the given method. If we cannot determine the names, return null. The returned array will have one name per parameter. The length of the array will be the same as the length of the Class[] array returned by Method.getParameterTypes().
        Parameters:
        method -
        Returns:
        String[] array of names, one per parameter, or null
      • getParameterNames

        protected java.lang.String[] getParameterNames(java.lang.reflect.Member member,
                                                       java.lang.Class[] paramTypes)
      • readLocalVariableTable

        public void readLocalVariableTable()
                                    throws java.io.IOException
        this is invoked when a LocalVariableTable attribute is encountered.
        Throws:
        java.io.IOException