soot.dava.toolkits.base.AST.analysis
Class DepthFirstAdapter

java.lang.Object
  extended by soot.dava.toolkits.base.AST.analysis.AnalysisAdapter
      extended by soot.dava.toolkits.base.AST.analysis.DepthFirstAdapter
All Implemented Interfaces:
Analysis
Direct Known Subclasses:
AllDefinitionsFinder, AllVariableUses, AndAggregator, ASTCleaner, ASTCleanerTwo, ASTParentNodeFinder, ASTUsesAndDefs, BooleanConditionSimplification, ClosestAbruptTargetFinder, CopyPropagation, CPApplication, DecrementIncrementStmtCreation, DeInliningFinalFields, EliminateConditions, ExtraLabelNamesRemover, ForLoopCreator, IfElseSplitter, infoGatheringAnalysis, InitializationDeclarationShortcut, LabelToNodeMapper, LocalVariableCleaner, LoopStrengthener, MethodCallFinder, NewStringBufferSimplification, OrAggregatorFour, OrAggregatorOne, OrAggregatorTwo, PushLabeledBlockIn, ShortcutArrayInit, ShortcutIfGenerator, SimplifyConditions, SimplifyExpressions, StaticDefinitionFinder, SuperFirstStmtHandler, TypeCastingError, UnreachableCodeEliminator, UselessAbruptStmtRemover, UselessLabeledBlockRemover

public class DepthFirstAdapter
extends AnalysisAdapter


Field Summary
 boolean DEBUG
           
 
Constructor Summary
DepthFirstAdapter()
           
