serp.bytecode
Class BCMethod

java.lang.Object
  extended by serp.bytecode.Attributes
      extended by serp.bytecode.Annotated
          extended by serp.bytecode.BCMember
              extended by serp.bytecode.BCMethod
All Implemented Interfaces:
BCEntity, VisitAcceptor

public class BCMethod
extends BCMember
implements VisitAcceptor

A method of a class.

Author:
Abe White

Method Summary
 void acceptVisit(BCVisitor visit)
          Accept a visit from a BCVisitor, calling the appropriate methods to notify the visitor that it has entered this entity, and to provide it with the proper callbacks for each sub-entity owned by this one.
 void addParam(BCClass type)
          Add a parameter type to this method.
 void addParam(Class type)
          Add a parameter type to this method.
 void addParam(int pos, BCClass type)
          Add a parameter type to this method.
 void addParam(int pos, Class type)
          Add a parameter type to this method.
 void addParam(int pos, String type)
          Add a parameter type to this method.
 void addParam(String type)
          Add a parameter type to this method.
 void clearParams()
          Clear all parameters from this method.
 Code getCode(boolean add)
          Return the code for the method.
 Exceptions getExceptions(boolean add)
          Return the checked exceptions information for the method.
 BCClass[] getParamBCs()
          Return the bytecode for all the parameter types for this method.
 String[] getParamNames()
          Return the names of all the parameter types for this method.
 Class[] getParamTypes()
          Return the Class objects for all the parameter types for this method.
 BCClass getReturnBC()
          Return the bytecode for the return type of this method.
 String getReturnName()
          Return the name of the type returned by this method.
 Class getReturnType()
          Return the Class object for the return type of this method.
 boolean isAbstract()
          Manipulate the method access flags.
 boolean isBridge()
          Manipulate the method access flags.
 boolean isNative()
          Manipulate the method access flags.
 boolean isStrict()
          Manipulate the method access flags.
 boolean isSynchronized()
          Manipulate the method access flags.
 boolean isVarArgs()
          Manipulate the method access flags.
 boolean removeCode()
          Remove the code attribute from the method.
 boolean removeExceptions()
          Remove the exceptions attribute for the method.
 void removeParam(int pos)
          Remove a parameter from this method.
 void setAbstract(boolean on)
          Manipulate the method access flags.
 void setBridge(boolean on)
          Manipulate the method access flags.
 void setNative(boolean on)
          Manipulate the method access flags.
 void setParam(int pos, BCClass type)
          Change a parameter type of this method.
 void setParam(int pos, Class type)
          Change a parameter type of this method.
 void setParam(int pos, String type)
          Change a parameter type of this method.
 void setParams(BCClass[] types)
          Set the parameter type of this method.
 void setParams(Class[] types)
          Set the parameter type of this method.
 void setParams(String[] names)
          Set the parameter types of this method.
 void setReturn(BCClass type)
          Set the return type of this method.
 void setReturn(Class type)
          Set the return type of this method.
 void setReturn(String name)
          Set the return type of this method.
 void setStrict(boolean on)
          Manipulate the method access flags.
 void setSynchronized(boolean on)
          Manipulate the method access flags.
 void setVarArgs(boolean on)
          Manipulate the method access flags.
 
Methods inherited from class serp.bytecode.BCMember
getAccessFlags, getClassLoader, getDeclarer, getDescriptor, getDescriptorIndex, getName, getNameIndex, getPool, getProject, isDeprecated, isFinal, isPackage, isPrivate, isProtected, isPublic, isStatic, isSynthetic, isValid, makePackage, makePrivate, makeProtected, makePublic, setAccessFlags, setDeprecated, setDescriptor, setDescriptorIndex, setFinal, setName, setNameIndex, setStatic, setSynthetic
 
Methods inherited from class serp.bytecode.Annotated
getDeclaredAnnotations, getDeclaredRuntimeAnnotations, removeDeclaredAnnotations, removeDeclaredRuntimeAnnotations
 
Methods inherited from class serp.bytecode.Attributes
addAttribute, addAttribute, clearAttributes, getAttribute, getAttributes, getAttributes, removeAttribute, removeAttribute, setAttributes
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

isSynchronized

public boolean isSynchronized()
Manipulate the method access flags.


setSynchronized

public void setSynchronized(boolean on)
Manipulate the method access flags.


isNative

public boolean isNative()
Manipulate the method access flags.


setNative

public void setNative(boolean on)
Manipulate the method access flags.


isAbstract

