public class MethodNode extends NotificationAttrNode implements IMethodDetails, ILoadable, ICodeNode, java.lang.Comparable<MethodNode>
ICodeAnnotation.AnnType| Modifier and Type | Method and Description |
|---|---|
ExceptionHandler |
addExceptionHandler(ExceptionHandler handler) |
static MethodNode |
build(ClassNode classNode,
jadx.api.plugins.input.data.IMethodData methodData) |
boolean |
clearExceptionHandlers() |
int |
compareTo(@NotNull MethodNode o) |
boolean |
containsGenericArgs() |
long |
countInsns()
Calculate instructions count at currect stage
|
boolean |
equals(java.lang.Object obj) |
void |
finishBasicBlocks() |
AccessInfo |
getAccessFlags() |
java.lang.String |
getAlias() |
java.util.List<RegisterArg> |
getAllArgRegs() |
java.util.List<LoopInfo> |
getAllLoopsForBlock(BlockNode block) |
ICodeAnnotation.AnnType |
getAnnType() |
java.util.List<RegisterArg> |
getArgRegs() |
int |
getArgsStartReg() |
@NotNull java.util.List<ArgType> |
getArgTypes() |
java.util.List<BlockNode> |
getBasicBlocks() |
jadx.api.plugins.input.data.ICodeReader |
getCodeReader() |
@Nullable jadx.api.plugins.input.data.IDebugInfo |
getDebugInfo() |
BlockNode |
getEnterBlock() |
java.lang.Iterable<ExceptionHandler> |
getExceptionHandlers() |
int |
getExceptionHandlersCount() |
BlockNode |
getExitBlock() |
java.lang.String |
getInputFileName() |
int |
getInsnsCount()
Raw instructions count in method bytecode
|
InsnNode[] |
getInstructions() |
JavaMethod |
getJavaNode() |
@Nullable LoopInfo |
getLoopForBlock(BlockNode block) |
java.lang.Iterable<LoopInfo> |
getLoops() |
int |
getLoopsCount() |
long |
getMethodCodeOffset() |
MethodInfo |
getMethodInfo() |
java.lang.String |
getName() |
int |
getNextBlockCId() |
ClassNode |
getParentClass() |
java.util.List<BlockNode> |
getPreExitBlocks() |
int |
getRawAccessFlags() |
Region |
getRegion() |
int |
getRegsCount() |
@NotNull ArgType |
getReturnType() |
java.util.List<SSAVar> |
getSVars() |
@Nullable RegisterArg |
getThisArg() |
java.util.List<ArgType> |
getThrows() |
ClassNode |
getTopParentClass() |
java.util.List<ArgType> |
getTypeParameters() |
java.util.List<MethodNode> |
getUseIn() |
int |
hashCode() |
void |
ignoreMethod() |
void |
initBasicBlocks() |
boolean |
isArgsOverloaded()
Return true if exists method with same name and arguments count
|
boolean |
isConstructor() |
boolean |
isDefaultConstructor() |
boolean |
isLoaded() |
boolean |
isNoCode() |
boolean |
isNoExceptionHandlers() |
boolean |
isPreExitBlocks(BlockNode block) |
boolean |
isVarArg() |
boolean |
isVoidReturn() |
void |
load()
On demand loading
|
SSAVar |
makeNewSVar(int regNum,
int version,
@NotNull RegisterArg assignArg) |
SSAVar |
makeNewSVar(@NotNull RegisterArg assignArg) |
void |
registerLoop(LoopInfo loop) |
void |
reload() |
void |
removeSVar(SSAVar var) |
RootNode |
root() |
void |
setAccessFlags(AccessInfo newAccessFlags) |
void |
setBasicBlocks(java.util.List<BlockNode> blocks) |
void |
setEnterBlock(BlockNode enterBlock) |
void |
setExitBlock(BlockNode exitBlock) |
void |
setJavaNode(JavaMethod javaNode) |
void |
setRegion(Region region) |
void |
setUseIn(java.util.List<MethodNode> useIn) |
void |
skipFirstArgument() |
java.lang.String |
toAttrString() |
java.lang.String |
toString() |
java.lang.String |
typeName() |
void |
unload()
Free resources
|
void |
unloadInsnArr() |
void |
updateArgTypes(java.util.List<ArgType> newArgTypes,
java.lang.String comment) |
void |
updateReturnType(ArgType type) |
void |
updateTypeParameters(java.util.List<ArgType> typeParameters) |
void |
updateTypes(java.util.List<ArgType> argTypes,
ArgType retType) |
addDebugComment, addError, addInfoComment, addWarn, addWarnComment, addWarnComment, checkCommentsLevel, getCommentsLeveladdSourceLineFrom, copyLines, getDefPosition, getSourceLine, setDefPosition, setSourceLineadd, addAttr, addAttr, addAttr, addAttrs, clearAttributes, contains, contains, copyAttributeFrom, copyAttributesFrom, get, getAll, getAnnotation, getAttributesString, getAttributesStringsList, isAttrStorageEmpty, remove, remove, removeAttr, rewriteAttributeFrom, unloadAttributesclone, finalize, getClass, notify, notifyAll, wait, wait, waitgetAttrTypeadd, addAttr, addAttr, addAttrs, clearAttributes, contains, contains, copyAttributeFrom, copyAttributesFrom, get, getAll, getAnnotation, getAttributesString, getAttributesStringsList, isAttrStorageEmpty, remove, remove, removeAttr, rewriteAttributeFromgetDefPosition, setDefPositionpublic static MethodNode build(ClassNode classNode, jadx.api.plugins.input.data.IMethodData methodData)
public void unload()
ILoadablepublic void updateTypeParameters(java.util.List<ArgType> typeParameters)
public void load()
throws DecodeException
ILoadableload in interface ILoadableDecodeExceptionpublic void reload()
@NotNull public @NotNull java.util.List<ArgType> getArgTypes()
getArgTypes in interface IMethodDetailspublic void updateArgTypes(java.util.List<ArgType> newArgTypes, java.lang.String comment)
public boolean containsGenericArgs()
@NotNull public @NotNull ArgType getReturnType()
getReturnType in interface IMethodDetailspublic void updateReturnType(ArgType type)
public boolean isVoidReturn()
public java.util.List<RegisterArg> getArgRegs()
public java.util.List<RegisterArg> getAllArgRegs()
@Nullable public @Nullable RegisterArg getThisArg()
public void skipFirstArgument()
public java.util.List<ArgType> getTypeParameters()
getTypeParameters in interface IMethodDetailspublic java.lang.String getName()
public java.lang.String getAlias()
public ClassNode getParentClass()
public ClassNode getTopParentClass()
public boolean isNoCode()
public InsnNode[] getInstructions()
public void unloadInsnArr()
public void initBasicBlocks()
public void finishBasicBlocks()
public java.util.List<BlockNode> getBasicBlocks()
public void setBasicBlocks(java.util.List<BlockNode> blocks)
public int getNextBlockCId()
public BlockNode getEnterBlock()
public void setEnterBlock(BlockNode enterBlock)
public BlockNode getExitBlock()
public void setExitBlock(BlockNode exitBlock)
public java.util.List<BlockNode> getPreExitBlocks()
public boolean isPreExitBlocks(BlockNode block)
public void registerLoop(LoopInfo loop)
public int getLoopsCount()
public java.lang.Iterable<LoopInfo> getLoops()
public ExceptionHandler addExceptionHandler(ExceptionHandler handler)
public boolean clearExceptionHandlers()
public java.lang.Iterable<ExceptionHandler> getExceptionHandlers()
public boolean isNoExceptionHandlers()
public int getExceptionHandlersCount()
public java.util.List<ArgType> getThrows()
getThrows in interface IMethodDetailspublic boolean isArgsOverloaded()
public boolean isConstructor()
public boolean isDefaultConstructor()
public int getRegsCount()
public int getArgsStartReg()
public SSAVar makeNewSVar(@NotNull @NotNull RegisterArg assignArg)
public SSAVar makeNewSVar(int regNum, int version, @NotNull @NotNull RegisterArg assignArg)
public void removeSVar(SSAVar var)
public java.util.List<SSAVar> getSVars()
public int getRawAccessFlags()
getRawAccessFlags in interface IMethodDetailspublic AccessInfo getAccessFlags()
getAccessFlags in interface ICodeNodepublic void setAccessFlags(AccessInfo newAccessFlags)
setAccessFlags in interface ICodeNodepublic Region getRegion()
public void setRegion(Region region)
public java.lang.String getInputFileName()
getInputFileName in interface IDexNodepublic MethodInfo getMethodInfo()
getMethodInfo in interface IMethodDetailspublic long getMethodCodeOffset()
@Nullable public @Nullable jadx.api.plugins.input.data.IDebugInfo getDebugInfo()
public void ignoreMethod()
public long countInsns()
public int getInsnsCount()
public boolean isVarArg()
isVarArg in interface IMethodDetailspublic boolean isLoaded()
public jadx.api.plugins.input.data.ICodeReader getCodeReader()
public java.util.List<MethodNode> getUseIn()
getUseIn in interface IUsageInfoNodepublic void setUseIn(java.util.List<MethodNode> useIn)
public JavaMethod getJavaNode()
public void setJavaNode(JavaMethod javaNode)
public ICodeAnnotation.AnnType getAnnType()
getAnnType in interface ICodeAnnotationpublic int hashCode()
hashCode in class java.lang.Objectpublic boolean equals(java.lang.Object obj)
equals in class java.lang.Objectpublic int compareTo(@NotNull
@NotNull MethodNode o)
compareTo in interface java.lang.Comparable<MethodNode>public java.lang.String toAttrString()
toAttrString in interface jadx.api.plugins.input.data.attributes.IJadxAttributetoAttrString in interface IMethodDetailspublic java.lang.String toString()
toString in class java.lang.Object