org.apache.axis.utils.bytecode

Class 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

Constructor Summary
ParamReader(Class c)
process a class file, given it's class.
ParamReader(byte[] b)
process the given class bytes directly.
Method Summary
String[]getParameterNames(Constructor ctor)
return the names of the declared parameters for the given constructor.
String[]getParameterNames(Method method)
return the names of the declared parameters for the given method.
protected String[]getParameterNames(Member member, Class[] paramTypes)
voidreadCode()
voidreadLocalVariableTable()
this is invoked when a LocalVariableTable attribute is encountered.

Constructor Detail

ParamReader

public ParamReader(Class c)
process a class file, given it's class. We'll use the defining classloader to locate the bytecode.

Parameters: c

Throws: IOException

ParamReader

public ParamReader(byte[] b)
process the given class bytes directly.

Parameters: b

Throws: IOException

Method Detail

getParameterNames

public String[] getParameterNames(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 String[] getParameterNames(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 String[] getParameterNames(Member member, Class[] paramTypes)

readCode

public void readCode()

readLocalVariableTable

public void readLocalVariableTable()
this is invoked when a LocalVariableTable attribute is encountered.

Throws: IOException

Copyright B) 2005 Apache Web Services Project. All Rights Reserved.