public boolean isAbstract()
Manipulate the method access flags.


setAbstract

public void setAbstract(boolean on)
Manipulate the method access flags.


isStrict

public boolean isStrict()
Manipulate the method access flags.


setStrict

public void setStrict(boolean on)
Manipulate the method access flags.


isVarArgs

public boolean isVarArgs()
Manipulate the method access flags.


setVarArgs

public void setVarArgs(boolean on)
Manipulate the method access flags.


isBridge

public boolean isBridge()
Manipulate the method access flags.


setBridge

public void setBridge(boolean on)
Manipulate the method access flags.


getReturnName

public String getReturnName()
Return the name of the type returned by this method. The name will be given in a form suitable for a Class.forName(java.lang.String) call.

See Also:
BCMember.getDescriptor()

getReturnType

public Class getReturnType()
Return the Class object for the return type of this method.

See Also:
BCMember.getDescriptor()

getReturnBC

public BCClass getReturnBC()
Return the bytecode for the return type of this method.

See Also:
BCMember.getDescriptor()

setReturn

public void setReturn(String name)
Set the return type of this method.


setReturn

public void setReturn(Class type)
Set the return type of this method.


setReturn

public void setReturn(BCClass type)
Set the return type of this method.


getParamNames

public String[] getParamNames()
Return the names of all the parameter types for this method. The names will be returned in a form suitable for a Class.forName(java.lang.String) call.

See Also:
BCMember.getDescriptor()

getParamTypes

public Class[] getParamTypes()
Return the Class objects for all the parameter types for this method.

See Also:
BCMember.getDescriptor()

getParamBCs

public BCClass[] getParamBCs()
Return the bytecode for all the parameter types for this method.

See Also:
BCMember.getDescriptor()

setParams

public void setParams(String[] names)
Set the parameter types of this method.

See Also:
BCMember.setDescriptor(java.lang.String)

setParams

public void setParams(Class[] types)
Set the parameter type of this method.

See Also:
BCMember.setDescriptor(java.lang.String)

setParams

public void setParams(BCClass[] types)
Set the parameter type of this method.

See Also:
BCMember.setDescriptor(java.lang.String)

addParam

public void addParam(String type)
Add a parameter type to this method.


addParam

public void addParam(Class type)
Add a parameter type to this method.


addParam

public void addParam(BCClass type)
Add a parameter type to this method.


addParam

public void addParam(int pos,
                     String type)
Add a parameter type to this method.

See Also:
List.add(int,Object)

addParam

public void addParam(int pos,
                     Class type)
Add a parameter type to this method.

See Also:
List.add(int,Object)

addParam

public void addParam(int pos,
                     BCClass type)
Add a parameter type to this method.

See Also:
List.add(int,Object)

setParam

public void setParam(int pos,
                     String type)
Change a parameter type of this method.

See Also:
List.set(int,Object)

setParam

public void setParam(int pos,
                     Class type)
Change a parameter type of this method.

See Also:
List.set(int,Object)

setParam

public void setParam(int pos,
                     BCClass type)
Change a parameter type of this method.

See Also:
List.set(int,Object)

clearParams

public void clearParams()
Clear all parameters from this method.


removeParam

public void removeParam(int pos)
Remove a parameter from this method.


getExceptions

public Exceptions getExceptions(boolean add)
Return the checked exceptions information for the method. Acts internally through the Attributes interface.

Parameters:
add - if true, a new exceptions attribute will be added if not already present
Returns:
the exceptions information, or null if none and the add param is set to false

removeExceptions

public boolean removeExceptions()
Remove the exceptions attribute for the method. Acts internally through the Attributes interface.

Returns:
true if there was a value to remove

getCode

public Code getCode(boolean add)
Return the code for the method. If the code already exists, its iterator will be reset to the first instruction. Acts internally through the Attributes interface.

Parameters:
add - if true, a new code attribute will be added if not already present
Returns:
the code for the metohd, or null if none and the add param is set to false

removeCode

public boolean removeCode()
Remove the code attribute from the method. Acts internally through the Attributes interface.

Returns:
true if there was a value to remove

acceptVisit

public void acceptVisit(BCVisitor visit)
Description copied from interface: VisitAcceptor
Accept a visit from a BCVisitor, calling the appropriate methods to notify the visitor that it has entered this entity, and to provide it with the proper callbacks for each sub-entity owned by this one.

Specified by:
acceptVisit in interface VisitAcceptor


Copyright © 2002-2007. All Rights Reserved.