DepthFirstAdapter(boolean verbose)
           
 
Method Summary
 void caseArrayRef(ArrayRef ar)
           
 void caseASTAndCondition(ASTAndCondition ac)
           
 void caseASTBinaryCondition(ASTBinaryCondition bc)
           
 void caseASTDoWhileNode(ASTDoWhileNode node)
           
 void caseASTForLoopNode(ASTForLoopNode node)
           
 void caseASTIfElseNode(ASTIfElseNode node)
           
 void caseASTIfNode(ASTIfNode node)
           
 void caseASTLabeledBlockNode(ASTLabeledBlockNode node)
           
 void caseASTMethodNode(ASTMethodNode node)
           
 void caseASTOrCondition(ASTOrCondition oc)
           
 void caseASTStatementSequenceNode(ASTStatementSequenceNode node)
           
 void caseASTSwitchNode(ASTSwitchNode node)
           
 void caseASTSynchronizedBlockNode(ASTSynchronizedBlockNode node)
           
 void caseASTTryNode(ASTTryNode node)
           
 void caseASTUnaryCondition(ASTUnaryCondition uc)
           
 void caseASTUnconditionalLoopNode(ASTUnconditionalLoopNode node)
           
 void caseASTWhileNode(ASTWhileNode node)
           
 void caseBinopExpr(BinopExpr be)
           
 void caseCastExpr(CastExpr ce)
           
 void caseDefinitionStmt(DefinitionStmt s)
           
 void caseDVariableDeclarationStmt(DVariableDeclarationStmt s)
           
 void caseExpr(Expr e)
           
 void caseExprOrRefValueBox(ValueBox vb)
           
 void caseInstanceFieldRef(InstanceFieldRef ifr)
           
 void caseInstanceInvokeExpr(InstanceInvokeExpr iie)
           
 void caseInstanceOfExpr(InstanceOfExpr ioe)
           
 void caseInvokeExpr(InvokeExpr ie)
           
 void caseInvokeStmt(InvokeStmt s)
           
 void caseNewArrayExpr(NewArrayExpr nae)
           
 void caseNewMultiArrayExpr(NewMultiArrayExpr nmae)
           
 void caseRef(Ref r)
           
 void caseReturnStmt(ReturnStmt s)
           
 void caseStaticFieldRef(StaticFieldRef sfr)
           
 void caseStmt(Stmt s)
           
 void caseThrowStmt(ThrowStmt s)
           
 void caseType(Type t)
           
 void caseUnopExpr(UnopExpr ue)
           
 void caseValue(Value v)
           
 void debug(String className, String methodName, String debug)
           
 void decideCaseExpr(Expr e)
           
 void decideCaseExprOrRef(Value v)
           
 void decideCaseRef(Ref r)
           
 void inArrayRef(ArrayRef ar)
           
 void inASTAndCondition(ASTAndCondition ac)
           
 void inASTBinaryCondition(ASTBinaryCondition bc)
           
 void inASTDoWhileNode(ASTDoWhileNode node)
           
 void inASTForLoopNode(ASTForLoopNode node)
           
 void inASTIfElseNode(ASTIfElseNode node)
           
 void inASTIfNode(ASTIfNode node)
           
 void inASTLabeledBlockNode(ASTLabeledBlockNode node)
           
 void inASTMethodNode(ASTMethodNode node)
           
 void inASTOrCondition(ASTOrCondition oc)
           
 void inASTStatementSequenceNode(ASTStatementSequenceNode node)
           
 void inASTSwitchNode(ASTSwitchNode node)
           
 void inASTSynchronizedBlockNode(ASTSynchronizedBlockNode node)
           
 void inASTTryNode(ASTTryNode node)
           
 void inASTUnaryCondition(ASTUnaryCondition uc)
           
 void inASTUnconditionalLoopNode(ASTUnconditionalLoopNode node)
           
 void inASTWhileNode(ASTWhileNode node)
           
 void inBinopExpr(BinopExpr be)
           
 void inCastExpr(CastExpr ce)
           
 void inDefinitionStmt(DefinitionStmt s)
           
 void inDVariableDeclarationStmt(DVariableDeclarationStmt s)
           
 void inExpr(Expr e)
           
 void inExprOrRefValueBox(ValueBox vb)
           
 void inInstanceFieldRef(InstanceFieldRef ifr)
           
 void inInstanceInvokeExpr(InstanceInvokeExpr iie)
           
 void inInstanceOfExpr(InstanceOfExpr ioe)
           
 void inInvokeExpr(InvokeExpr ie)
           
 void inInvokeStmt(InvokeStmt s)
           
 void inNewArrayExpr(NewArrayExpr nae)
           
 void inNewMultiArrayExpr(NewMultiArrayExpr nmae)
           
 void inRef(Ref r)
           
 void inReturnStmt(ReturnStmt s)
           
 void inStaticFieldRef(StaticFieldRef sfr)
           
 void inStmt(Stmt s)
           
 void inThrowStmt(ThrowStmt s)
           
 void inType(Type t)
           
 void inUnopExpr(UnopExpr ue)
           
 void inValue(Value v)
           
 void normalRetrieving(ASTNode node)
           
 void outArrayRef(ArrayRef ar)
           
 void outASTAndCondition(ASTAndCondition ac)
           
 void outASTBinaryCondition(ASTBinaryCondition bc)
           
 void outASTDoWhileNode(ASTDoWhileNode node)
           
 void outASTForLoopNode(ASTForLoopNode node)
           
 void outASTIfElseNode(ASTIfElseNode node)
           
 void outASTIfNode(ASTIfNode node)
           
 void outASTLabeledBlockNode(ASTLabeledBlockNode node)
           
 void outASTMethodNode(ASTMethodNode node)
           
 void outASTOrCondition(ASTOrCondition oc)
           
 void outASTStatementSequenceNode(ASTStatementSequenceNode node)
           
 void outASTSwitchNode(ASTSwitchNode node)
           
 void outASTSynchronizedBlockNode(ASTSynchronizedBlockNode node)
           
 void outASTTryNode(ASTTryNode node)
           
 void outASTUnaryCondition(ASTUnaryCondition uc)
           
 void outASTUnconditionalLoopNode(ASTUnconditionalLoopNode node)
           
 void outASTWhileNode(ASTWhileNode node)
           
 void outBinopExpr(BinopExpr be)
           
 void outCastExpr(CastExpr ce)
           
 void outDefinitionStmt(DefinitionStmt s)
           
 void outDVariableDeclarationStmt(DVariableDeclarationStmt s)
           
 void outExpr(Expr e)
           
 void outExprOrRefValueBox(ValueBox vb)
           
 void outInstanceFieldRef(InstanceFieldRef ifr)
           
 void outInstanceInvokeExpr(InstanceInvokeExpr iie)
           
 void outInstanceOfExpr(InstanceOfExpr ioe)
           
 void outInvokeExpr(InvokeExpr ie)
           
 void outInvokeStmt(InvokeStmt s)
           
 void outNewArrayExpr(NewArrayExpr nae)
           
 void outNewMultiArrayExpr(NewMultiArrayExpr nmae)
           
 void outRef(Ref r)
           
 void outReturnStmt(ReturnStmt s)
           
 void outStaticFieldRef(StaticFieldRef sfr)
           
 void outStmt(Stmt s)
           
 void outThrowStmt(ThrowStmt s)
           
 void outType(Type t)
           
 void outUnopExpr(UnopExpr ue)
           
 void outValue(Value v)
           
 
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 boolean DEBUG
Constructor Detail

