soot.dava.toolkits.base.AST.transformations
Class IfElseSplitter

java.lang.Object
  extended bysoot.dava.toolkits.base.AST.analysis.AnalysisAdapter
      extended bysoot.dava.toolkits.base.AST.analysis.DepthFirstAdapter
          extended bysoot.dava.toolkits.base.AST.transformations.IfElseSplitter
All Implemented Interfaces:
Analysis

public class IfElseSplitter
extends DepthFirstAdapter


Field Summary
static boolean DEBUG
           
 
Constructor Summary
IfElseSplitter()
           
IfElseSplitter(boolean verbose)
           
 
Method Summary
 boolean bodyTargetsLabel(SETNodeLabel label, List body)
           
 Stmt getLastStmt(List body)
           
 void inASTMethodNode(ASTMethodNode node)
           
 void outASTIfElseNode(ASTIfElseNode node)
           
 void outASTMethodNode(ASTMethodNode a)
           
 boolean tryBodyPattern(List body, SETNodeLabel label, List otherBody)
           
 
Methods inherited from class soot.dava.toolkits.base.AST.analysis.DepthFirstAdapter
caseArrayRef, caseASTAndCondition, caseASTBinaryCondition, caseASTDoWhileNode, caseASTForLoopNode, caseASTIfElseNode, caseASTIfNode, caseASTLabeledBlockNode, caseASTMethodNode, caseASTOrCondition, caseASTStatementSequenceNode, caseASTSwitchNode, caseASTSynchronizedBlockNode, caseASTTryNode, caseASTUnaryCondition, caseASTUnconditionalLoopNode, caseASTWhileNode, caseBinopExpr, caseCastExpr, caseDefinitionStmt, caseDVariableDeclarationStmt, caseExpr, caseExprOrRefValueBox, caseInstanceFieldRef, caseInstanceInvokeExpr, caseInstanceOfExpr, caseInvokeExpr, caseInvokeStmt, caseNewArrayExpr, caseNewMultiArrayExpr, caseRef, caseReturnStmt, caseStaticFieldRef, caseStmt, caseThrowStmt, caseType, caseUnopExpr, caseValue, debug, decideCaseExpr, decideCaseExprOrRef, decideCaseRef, inArrayRef, inASTAndCondition, inASTBinaryCondition, inASTDoWhileNode, inASTForLoopNode, inASTIfElseNode, inASTIfNode, inASTLabeledBlockNode, inASTOrCondition, inASTStatementSequenceNode, inASTSwitchNode, inASTSynchronizedBlockNode, inASTTryNode, inASTUnaryCondition, inASTUnconditionalLoopNode, inASTWhileNode, inBinopExpr, inCastExpr, inDefinitionStmt, inDVariableDeclarationStmt, inExpr, inExprOrRefValueBox, inInstanceFieldRef, inInstanceInvokeExpr, inInstanceOfExpr, inInvokeExpr, inInvokeStmt, inNewArrayExpr, inNewMultiArrayExpr, inRef, inReturnStmt, inStaticFieldRef, inStmt, inThrowStmt, inType, inUnopExpr, inValue, normalRetrieving, outArrayRef, outASTAndCondition, outASTBinaryCondition, outASTDoWhileNode, outASTForLoopNode, outASTIfNode, outASTLabeledBlockNode, outASTOrCondition, outASTStatementSequenceNode, outASTSwitchNode, outASTSynchronizedBlockNode, outASTTryNode, outASTUnaryCondition, outASTUnconditionalLoopNode, outASTWhileNode, outBinopExpr, outCastExpr, outDefinitionStmt, outDVariableDeclarationStmt, outExpr, outExprOrRefValueBox, outInstanceFieldRef, outInstanceInvokeExpr, outInstanceOfExpr, outInvokeExpr, outInvokeStmt, outNewArrayExpr, outNewMultiArrayExpr, outRef, outReturnStmt, outStaticFieldRef, outStmt, outThrowStmt, outType, outUnopExpr, outValue
 
Methods inherited from class soot.dava.toolkits.base.AST.analysis.AnalysisAdapter
defaultCase
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEBUG

public static boolean DEBUG
Constructor Detail

IfElseSplitter

public IfElseSplitter()

IfElseSplitter

public IfElseSplitter(boolean verbose)
Method Detail

inASTMethodNode

public void inASTMethodNode(ASTMethodNode node)
Overrides:
inASTMethodNode in class DepthFirstAdapter

outASTMethodNode

public void outASTMethodNode(ASTMethodNode a)
Overrides:
outASTMethodNode in class DepthFirstAdapter

outASTIfElseNode

public void outASTIfElseNode(ASTIfElseNode node)
Overrides:
outASTIfElseNode in class DepthFirstAdapter

tryBodyPattern

public boolean tryBodyPattern(List body,
                              SETNodeLabel label,
                              List otherBody)

bodyTargetsLabel

public boolean bodyTargetsLabel(SETNodeLabel label,
                                List body)

getLastStmt

public Stmt getLastStmt(List body)