Class MustMayInitialize
- java.lang.Object
-
- soot.dava.toolkits.base.AST.structuredAnalysis.StructuredAnalysis
-
- soot.dava.toolkits.base.AST.structuredAnalysis.MustMayInitialize
-
public class MustMayInitialize extends StructuredAnalysis
-
-
Field Summary
Fields Modifier and Type Field Description static intMAYstatic intMUST-
Fields inherited from class soot.dava.toolkits.base.AST.structuredAnalysis.StructuredAnalysis
DEBUG, DEBUG_IF, DEBUG_STATEMENTS, DEBUG_TRY, DEBUG_WHILE, MERGETYPE
-
-
Constructor Summary
Constructors Constructor Description MustMayInitialize(Object analyze, int MUSTorMAY)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description DavaFlowSetcloneFlowSet(DavaFlowSet flowSet)Make a clone of the flowset The implementor should know when they want a shallow or deep cloneDavaFlowSetemptyFlowSet()ListgetDefs(SootField field)ListgetDefs(Value local)booleanisMayInitialized(SootField field)booleanisMayInitialized(Value local)booleanisMustInitialized(SootField field)booleanisMustInitialized(Value local)DavaFlowSetnewInitialFlow()DavaFlowSetprocessStatement(Stmt s, DavaFlowSet inSet)Specific stmts within AST Constructs are processed through this method.DavaFlowSetprocessSwitchKey(Value key, DavaFlowSet input)Deal with the key in the switch constructDavaFlowSetprocessSynchronizedLocal(Local local, DavaFlowSet input)To deal with the local used for synch blocksDavaFlowSetprocessUnaryBinaryCondition(ASTUnaryBinaryCondition cond, DavaFlowSet input)To have maximum flexibility in analyzing conditions the analysis API breaks down the aggregated conditions to simple unary or binary conditions user defined code can then deal with each condition separately.voidsetMergeType()-
Methods inherited from class soot.dava.toolkits.base.AST.structuredAnalysis.StructuredAnalysis
debug, debug, getAfterSet, getBeforeSet, getLabel, handleBreak, handleContinue, isDifferent, merge, mergeExplicitAndImplicit, print, process, processAbruptStatements, processASTDoWhileNode, processASTForLoopNode, processASTIfElseNode, processASTIfNode, processASTLabeledBlockNode, processASTMethodNode, processASTNode, processASTStatementSequenceNode, processASTSwitchNode, processASTSynchronizedBlockNode, processASTTryNode, processASTUnconditionalLoopNode, processASTWhileNode, processCondition, processSingleSubBodyNode
-
-
-
-
Field Detail
-
MUST
public static final int MUST
- See Also:
- Constant Field Values
-
MAY
public static final int MAY
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
MustMayInitialize
public MustMayInitialize(Object analyze, int MUSTorMAY)
-
-
Method Detail
-
emptyFlowSet
public DavaFlowSet emptyFlowSet()
- Specified by:
emptyFlowSetin classStructuredAnalysis
-
setMergeType
public void setMergeType()
- Specified by:
setMergeTypein classStructuredAnalysis
-
newInitialFlow
public DavaFlowSet newInitialFlow()
- Specified by:
newInitialFlowin classStructuredAnalysis
-
cloneFlowSet
public DavaFlowSet cloneFlowSet(DavaFlowSet flowSet)
Description copied from class:StructuredAnalysisMake a clone of the flowset The implementor should know when they want a shallow or deep clone- Specified by:
cloneFlowSetin classStructuredAnalysis
-
processUnaryBinaryCondition
public DavaFlowSet processUnaryBinaryCondition(ASTUnaryBinaryCondition cond, DavaFlowSet input)
Description copied from class:StructuredAnalysisTo have maximum flexibility in analyzing conditions the analysis API breaks down the aggregated conditions to simple unary or binary conditions user defined code can then deal with each condition separately. To be able to deal with entire aggregated conditions the user should wite their own implementation of the method processCondition- Specified by:
processUnaryBinaryConditionin classStructuredAnalysis
-
processSynchronizedLocal
public DavaFlowSet processSynchronizedLocal(Local local, DavaFlowSet input)
Description copied from class:StructuredAnalysisTo deal with the local used for synch blocks- Specified by:
processSynchronizedLocalin classStructuredAnalysis
-
processSwitchKey
public DavaFlowSet processSwitchKey(Value key, DavaFlowSet input)
Description copied from class:StructuredAnalysisDeal with the key in the switch construct- Specified by:
processSwitchKeyin classStructuredAnalysis
-
processStatement
public DavaFlowSet processStatement(Stmt s, DavaFlowSet inSet)
Description copied from class:StructuredAnalysisSpecific stmts within AST Constructs are processed through this method. It will be invoked everytime a stmt is encountered- Specified by:
processStatementin classStructuredAnalysis
-
isMayInitialized
public boolean isMayInitialized(SootField field)
-
isMayInitialized
public boolean isMayInitialized(Value local)
-
isMustInitialized
public boolean isMustInitialized(SootField field)
-
isMustInitialized
public boolean isMustInitialized(Value local)
-
-