DepthFirstAdapter

public DepthFirstAdapter()

DepthFirstAdapter

public DepthFirstAdapter(boolean verbose)
Method Detail

inASTMethodNode

public void inASTMethodNode(ASTMethodNode node)

outASTMethodNode

public void outASTMethodNode(ASTMethodNode node)

caseASTMethodNode

public void caseASTMethodNode(ASTMethodNode node)
Specified by:
caseASTMethodNode in interface Analysis
Overrides:
caseASTMethodNode in class AnalysisAdapter

inASTSynchronizedBlockNode

public void inASTSynchronizedBlockNode(ASTSynchronizedBlockNode node)

outASTSynchronizedBlockNode

public void outASTSynchronizedBlockNode(ASTSynchronizedBlockNode node)

caseASTSynchronizedBlockNode

public void caseASTSynchronizedBlockNode(ASTSynchronizedBlockNode node)
Specified by:
caseASTSynchronizedBlockNode in interface Analysis
Overrides:
caseASTSynchronizedBlockNode in class AnalysisAdapter

inASTLabeledBlockNode

public void inASTLabeledBlockNode(ASTLabeledBlockNode node)

outASTLabeledBlockNode

public void outASTLabeledBlockNode(ASTLabeledBlockNode node)

caseASTLabeledBlockNode

public void caseASTLabeledBlockNode(ASTLabeledBlockNode node)
Specified by:
caseASTLabeledBlockNode in interface Analysis
Overrides:
caseASTLabeledBlockNode in class AnalysisAdapter

inASTUnconditionalLoopNode

public void inASTUnconditionalLoopNode(ASTUnconditionalLoopNode node)

outASTUnconditionalLoopNode

public void outASTUnconditionalLoopNode(ASTUnconditionalLoopNode node)

caseASTUnconditionalLoopNode

public void caseASTUnconditionalLoopNode(ASTUnconditionalLoopNode node)
Specified by:
caseASTUnconditionalLoopNode in interface Analysis
Overrides:
caseASTUnconditionalLoopNode in class AnalysisAdapter

inASTSwitchNode

public void inASTSwitchNode(ASTSwitchNode node)

outASTSwitchNode

public void outASTSwitchNode(ASTSwitchNode node)

caseASTSwitchNode

public void caseASTSwitchNode(ASTSwitchNode node)
Specified by:
caseASTSwitchNode in interface Analysis
Overrides:
caseASTSwitchNode in class AnalysisAdapter

inASTIfNode

public void inASTIfNode(ASTIfNode node)

outASTIfNode

public void outASTIfNode(ASTIfNode node)

caseASTIfNode

public void caseASTIfNode(ASTIfNode node)
Specified by:
caseASTIfNode in interface Analysis
Overrides:
caseASTIfNode in class AnalysisAdapter

