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

java.lang.Object
  extended by soot.dava.toolkits.base.AST.analysis.AnalysisAdapter
      extended by soot.dava.toolkits.base.AST.analysis.DepthFirstAdapter
          extended by soot.dava.toolkits.base.AST.transformations.UselessLabeledBlockRemover
All Implemented Interfaces:
Analysis

public class UselessLabeledBlockRemover
extends DepthFirstAdapter


Field Summary
 
Fields inherited from class soot.dava.toolkits.base.AST.analysis.DepthFirstAdapter
DEBUG
 
Constructor Summary
UselessLabeledBlockRemover()
           
UselessLabeledBlockRemover(boolean verbose)
           
 
Method Summary
static List<Object> createNewSubBody(List<Object> oldSubBody, int nodeNumber, ASTLabeledBlockNode labelBlock)
           
 void inASTMethodNode(ASTMethodNode node)
           
 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 outASTSwitchNode(ASTSwitchNode node)
           
 void outASTSynchronizedBlockNode(ASTSynchronizedBlockNode node)
           
 void outASTTryNode(ASTTryNode node)
           
 void outASTUnconditionalLoopNode(ASTUnconditionalLoopNode node)
           
 void outASTWhileNode(ASTWhileNode node)
           
static void removeLabeledBlock(ASTNode node, ASTLabeledBlockNode labelBlock, int subBodyNumber, int nodeNumber)
           
 
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, outASTOrCondition, outASTStatementSequenceNode, outASTUnaryCondition, 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
 

Constructor Detail

UselessLabeledBlockRemover

public UselessLabeledBlockRemover()

UselessLabeledBlockRemover

public UselessLabeledBlockRemover(boolean verbose)
Method Detail

outASTMethodNode

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

inASTMethodNode

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

outASTSynchronizedBlockNode

public void outASTSynchronizedBlockNode(ASTSynchronizedBlockNode node)
Overrides:
outASTSynchronizedBlockNode in class DepthFirstAdapter

outASTLabeledBlockNode

public void outASTLabeledBlockNode(ASTLabeledBlockNode node)
Overrides:
outASTLabeledBlockNode in class DepthFirstAdapter

outASTUnconditionalLoopNode

public void outASTUnconditionalLoopNode(ASTUnconditionalLoopNode node)
Overrides:
outASTUnconditionalLoopNode in class DepthFirstAdapter

outASTSwitchNode

public void outASTSwitchNode(ASTSwitchNode node)
Overrides:
outASTSwitchNode in class DepthFirstAdapter

outASTIfNode

public void outASTIfNode(ASTIfNode node)
Overrides:
outASTIfNode in class DepthFirstAdapter

outASTIfElseNode

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

outASTWhileNode

public void outASTWhileNode(ASTWhileNode node)
Overrides:
outASTWhileNode in class DepthFirstAdapter

outASTForLoopNode

public void outASTForLoopNode(ASTForLoopNode node)
Overrides:
outASTForLoopNode in class DepthFirstAdapter

outASTDoWhileNode

public void outASTDoWhileNode(ASTDoWhileNode node)
Overrides:
outASTDoWhileNode in class DepthFirstAdapter

outASTTryNode

public void outASTTryNode(ASTTryNode node)
Overrides:
outASTTryNode in class DepthFirstAdapter

removeLabeledBlock

public static void removeLabeledBlock(ASTNode node,
                                      ASTLabeledBlockNode labelBlock,
                                      int subBodyNumber,
                                      int nodeNumber)

createNewSubBody

public static List<Object> createNewSubBody(List<Object> oldSubBody,
                                            int nodeNumber,
                                            ASTLabeledBlockNode labelBlock)