Package 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
- All Implemented Interfaces:
Closeable
,AutoCloseable
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
ConstructorsConstructorDescriptionParamReader
(byte[] b) process the given class bytes directly.ParamReader
(Class c) process a class file, given it's class. -
Method Summary
Modifier and TypeMethodDescriptionString[]
getParameterNames
(Constructor ctor) return the names of the declared parameters for the given constructor.protected String[]
getParameterNames
(Member member, Class[] paramTypes) String[]
getParameterNames
(Method method) return the names of the declared parameters for the given method.void
readCode()
read a code attributevoid
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, readAllBytes, readNBytes, reset, skip, transferTo
Methods inherited from class java.io.InputStream
nullInputStream, read, readNBytes, skipNBytes
-
Constructor Details
-
ParamReader
process a class file, given it's class. We'll use the defining classloader to locate the bytecode.- Parameters:
c
-- Throws:
IOException
-
ParamReader
process the given class bytes directly.- Parameters:
b
-- Throws:
IOException
-
-
Method Details
-
readCode
Description copied from class:ClassReader
read a code attribute- Overrides:
readCode
in classClassReader
- Throws:
IOException
-
getParameterNames
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
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
-
readLocalVariableTable
this is invoked when a LocalVariableTable attribute is encountered.- Throws:
IOException
-