inASTIfElseNode

public void inASTIfElseNode(ASTIfElseNode node)

outASTIfElseNode

public void outASTIfElseNode(ASTIfElseNode node)

caseASTIfElseNode

public void caseASTIfElseNode(ASTIfElseNode node)
Specified by:
caseASTIfElseNode in interface Analysis
Overrides:
caseASTIfElseNode in class AnalysisAdapter

inASTWhileNode

public void inASTWhileNode(ASTWhileNode node)

outASTWhileNode

public void outASTWhileNode(ASTWhileNode node)

caseASTWhileNode

public void caseASTWhileNode(ASTWhileNode node)
Specified by:
caseASTWhileNode in interface Analysis
Overrides:
caseASTWhileNode in class AnalysisAdapter

inASTForLoopNode

public void inASTForLoopNode(ASTForLoopNode node)

outASTForLoopNode

public void outASTForLoopNode(ASTForLoopNode node)

caseASTForLoopNode

public void caseASTForLoopNode(ASTForLoopNode node)
Specified by:
caseASTForLoopNode in interface Analysis
Overrides:
caseASTForLoopNode in class AnalysisAdapter

inASTDoWhileNode

public void inASTDoWhileNode(ASTDoWhileNode node)

outASTDoWhileNode

public void outASTDoWhileNode(ASTDoWhileNode node)

caseASTDoWhileNode

public void caseASTDoWhileNode(ASTDoWhileNode node)
Specified by:
caseASTDoWhileNode in interface Analysis
Overrides:
caseASTDoWhileNode in class AnalysisAdapter

inASTTryNode

public void inASTTryNode(ASTTryNode node)

outASTTryNode

public void outASTTryNode(ASTTryNode node)

caseASTTryNode

public void caseASTTryNode(ASTTryNode node)
Specified by:
caseASTTryNode in interface Analysis
Overrides:
caseASTTryNode in class AnalysisAdapter

inASTUnaryCondition

public void inASTUnaryCondition(ASTUnaryCondition uc)

outASTUnaryCondition

public void outASTUnaryCondition(ASTUnaryCondition uc)

caseASTUnaryCondition

public void caseASTUnaryCondition(ASTUnaryCondition uc)
Specified by:
caseASTUnaryCondition in interface Analysis
Overrides:
caseASTUnaryCondition in class AnalysisAdapter

inASTBinaryCondition

public void inASTBinaryCondition(ASTBinaryCondition bc)

outASTBinaryCondition

public void outASTBinaryCondition(ASTBinaryCondition bc)

caseASTBinaryCondition

public void caseASTBinaryCondition(ASTBinaryCondition bc)
Specified by:
caseASTBinaryCondition in interface Analysis
Overrides:
caseASTBinaryCondition in class AnalysisAdapter

inASTAndCondition

public void inASTAndCondition(ASTAndCondition ac)

outASTAndCondition

public void outASTAndCondition(ASTAndCondition ac)

caseASTAndCondition

public void caseASTAndCondition(ASTAndCondition ac)
Specified by:
caseASTAndCondition in interface Analysis
Overrides:
caseASTAndCondition in class AnalysisAdapter

inASTOrCondition

public void inASTOrCondition(ASTOrCondition oc)

outASTOrCondition

public void outASTOrCondition(ASTOrCondition oc)

caseASTOrCondition

public void caseASTOrCondition(ASTOrCondition oc)
Specified by:
caseASTOrCondition in interface Analysis
Overrides:
caseASTOrCondition in class AnalysisAdapter

inType

public void inType(Type t)

outType

public void outType(Type t)

caseType

public void caseType(Type t)
Specified by:
caseType in interface Analysis
Overrides:
caseType in class AnalysisAdapter

normalRetrieving

public void normalRetrieving(ASTNode node)

inASTStatementSequenceNode

public void inASTStatementSequenceNode(ASTStatementSequenceNode node)

outASTStatementSequenceNode

public void outASTStatementSequenceNode(ASTStatementSequenceNode node)

