Class MethodNode

    • Method Detail

      • build

        public static MethodNode build​(ClassNode classNode,
                                       jadx.api.plugins.input.data.IMethodData methodData)
      • unload

        public void unload()
        Description copied from interface: ILoadable
        Free resources
        Specified by:
        unload in interface ILoadable
      • updateTypes

        public void updateTypes​(java.util.List<ArgType> argTypes,
                                ArgType retType)
      • updateTypeParameters

        public void updateTypeParameters​(java.util.List<ArgType> typeParameters)
      • reload

        public void reload()
      • updateArgTypes

        public void updateArgTypes​(java.util.List<ArgType> newArgTypes,
                                   java.lang.String comment)
      • containsGenericArgs

        public boolean containsGenericArgs()
      • updateReturnType

        public void updateReturnType​(ArgType type)
      • isVoidReturn

        public boolean isVoidReturn()
      • collectArgNodes

        public java.util.List<VarNode> collectArgNodes()
      • getArgRegs

        public java.util.List<RegisterArg> getArgRegs()
      • getAllArgRegs

        public java.util.List<RegisterArg> getAllArgRegs()
      • getThisArg

        @Nullable
        public @Nullable RegisterArg getThisArg()
      • skipFirstArgument

        public void skipFirstArgument()
      • getName

        public java.lang.String getName()
      • getAlias

        public java.lang.String getAlias()
      • getParentClass

        public ClassNode getParentClass()
      • getTopParentClass

        public ClassNode getTopParentClass()
      • isNoCode

        public boolean isNoCode()
      • getInstructions

        public InsnNode[] getInstructions()
      • unloadInsnArr

        public void unloadInsnArr()
      • initBasicBlocks

        public void initBasicBlocks()
      • finishBasicBlocks

        public void finishBasicBlocks()
      • getBasicBlocks

        public java.util.List<BlockNode> getBasicBlocks()
      • setBasicBlocks

        public void setBasicBlocks​(java.util.List<BlockNode> blocks)
      • updateBlockPositions

        public void updateBlockPositions()
      • getNextBlockCId

        public int getNextBlockCId()
      • getEnterBlock

        public BlockNode getEnterBlock()
      • setEnterBlock

        public void setEnterBlock​(BlockNode enterBlock)
      • getExitBlock

        public BlockNode getExitBlock()
      • setExitBlock

        public void setExitBlock​(BlockNode exitBlock)
      • getPreExitBlocks

        public java.util.List<BlockNode> getPreExitBlocks()
      • isPreExitBlock

        public boolean isPreExitBlock​(BlockNode block)
      • resetLoops

        public void resetLoops()
      • registerLoop

        public void registerLoop​(LoopInfo loop)
      • getLoopForBlock

        @Nullable
        public @Nullable LoopInfo getLoopForBlock​(BlockNode block)
      • getAllLoopsForBlock

        public java.util.List<LoopInfo> getAllLoopsForBlock​(BlockNode block)
      • getLoopsCount

        public int getLoopsCount()
      • getLoops

        public java.lang.Iterable<LoopInfo> getLoops()
      • clearExceptionHandlers

        public boolean clearExceptionHandlers()
      • getExceptionHandlers

        public java.lang.Iterable<ExceptionHandler> getExceptionHandlers()
      • isNoExceptionHandlers

        public boolean isNoExceptionHandlers()
      • getExceptionHandlersCount

        public int getExceptionHandlersCount()
      • isArgsOverloaded

        public boolean isArgsOverloaded()
        Return true if exists method with same name and arguments count
      • isConstructor

        public boolean isConstructor()
      • isDefaultConstructor

        public boolean isDefaultConstructor()
      • getRegsCount

        public int getRegsCount()
      • getArgsStartReg

        public int getArgsStartReg()
      • makeSyntheticRegArg

        public RegisterArg makeSyntheticRegArg​(ArgType type)
        Create new fake register arg.
      • makeSyntheticRegArg

        public RegisterArg makeSyntheticRegArg​(ArgType type,
                                               java.lang.String name)
      • makeNewSVar

        public SSAVar makeNewSVar​(@NotNull
                                  @NotNull RegisterArg assignArg)
      • makeNewSVar

        public SSAVar makeNewSVar​(int regNum,
                                  int version,
                                  @NotNull
                                  @NotNull RegisterArg assignArg)
      • removeSVar

        public void removeSVar​(SSAVar var)
      • getSVars

        public java.util.List<SSAVar> getSVars()
      • getRegion

        public Region getRegion()
      • setRegion

        public void setRegion​(Region region)
      • typeName

        public java.lang.String typeName()
        Specified by:
        typeName in interface IDexNode
      • getMethodCodeOffset

        public long getMethodCodeOffset()
      • getDebugInfo

        @Nullable
        public @Nullable jadx.api.plugins.input.data.IDebugInfo getDebugInfo()
      • ignoreMethod

        public void ignoreMethod()
      • rename

        public void rename​(java.lang.String newName)
        Specified by:
        rename in interface IRenameNode
      • countInsns

        public long countInsns()
        Calculate instructions count at current stage
      • getInsnsCount

        public int getInsnsCount()
        Raw instructions count in method bytecode
      • getCodeStr

        public java.lang.String getCodeStr()
        Returns method code with comments and annotations
      • isLoaded

        public boolean isLoaded()
      • getCodeReader

        @Nullable
        public @Nullable jadx.api.plugins.input.data.ICodeReader getCodeReader()
      • setUseIn

        public void setUseIn​(java.util.List<MethodNode> useIn)
      • setJavaNode

        @Internal
        public void setJavaNode​(JavaMethod javaNode)
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • equals

        public boolean equals​(java.lang.Object obj)
        Overrides:
        equals in class java.lang.Object
      • compareTo

        public int compareTo​(@NotNull
                             @NotNull MethodNode o)
        Specified by:
        compareTo in interface java.lang.Comparable<MethodNode>
      • toAttrString

        public java.lang.String toAttrString()
        Specified by:
        toAttrString in interface jadx.api.plugins.input.data.attributes.IJadxAttribute
        Specified by:
        toAttrString in interface IMethodDetails
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object