Uses of Interface
com.pnfsoftware.jeb.core.units.code.java.IJavaStatement
Packages that use IJavaStatement
Package
Description
Types used to manipulate
dexdec
-generated (Dex decompiler) Java Abstract Syntax Tree
(AST) objects.-
Uses of IJavaStatement in com.pnfsoftware.jeb.core.units.code.java
Subinterfaces of IJavaStatement in com.pnfsoftware.jeb.core.units.code.javaModifier and TypeInterfaceDescriptioninterface
Java AST interface to represent assignments.interface
Java AST interface to represent a sequence ofstatements
.interface
Java AST interface to represent abreak
statement.interface
Java AST interface to represent a method invocation.interface
Java AST interface to represent compound statements.interface
Java AST interface to represent acontinue
statement.interface
Java AST interface to represent a definition statement.interface
Java AST interface to represent ado-while
loop statement.interface
Java AST interface used to represent a standard for loop statement.interface
Java AST interface used to represent a for-each (Java 5+) loop statement.interface
Java AST interface to represent a "goto" statement.interface
Java AST interface to represent a conditional "if" statement.interface
Java AST interface to represent labels.interface
Java AST interface to represent a special "monitor" statement.interface
Java AST interface to represent the instantiation of a new non-array object.interface
Java AST interface to represent the instantiation of an array object.interface
Java AST interface to represent return statements of methods.interface
Java AST interface to representswitch
statements.interface
Java AST interface to represent a synchronized block of code.interface
High-level interface extended by Return and Throw statements.interface
Java AST interface to represent throw statements.interface
Java AST interface to represent try-catch elements.interface
Java AST interface to representwhile
loop statements.Methods in com.pnfsoftware.jeb.core.units.code.java that return IJavaStatementModifier and TypeMethodDescriptionIJavaStatement.duplicate()
IJavaBlock.get
(int index) Get the statement at a given index.static IJavaStatement
JUtil.getFirstRealStatement
(IJavaBlock b, int i) This convenience method attempts to determine the next "real" statement to be executed in the block, starting at the provided index 'i'.IJavaFor.getInitializer()
Get the initializer statement.IJavaBlock.getLast()
Get the last statement from the block.IJavaFor.getPostStatement()
Get the post-iteration statement.IJavaBlock.remove
(int index) Pull a statement from the block.IJavaBlock.removeLast()
Methods in com.pnfsoftware.jeb.core.units.code.java that return types with arguments of type IJavaStatementModifier and TypeMethodDescriptionIJavaCompound.generateFlatList()
Generate a flat list of AST and pseudo-AST elements that make up this block.static List<IJavaStatement>
JUtil.getGotos
(IJavaLabel targetLabel, List<IJavaStatement> flatlist) IJavaMethod.getStatements()
Walk the tree and get the ordered list of all (non-pseudo) statements that make up the method.IJavaMethod.toFlatList()
Methods in com.pnfsoftware.jeb.core.units.code.java with parameters of type IJavaStatementModifier and TypeMethodDescriptionvoid
IJavaBlock.add
(IJavaStatement stm) Append a statement to this block.static boolean
JUtil.canThrow
(IJavaStatement stm) static IJavaLabel
JUtil.checkIfGoto
(IJavaStatement stm) Check that the statement is a simple "if(...) { goto x; }" and if so, returns "x"IJavaElementFactory.createBlock
(IJavaStatement firstStatement) IJavaElementFactory.createFor
(IJavaStatement pre, IJavaPredicate p, IJavaStatement post, IJavaBlock b) boolean
IJavaMethod.deleteStatement
(IJavaStatement stm) Delete a statement by reference.static IJavaLabel
JUtil.getGotoLabel
(IJavaStatement stm) static IJavaExpression
JUtil.getMonitorEnter
(IJavaStatement stm) static IJavaExpression
JUtil.getMonitorExit
(IJavaStatement stm) void
IJavaBlock.insert
(int index, IJavaStatement stm) Insert a statement at the given index.boolean
IJavaCompound.insertAt
(int target_offset, IJavaStatement insert_stm) Insert a statement at a particular offset within the AST.static boolean
JUtil.isDeclarationOrDefinition
(IJavaStatement stm) Determine whether the statement defines an identifier.static boolean
JUtil.isFlowBreaker
(IJavaStatement stm) static boolean
JUtil.isGotoTo
(IJavaStatement stm, IJavaLabel target) Check that the statement is a "goto target;"static boolean
JUtil.isIf
(IJavaStatement stm) Determine whether a statement is a simple if: if(...){...}.static boolean
JUtil.isIfContinue
(IJavaStatement stm) static boolean
JUtil.isIfElse
(IJavaStatement stm) Determine whether a statement is like: if(...){...}else{...} which is the if-statement with 2 blocks: the main case block and the default block.static IJavaLabel
JUtil.isIfGoto
(IJavaStatement stm) Determine if the provided statement is likeif(COND){goto LABEL;}
and if so, return the label.static boolean
JUtil.isIfNoElse
(IJavaStatement stm) Determine whether a statement is like: if(...){ }[else if(...){}]*static boolean
JUtil.isNonCompoundFlowBreaker
(IJavaStatement stm) Determine whether the provided statement is a return, throw, goto, break, or continue.static boolean
JUtil.isOrContainsLabel
(IJavaStatement stm) Recursively determine if the statement is or contains a Label.static boolean
JUtil.isSimpleBreak
(IJavaStatement stm) static boolean
JUtil.isSimpleContinue
(IJavaStatement stm) static boolean
JUtil.isThrow
(IJavaStatement stm, IJavaExpression expectedThrown) static IJavaExpression
JUtil.isThrowLike
(IJavaStatement stm, List<IJavaStatement> flatlist) abstract int
AbstractJStatementOptimizer.optimizeStatement
(IJavaStatement stm) Optimize an AST statement.boolean
IJavaBlock.remove
(IJavaStatement stm) Remove a statement from the block.void
IJavaBlock.set
(int index, IJavaStatement stm) Replace a statement by another statement.void
IJavaFor.setInitializer
(IJavaStatement initializer) Set the loop initializer statement.void
IJavaFor.setPostStatement
(IJavaStatement poststm) Set the loop post-iteration statement.Method parameters in com.pnfsoftware.jeb.core.units.code.java with type arguments of type IJavaStatementModifier and TypeMethodDescriptionvoid
IJavaMethod.fromFlatList
(List<IJavaStatement> list) static List<IJavaStatement>
JUtil.getGotos
(IJavaLabel targetLabel, List<IJavaStatement> flatlist) static IJavaExpression
JUtil.isThrowLike
(IJavaStatement stm, List<IJavaStatement> flatlist) static int
JUtil.removeStatementsDeep
(IJavaBlock b, Predicate<IJavaStatement> checker)