## org.apache.axis.utils.bytecode
Class ParamReader

    java.lang.Object
      java.io.InputStream
          java.io.ByteArrayInputStream
              org.apache.axis.utils.bytecode.ClassReader
                  org.apache.axis.utils.bytecode.ParamReader

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.

don't get tricky, it's the bare minimum. Instances of this class are not threadsafe -- don't share them.

Author:
  Edwin Smith, Macromedia

Field Summary

Fields inherited from class java.io.ByteArrayInputStream
`buf, count, mark, pos`

Constructor Summary
`ParamReader(byte[] b)` process the given class bytes directly.
`ParamReader(java.lang.Class c)` process a class file, given it's class.

Method Summary
`java.lang.String[]` `getParameterNames(java.lang.reflect.Constructor ctor)` return the names of the declared parameters for the given constructor.
`protected java.lang.String[]` `getParameterNames(java.lang.reflect.Member member, java.lang.Class[] paramTypes)`
`java.lang.String[]` `getParameterNames(java.lang.reflect.Method method)` return the names of the declared parameters for the given method.
`void` `readCode()` read a code attribute
`void` `readLocalVariableTable()` this is invoked when a LocalVariableTable attribute is encountered.

Methods inherited from class org.apache.axis.utils.bytecode.ClassReader
`findAttributeReaders, getBytes, getSignature, readAttributes, readCpool, readInt, readShort, resolveClass, resolveField, resolveMethod, resolveNameAndType, resolveUtf8, skipAttributes, skipFully`

Methods inherited from class java.io.ByteArrayInputStream
`available, close, mark, markSupported, read, read, reset, skip`

Methods inherited from class java.io.InputStream
`read`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

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`

Copyright © 2005 Apache Web Services Project. All Rights Reserved.