soot.dava.toolkits.base.AST.structuredAnalysis
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 |
static int |
MAY
|
static int |
MUST
|
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 |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
MUST
public static final int MUST
- See Also:
- Constant Field Values
MAY
public static final int MAY
- See Also:
- Constant Field Values
MustMayInitialize
public MustMayInitialize(Object analyze,
int MUSTorMAY)
emptyFlowSet
public DavaFlowSet emptyFlowSet()
- Specified by:
emptyFlowSet
in class StructuredAnalysis
setMergeType
public void setMergeType()
- Specified by:
setMergeType
in class StructuredAnalysis
newInitialFlow
public Object newInitialFlow()
- Specified by:
newInitialFlow
in class StructuredAnalysis
cloneFlowSet
public Object cloneFlowSet(Object flowSet)
- Description copied from class:
StructuredAnalysis
- Make a clone of the flowset
The implementor should know when they want a shallow or deep clone
- Specified by:
cloneFlowSet
in class StructuredAnalysis
processUnaryBinaryCondition
public Object processUnaryBinaryCondition(ASTUnaryBinaryCondition cond,
Object input)
- Description copied from class:
StructuredAnalysis
- 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 separatly.
To be able to deal with entire aggregated conditions the user should
wite their own implementation of the method processCondition
- Specified by:
processUnaryBinaryCondition
in class StructuredAnalysis
processSynchronizedLocal
public Object processSynchronizedLocal(Local local,
Object input)
- Description copied from class:
StructuredAnalysis
- To deal with the local used for synch blocks
- Specified by:
processSynchronizedLocal
in class StructuredAnalysis
processSwitchKey
public Object processSwitchKey(Value key,
Object input)
- Description copied from class:
StructuredAnalysis
- Deal with the key in the switch construct
- Specified by:
processSwitchKey
in class StructuredAnalysis
processStatement
public Object processStatement(Stmt s,
Object input)
- Description copied from class:
StructuredAnalysis
- Specific stmts within AST Constructs are processed through this
method. It will be invoked everytime a stmt is encountered
- Specified by:
processStatement
in class StructuredAnalysis
isMayInitialized
public boolean isMayInitialized(SootField field)
isMayInitialized
public boolean isMayInitialized(Value local)
isMustInitialized
public boolean isMustInitialized(SootField field)
isMustInitialized
public boolean isMustInitialized(Value local)
getDefs
public List getDefs(Value local)
getDefs
public List getDefs(SootField field)