org.codehaus.aspectwerkz.reflect.impl.asm
Class AsmMethodInfo

java.lang.Object
  extended by org.codehaus.aspectwerkz.reflect.impl.asm.AsmMemberInfo
      extended by org.codehaus.aspectwerkz.reflect.impl.asm.AsmMethodInfo
All Implemented Interfaces:
MemberInfo, MethodInfo, ReflectionInfo

public class AsmMethodInfo
extends AsmMemberInfo
implements MethodInfo

ASM implementation of the MethodInfo interface.

Author:
Jonas BonŽr

Field Summary
protected  String[] m_parameterNames
          A list with the parameter names as they appear in the source code.
 
Fields inherited from class org.codehaus.aspectwerkz.reflect.impl.asm.AsmMemberInfo
m_annotations, m_classInfoRepository, m_declaringType, m_declaringTypeName, m_loaderRef, m_member
 
Method Summary
 boolean equals(Object o)
           
 List getAnnotations()
          Returns the annotations.
 ClassInfo[] getExceptionTypes()
          Returns the exception types.
static MethodInfo getMethodInfo(String methodName, String methodDesc, byte[] bytecode, ClassLoader loader)
          Returns the method info for the method specified.
 String[] getParameterNames()
          Returns the parameter names as they appear in the source code.
 ClassInfo[] getParameterTypes()
          Returns the parameter types.
 ClassInfo getReturnType()
          Returns the return type.
 String getSignature()
          Returns the signature for the element.
 int hashCode()
           
 void pushParameterNameFromRegister(int registerIndex, String parameterName)
          Update the parameter name given the parameter information the index is the one from the register ie a long or double will needs 2 register
 String toString()
           
 
Methods inherited from class org.codehaus.aspectwerkz.reflect.impl.asm.AsmMemberInfo
getDeclaringType, getModifiers, getName
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.codehaus.aspectwerkz.reflect.MemberInfo
getDeclaringType
 
Methods inherited from interface org.codehaus.aspectwerkz.reflect.ReflectionInfo
getModifiers, getName
 

Field Detail

m_parameterNames

protected String[] m_parameterNames
A list with the parameter names as they appear in the source code. This information may not be available.

Method Detail

getMethodInfo

public static MethodInfo getMethodInfo(String methodName,
                                       String methodDesc,
                                       byte[] bytecode,
                                       ClassLoader loader)
Returns the method info for the method specified.

Parameters:
methodName -
methodDesc -
bytecode -
loader -
Returns:
the method info

getSignature

public String getSignature()
Returns the signature for the element.

Specified by:
getSignature in interface ReflectionInfo
Returns:
the signature for the element

getReturnType

public ClassInfo getReturnType()
Returns the return type.

Specified by:
getReturnType in interface MethodInfo
Returns:
the return type

getParameterTypes

public ClassInfo[] getParameterTypes()
Returns the parameter types.

Specified by:
getParameterTypes in interface MethodInfo
Returns:
the parameter types

getParameterNames

public String[] getParameterNames()
Returns the parameter names as they appear in the source code. This information is available only when class are compiled with javac -g (debug info), but is required for Aspect that are using args() and target()/this() bindings.

It returns null if not available.

Specified by:
getParameterNames in interface MethodInfo
Returns:

getExceptionTypes

public ClassInfo[] getExceptionTypes()
Returns the exception types.

Specified by:
getExceptionTypes in interface MethodInfo
Returns:
the exception types

getAnnotations

public List getAnnotations()
Returns the annotations.

Specified by:
getAnnotations in interface ReflectionInfo
Returns:
the annotations

equals

public boolean equals(Object o)
Overrides:
equals in class Object

hashCode

public int hashCode()
Overrides:
hashCode in class Object

toString

public String toString()
Overrides:
toString in class Object

pushParameterNameFromRegister

public void pushParameterNameFromRegister(int registerIndex,
                                          String parameterName)
Update the parameter name given the parameter information the index is the one from the register ie a long or double will needs 2 register

Parameters:
registerIndex -
parameterName -


Copyright © 2002-2005 Jonas Bonér, Alexandre Vasseur. All Rights Reserved.