Class NullnessStore
java.lang.Object
org.checkerframework.framework.flow.CFAbstractStore<V,S>
 
org.checkerframework.checker.initialization.InitializationStore<NullnessValue,NullnessStore>
 
org.checkerframework.checker.nullness.NullnessStore
- All Implemented Interfaces:
- Store<NullnessStore>,- org.plumelib.util.UniqueId
public class NullnessStore
extends InitializationStore<NullnessValue,NullnessStore>
implements org.plumelib.util.UniqueId 
Behaves like 
InitializationStore, but additionally tracks whether PolyNull is
 known to be NonNull or Nullable (or not known to be either).- 
Nested Class SummaryNested classes/interfaces inherited from interface org.checkerframework.dataflow.analysis.StoreStore.FlowRule, Store.Kind
- 
Field SummaryFieldsModifier and TypeFieldDescriptionprotected booleanprotected booleanFields inherited from class org.checkerframework.checker.initialization.InitializationStoreinitializedFields, invariantFieldsFields inherited from class org.checkerframework.framework.flow.CFAbstractStoreanalysis, arrayValues, classValues, fieldValues, localVariableValues, methodValues, sequentialSemantics, thisValue
- 
Constructor SummaryConstructorsConstructorDescriptionCreate a NullnessStore (copy constructor).NullnessStore(CFAbstractAnalysis<NullnessValue, NullnessStore, ?> analysis, boolean sequentialSemantics) Create a NullnessStore.
- 
Method SummaryModifier and TypeMethodDescriptionlonggetUid()Returns the unique ID of this object.protected StringAdds a representation of the internal information of this Store to visualizerviz.booleanbooleanleastUpperBound(NullnessStore other) Compute the least upper bound of two stores.voidsetPolyNullNonNull(boolean isPolyNullNonNull) voidsetPolyNullNull(boolean isPolyNullNull) protected booleanReturns true iff thisCFAbstractStorecontains a superset of the map entries of the argumentCFAbstractStore.Methods inherited from class org.checkerframework.checker.initialization.InitializationStoreaddInitializedField, addInitializedField, getAnalysis, insertValue, isFieldInitialized, updateForMethodCallMethods inherited from class org.checkerframework.framework.flow.CFAbstractStorecanAlias, canInsertJavaExpression, clearValue, computeNewValueAndInsert, copy, equals, getFieldValue, getFieldValues, getValue, getValue, getValue, getValue, getValue, getValue, hashCode, initializeMethodParameter, initializeThisValue, insertOrRefine, insertOrRefine, insertOrRefinePermitNondeterministic, insertThisValue, insertValue, insertValue, insertValuePermitNondeterministic, insertValuePermitNondeterministic, isMonotonicUpdate, isSideEffectFree, removeConflicting, removeConflicting, removeConflicting, replaceValue, shouldInsert, toString, updateForArrayAssignment, updateForAssignment, updateForFieldAccessAssignment, updateForLocalVariableAssignment, visualize, widenedUpperBoundMethods inherited from class java.lang.Objectclone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface org.plumelib.util.UniqueIdgetClassAndUid
- 
Field Details- 
isPolyNullNonNullprotected boolean isPolyNullNonNull
- 
isPolyNullNullprotected boolean isPolyNullNull
 
- 
- 
Constructor Details- 
NullnessStorepublic NullnessStore(CFAbstractAnalysis<NullnessValue, NullnessStore, ?> analysis, boolean sequentialSemantics) Create a NullnessStore.- Parameters:
- analysis- the analysis class this store belongs to
- sequentialSemantics- should the analysis use sequential Java semantics (i.e., assume that only one thread is running at all times)?
 
- 
NullnessStoreCreate a NullnessStore (copy constructor).- Parameters:
- s- a store to copy
 
 
- 
- 
Method Details- 
getUidpublic long getUid()Returns the unique ID of this object.- Specified by:
- getUidin interface- org.plumelib.util.UniqueId
- Overrides:
- getUidin class- CFAbstractStore<NullnessValue,- NullnessStore> 
- Returns:
- the unique ID of this object
 
- 
leastUpperBoundDescription copied from interface:StoreCompute the least upper bound of two stores.Important: This method must fulfill the following contract: - Does not change this.
- Does not change other.
- Returns a fresh object which is not aliased yet.
- Returns an object of the same (dynamic) type as this, even if the signature is more permissive.
- Is commutative.
 - Specified by:
- leastUpperBoundin interface- Store<NullnessStore>
- Overrides:
- leastUpperBoundin class- InitializationStore<NullnessValue,- NullnessStore> 
 
- Does not change 
- 
supersetOfDescription copied from class:CFAbstractStoreReturns true iff thisCFAbstractStorecontains a superset of the map entries of the argumentCFAbstractStore. Note that we test the entry keys and values by Java equality, not by any subtype relationship. This method is used primarily to simplify the equals predicate.- Overrides:
- supersetOfin class- InitializationStore<NullnessValue,- NullnessStore> 
 
- 
internalVisualizeDescription copied from class:CFAbstractStoreAdds a representation of the internal information of this Store to visualizerviz.- Overrides:
- internalVisualizein class- InitializationStore<NullnessValue,- NullnessStore> 
- Parameters:
- viz- the visualizer
- Returns:
- a representation of the internal information of this Store
 
- 
isPolyNullNonNullpublic boolean isPolyNullNonNull()
- 
setPolyNullNonNullpublic void setPolyNullNonNull(boolean isPolyNullNonNull) 
- 
isPolyNullNullpublic boolean isPolyNullNull()
- 
setPolyNullNullpublic void setPolyNullNull(boolean isPolyNullNull) 
 
-