caseASTStatementSequenceNode

public void caseASTStatementSequenceNode(ASTStatementSequenceNode node)
Specified by:
caseASTStatementSequenceNode in interface Analysis
Overrides:
caseASTStatementSequenceNode in class AnalysisAdapter

inDefinitionStmt

public void inDefinitionStmt(DefinitionStmt s)

outDefinitionStmt

public void outDefinitionStmt(DefinitionStmt s)

caseDefinitionStmt

public void caseDefinitionStmt(DefinitionStmt s)
Specified by:
caseDefinitionStmt in interface Analysis
Overrides:
caseDefinitionStmt in class AnalysisAdapter

inReturnStmt

public void inReturnStmt(ReturnStmt s)

outReturnStmt

public void outReturnStmt(ReturnStmt s)

caseReturnStmt

public void caseReturnStmt(ReturnStmt s)
Specified by:
caseReturnStmt in interface Analysis
Overrides:
caseReturnStmt in class AnalysisAdapter

inInvokeStmt

public void inInvokeStmt(InvokeStmt s)

outInvokeStmt

public void outInvokeStmt(InvokeStmt s)

caseInvokeStmt

public void caseInvokeStmt(InvokeStmt s)
Specified by:
caseInvokeStmt in interface Analysis
Overrides:
caseInvokeStmt in class AnalysisAdapter

inThrowStmt

public void inThrowStmt(ThrowStmt s)

outThrowStmt

public void outThrowStmt(ThrowStmt s)

caseThrowStmt

public void caseThrowStmt(ThrowStmt s)
Specified by:
caseThrowStmt in interface Analysis
Overrides:
caseThrowStmt in class AnalysisAdapter

inDVariableDeclarationStmt

public void inDVariableDeclarationStmt(DVariableDeclarationStmt s)

outDVariableDeclarationStmt

public void outDVariableDeclarationStmt(DVariableDeclarationStmt s)

caseDVariableDeclarationStmt

public void caseDVariableDeclarationStmt(DVariableDeclarationStmt s)
Specified by:
caseDVariableDeclarationStmt in interface Analysis
Overrides:
caseDVariableDeclarationStmt in class AnalysisAdapter

inStmt

public void inStmt(Stmt s)

outStmt

public void outStmt(Stmt s)

caseStmt

public void caseStmt(Stmt s)
Specified by:
caseStmt in interface Analysis
Overrides:
caseStmt in class AnalysisAdapter

caseExprOrRefValueBox

public void caseExprOrRefValueBox(ValueBox vb)

inExprOrRefValueBox

public void inExprOrRefValueBox(ValueBox vb)

outExprOrRefValueBox

public void outExprOrRefValueBox(ValueBox vb)

decideCaseExprOrRef

public void decideCaseExprOrRef(Value v)

inValue

public void inValue(Value v)

outValue

public void outValue(Value v)

caseValue

public void caseValue(Value v)
Specified by:
caseValue in interface Analysis
Overrides:
caseValue in class AnalysisAdapter

inExpr

public void inExpr(Expr e)

outExpr

public void outExpr(Expr e)

caseExpr

public void caseExpr(Expr e)
Specified by:
caseExpr in interface Analysis
Overrides:
caseExpr in class AnalysisAdapter

inRef

public void inRef(Ref r)

outRef

public void outRef(Ref r)

caseRef

public void caseRef(Ref r)
Specified by:
caseRef in interface Analysis
Overrides:
caseRef in class AnalysisAdapter

decideCaseExpr

public void decideCaseExpr(Expr e)

inBinopExpr

public void inBinopExpr(BinopExpr be)

outBinopExpr

public void outBinopExpr(BinopExpr be)

caseBinopExpr

public void caseBinopExpr(BinopExpr be)
Specified by:
caseBinopExpr in interface Analysis
Overrides:
caseBinopExpr in class AnalysisAdapter

inUnopExpr

public void inUnopExpr(UnopExpr ue)

outUnopExpr

