Package serp.bytecode
Class BCMethod
- java.lang.Object
-
- serp.bytecode.Attributes
-
- serp.bytecode.Annotated
-
- serp.bytecode.BCMember
-
- 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
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
acceptVisit(BCVisitor visit)
Accept a visit from aBCVisitor
, 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(int pos, java.lang.Class type)
Add a parameter type to this method.void
addParam(int pos, java.lang.String type)
Add a parameter type to this method.void
addParam(int pos, BCClass type)
Add a parameter type to this method.void
addParam(java.lang.Class type)
Add a parameter type to this method.void
addParam(java.lang.String type)
Add a parameter type to this method.void
addParam(BCClass 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.java.lang.String[]
getParamNames()
Return the names of all the parameter types for this method.java.lang.Class[]
getParamTypes()
Return theClass
objects for all the parameter types for this method.BCClass
getReturnBC()
Return the bytecode for the return type of this method.java.lang.String
getReturnName()
Return the name of the type returned by this method.java.lang.Class
getReturnType()
Return theClass
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, java.lang.Class type)
Change a parameter type of this method.void
setParam(int pos, java.lang.String type)
Change a parameter type of this method.void
setParam(int pos, BCClass type)
Change a parameter type of this method.void
setParams(java.lang.Class[] types)
Set the parameter type of this method.void
setParams(java.lang.String[] names)
Set the parameter types of this method.void
setParams(BCClass[] types)
Set the parameter type of this method.void
setReturn(java.lang.Class type)
Set the return type of this method.void
setReturn(java.lang.String name)
Set the return type of this method.void
setReturn(BCClass type)
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
-
-
-
-
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 java.lang.String getReturnName()
Return the name of the type returned by this method. The name will be given in a form suitable for aClass.forName(java.lang.String)
call.- See Also:
BCMember.getDescriptor()
-
getReturnType
public java.lang.Class getReturnType()
Return theClass
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(java.lang.String name)
Set the return type of this method.
-
setReturn
public void setReturn(java.lang.Class type)
Set the return type of this method.
-
setReturn
public void setReturn(BCClass type)
Set the return type of this method.
-
getParamNames
public java.lang.String[] getParamNames()
Return the names of all the parameter types for this method. The names will be returned in a form suitable for aClass.forName(java.lang.String)
call.- See Also:
BCMember.getDescriptor()
-
getParamTypes
public java.lang.Class[] getParamTypes()
Return theClass
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(java.lang.String[] names)
Set the parameter types of this method.- See Also:
BCMember.setDescriptor(java.lang.String)
-
setParams
public void setParams(java.lang.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(java.lang.String type)
Add a parameter type to this method.
-
addParam
public void addParam(java.lang.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, java.lang.String type)
Add a parameter type to this method.- See Also:
List.add(int,Object)
-
addParam
public void addParam(int pos, java.lang.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, java.lang.String type)
Change a parameter type of this method.- See Also:
List.set(int,Object)
-
setParam
public void setParam(int pos, java.lang.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 theAttributes
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 theAttributes
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 theAttributes
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 theAttributes
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 aBCVisitor
, 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 interfaceVisitAcceptor
-
-