public class MustMayInitialize extends StructuredAnalysis
Modifier and Type | Field and Description |
---|---|
static int |
MAY |
static int |
MUST |
DEBUG, DEBUG_IF, DEBUG_STATEMENTS, DEBUG_TRY, DEBUG_WHILE, MERGETYPE
Constructor and Description |
---|
MustMayInitialize(java.lang.Object analyze,
int MUSTorMAY) |
Modifier and Type | Method and Description |
---|---|
DavaFlowSet |
cloneFlowSet(DavaFlowSet flowSet)
Make a clone of the flowset The implementor should know when they want a
shallow or deep clone
|
DavaFlowSet |
emptyFlowSet() |
java.util.List |
getDefs(SootField field) |
java.util.List |
getDefs(Value local) |
boolean |
isMayInitialized(SootField field) |
boolean |
isMayInitialized(Value local) |
boolean |
isMustInitialized(SootField field) |
boolean |
isMustInitialized(Value local) |
DavaFlowSet |
newInitialFlow() |
DavaFlowSet |
processStatement(Stmt s,
DavaFlowSet inSet)
Specific stmts within AST Constructs are processed through this method.
|
DavaFlowSet |
processSwitchKey(Value key,
DavaFlowSet input)
Deal with the key in the switch construct
|
DavaFlowSet |
processSynchronizedLocal(Local local,
DavaFlowSet input)
To deal with the local used for synch blocks
|
DavaFlowSet |
processUnaryBinaryCondition(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.
|
void |
setMergeType() |
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
public static final int MUST
public static final int MAY
public MustMayInitialize(java.lang.Object analyze, int MUSTorMAY)
public DavaFlowSet emptyFlowSet()
emptyFlowSet
in class StructuredAnalysis
public void setMergeType()
setMergeType
in class StructuredAnalysis
public DavaFlowSet newInitialFlow()
newInitialFlow
in class StructuredAnalysis
public DavaFlowSet cloneFlowSet(DavaFlowSet flowSet)
StructuredAnalysis
cloneFlowSet
in class StructuredAnalysis
public DavaFlowSet processUnaryBinaryCondition(ASTUnaryBinaryCondition cond, DavaFlowSet input)
StructuredAnalysis
processUnaryBinaryCondition
in class StructuredAnalysis
public DavaFlowSet processSynchronizedLocal(Local local, DavaFlowSet input)
StructuredAnalysis
processSynchronizedLocal
in class StructuredAnalysis
public DavaFlowSet processSwitchKey(Value key, DavaFlowSet input)
StructuredAnalysis
processSwitchKey
in class StructuredAnalysis
public DavaFlowSet processStatement(Stmt s, DavaFlowSet inSet)
StructuredAnalysis
processStatement
in class StructuredAnalysis
public boolean isMayInitialized(SootField field)
public boolean isMayInitialized(Value local)
public boolean isMustInitialized(SootField field)
public boolean isMustInitialized(Value local)
public java.util.List getDefs(Value local)
public java.util.List getDefs(SootField field)