public class LockStore extends CFAbstractStore<CFValue,LockStore>
Store.FlowRule, Store.Kind
Modifier and Type | Field and Description |
---|---|
protected boolean |
inConstructorOrInitializer |
protected AnnotationMirror |
LOCKHELD |
analysis, arrayValues, classValues, fieldValues, localVariableValues, methodValues, sequentialSemantics, thisValue
Constructor and Description |
---|
LockStore(CFAbstractAnalysis<CFValue,LockStore,?> analysis,
boolean sequentialSemantics) |
LockStore(CFAbstractAnalysis<CFValue,LockStore,?> analysis,
CFAbstractStore<CFValue,LockStore> other)
Copy constructor.
|
Modifier and Type | Method and Description |
---|---|
@Nullable CFValue |
getValue(FlowExpressions.Receiver expr) |
void |
insertExactValue(FlowExpressions.Receiver r,
AnnotationMirror a) |
void |
insertExactValue(FlowExpressions.Receiver r,
CFValue value) |
protected void |
internalDotOutput(StringBuilder result)
Adds a DOT representation of the internal information of this store to
result . |
LockStore |
leastUpperBound(LockStore other)
Compute the least upper bound of two stores.
|
void |
setInConstructorOrInitializer() |
canAlias, canInsertReceiver, clearValue, copy, equals, escapeDoubleQuotes, getValue, getValue, getValue, getValue, getValue, hasDOToutput, initializeMethodParameter, initializeThisValue, insertThisValue, insertValue, insertValue, isSideEffectFree, removeConflicting, removeConflicting, removeConflicting, replaceValue, supersetOf, toDOToutput, toString, toStringEscapeDoubleQuotes, updateForArrayAssignment, updateForAssignment, updateForFieldAccessAssignment, updateForLocalVariableAssignment, updateForMethodCall
protected boolean inConstructorOrInitializer
protected final AnnotationMirror LOCKHELD
public LockStore(CFAbstractAnalysis<CFValue,LockStore,?> analysis, boolean sequentialSemantics)
public LockStore(CFAbstractAnalysis<CFValue,LockStore,?> analysis, CFAbstractStore<CFValue,LockStore> other)
public LockStore leastUpperBound(LockStore other)
Store
Important: This method must fulfill the following contract:
this
.other
.this
, even if
the signature is more permissive.leastUpperBound
in interface Store<LockStore>
leastUpperBound
in class CFAbstractStore<CFValue,LockStore>
public void insertExactValue(FlowExpressions.Receiver r, AnnotationMirror a)
public void insertExactValue(FlowExpressions.Receiver r, CFValue value)
public void setInConstructorOrInitializer()
public @Nullable CFValue getValue(FlowExpressions.Receiver expr)
getValue
in class CFAbstractStore<CFValue,LockStore>
null
if
no information is available.protected void internalDotOutput(StringBuilder result)
result
.internalDotOutput
in class CFAbstractStore<CFValue,LockStore>