public abstract class AstMethod extends Object implements IMethod
Modifier and Type | Class and Description |
---|---|
static interface |
AstMethod.DebuggingInformation |
static interface |
AstMethod.LexicalInformation
lexical access information for some entity scope.
|
static class |
AstMethod.LexicalParent
Parents of this method with respect to lexical scoping, that is, methods
containing state possibly referenced lexically in this method
|
static interface |
AstMethod.Retranslatable |
IMethod.SourcePosition
ContextItem.Value<T>
Modifier | Constructor and Description |
---|---|
protected |
AstMethod(IClass cls,
Collection qualifiers,
AbstractCFG cfg,
SymbolTable symtab,
MethodReference ref,
boolean hasCatchBlock,
Map<IBasicBlock,TypeReference[]> caughtTypes,
boolean hasMonitorOp,
AstTranslator.AstLexicalInformation lexicalInfo,
AstMethod.DebuggingInformation debugInfo,
Collection<Annotation> annotations) |
protected |
AstMethod(IClass cls,
Collection qualifiers,
MethodReference ref,
Collection<Annotation> annotations) |
Modifier and Type | Method and Description |
---|---|
Map<IBasicBlock,TypeReference[]> |
catchTypes() |
AbstractCFG |
cfg() |
AstMethod.LexicalInformation |
cloneLexicalInfo() |
AstMethod.DebuggingInformation |
debugInfo() |
Collection<Annotation> |
getAnnotations()
Get the annotations on this member, if any
|
ControlFlowGraph |
getControlFlowGraph() |
IClass |
getDeclaringClass()
Return the object that represents the declaring class
for this member.
|
Descriptor |
getDescriptor()
something like: (IILjava.lang.String;SLjava.sql.Date;)Ljava.lang.Integer;
|
int |
getLineNumber(int instructionIndex)
END Custom change: precise bytecode positions
|
Atom |
getName() |
int |
getNumberOfParameters()
Method getNumberOfParameters.
|
IMethod.SourcePosition |
getParameterSourcePosition(int paramNum)
BEGIN Custom change: precise bytecode positions
|
abstract AstMethod.LexicalParent[] |
getParents() |
MethodReference |
getReference() |
TypeReference |
getReturnType() |
Selector |
getSelector()
something like: foo(Ljava/langString;)Ljava/lang/Class;
|
String |
getSignature()
something like: com.foo.bar.createLargeOrder(IILjava.lang.String;SLjava.sql.Date;)Ljava.lang.Integer;
|
CAstSourcePositionMap.Position |
getSourcePosition() |
CAstSourcePositionMap.Position |
getSourcePosition(int instructionIndex) |
boolean |
hasCatchBlock() |
boolean |
hasExceptionHandler() |
boolean |
hasMonitorOp() |
boolean |
isAbstract()
Is this method abstract?
|
boolean |
isBridge()
Is this method a bridge method? See JLS 3rd Edition 15.12.4.5
|
boolean |
isClinit()
Is this method a class initializer?
|
boolean |
isFinal()
Is this method final?
|
boolean |
isInit()
Is this method an object initializer?
|
boolean |
isNative()
Is this method native?
|
boolean |
isPrivate()
Is this method private?
|
boolean |
isProtected()
Is this method protected?
|
boolean |
isPublic()
Is this method public?
|
boolean |
isStatic()
Is this member static?
|
boolean |
isSynchronized()
Is this method synchronized?
|
boolean |
isSynthetic()
Did someone synthesize this method? (As opposed to reading it from a class file)
|
AstMethod.LexicalInformation |
lexicalInfo() |
SymbolTable |
symbolTable() |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getDeclaredExceptions, getLocalVariableName, getParameterType, hasLocalVariableTable
getClassHierarchy
protected final IClass cls
protected AstMethod(IClass cls, Collection qualifiers, AbstractCFG cfg, SymbolTable symtab, MethodReference ref, boolean hasCatchBlock, Map<IBasicBlock,TypeReference[]> caughtTypes, boolean hasMonitorOp, AstTranslator.AstLexicalInformation lexicalInfo, AstMethod.DebuggingInformation debugInfo, Collection<Annotation> annotations)
protected AstMethod(IClass cls, Collection qualifiers, MethodReference ref, Collection<Annotation> annotations)
public AbstractCFG cfg()
public boolean hasCatchBlock()
public SymbolTable symbolTable()
public Map<IBasicBlock,TypeReference[]> catchTypes()
public AstMethod.LexicalInformation cloneLexicalInfo()
public AstMethod.LexicalInformation lexicalInfo()
public AstMethod.DebuggingInformation debugInfo()
public Collection<Annotation> getAnnotations()
IMember
getAnnotations
in interface IMember
public abstract AstMethod.LexicalParent[] getParents()
public IClass getDeclaringClass()
IMember
getDeclaringClass
in interface IMember
public String getSignature()
IMethod
getSignature
in interface IMethod
public Selector getSelector()
IMethod
getSelector
in interface IMethod
public boolean isClinit()
IMethod
public boolean isInit()
IMethod
public Atom getName()
public Descriptor getDescriptor()
IMethod
getDescriptor
in interface IMethod
public MethodReference getReference()
getReference
in interface IMethod
public TypeReference getReturnType()
getReturnType
in interface IMethod
public boolean isStatic()
IMember
public boolean isSynchronized()
IMethod
isSynchronized
in interface IMethod
public boolean isNative()
IMethod
public boolean isSynthetic()
IMethod
isSynthetic
in interface IMethod
public boolean isAbstract()
IMethod
isAbstract
in interface IMethod
public boolean isPrivate()
IMethod
public boolean isProtected()
IMethod
isProtected
in interface IMethod
public boolean isPublic()
IMethod
public boolean isFinal()
IMethod
public boolean isBridge()
IMethod
public ControlFlowGraph getControlFlowGraph()
public boolean hasExceptionHandler()
hasExceptionHandler
in interface IMethod
public boolean hasMonitorOp()
public int getNumberOfParameters()
IMethod
getNumberOfParameters
in interface IMethod
public IMethod.SourcePosition getParameterSourcePosition(int paramNum) throws InvalidClassFileException
getParameterSourcePosition
in interface IMethod
InvalidClassFileException
public int getLineNumber(int instructionIndex)
getLineNumber
in interface IMethod
public CAstSourcePositionMap.Position getSourcePosition()
public CAstSourcePositionMap.Position getSourcePosition(int instructionIndex)
getSourcePosition
in interface IMethod