public void outUnopExpr(UnopExpr ue)

caseUnopExpr

public void caseUnopExpr(UnopExpr ue)
Specified by:
caseUnopExpr in interface Analysis
Overrides:
caseUnopExpr in class AnalysisAdapter

inNewArrayExpr

public void inNewArrayExpr(NewArrayExpr nae)

outNewArrayExpr

public void outNewArrayExpr(NewArrayExpr nae)

caseNewArrayExpr

public void caseNewArrayExpr(NewArrayExpr nae)
Specified by:
caseNewArrayExpr in interface Analysis
Overrides:
caseNewArrayExpr in class AnalysisAdapter

inNewMultiArrayExpr

public void inNewMultiArrayExpr(NewMultiArrayExpr nmae)

outNewMultiArrayExpr

public void outNewMultiArrayExpr(NewMultiArrayExpr nmae)

caseNewMultiArrayExpr

public void caseNewMultiArrayExpr(NewMultiArrayExpr nmae)
Specified by:
caseNewMultiArrayExpr in interface Analysis
Overrides:
caseNewMultiArrayExpr in class AnalysisAdapter

inInstanceOfExpr

public void inInstanceOfExpr(InstanceOfExpr ioe)

outInstanceOfExpr

public void outInstanceOfExpr(InstanceOfExpr ioe)

caseInstanceOfExpr

public void caseInstanceOfExpr(InstanceOfExpr ioe)
Specified by:
caseInstanceOfExpr in interface Analysis
Overrides:
caseInstanceOfExpr in class AnalysisAdapter

inInvokeExpr

public void inInvokeExpr(InvokeExpr ie)

outInvokeExpr

public void outInvokeExpr(InvokeExpr ie)

caseInvokeExpr

public void caseInvokeExpr(InvokeExpr ie)
Specified by:
caseInvokeExpr in interface Analysis
Overrides:
caseInvokeExpr in class AnalysisAdapter

inInstanceInvokeExpr

public void inInstanceInvokeExpr(InstanceInvokeExpr iie)

outInstanceInvokeExpr

public void outInstanceInvokeExpr(InstanceInvokeExpr iie)

caseInstanceInvokeExpr

public void caseInstanceInvokeExpr(InstanceInvokeExpr iie)
Specified by:
caseInstanceInvokeExpr in interface Analysis
Overrides:
caseInstanceInvokeExpr in class AnalysisAdapter

inCastExpr

public void inCastExpr(CastExpr ce)

outCastExpr

public void outCastExpr(CastExpr ce)

caseCastExpr

public void caseCastExpr(CastExpr ce)
Specified by:
caseCastExpr in interface Analysis
Overrides:
caseCastExpr in class AnalysisAdapter

decideCaseRef

public void decideCaseRef(Ref r)

inArrayRef

public void inArrayRef(ArrayRef ar)

outArrayRef

public void outArrayRef(ArrayRef ar)

caseArrayRef

public void caseArrayRef(ArrayRef ar)
Specified by:
caseArrayRef in interface Analysis
Overrides:
caseArrayRef in class AnalysisAdapter

inInstanceFieldRef

public void inInstanceFieldRef(InstanceFieldRef ifr)

outInstanceFieldRef

public void outInstanceFieldRef(InstanceFieldRef ifr)

caseInstanceFieldRef

public void caseInstanceFieldRef(InstanceFieldRef ifr)
Specified by:
caseInstanceFieldRef in interface Analysis
Overrides:
caseInstanceFieldRef in class AnalysisAdapter

inStaticFieldRef

public void inStaticFieldRef(StaticFieldRef sfr)

outStaticFieldRef

public void outStaticFieldRef(StaticFieldRef sfr)

caseStaticFieldRef

public void caseStaticFieldRef(StaticFieldRef sfr)
Specified by:
caseStaticFieldRef in interface Analysis
Overrides:
caseStaticFieldRef in class AnalysisAdapter

debug

public void debug(String className,
                  String methodName,
                  String debug)