public abstract class FlowFact
extends java.lang.Object
FlowFact
s, which are used
to represent the class of data-flow facts obtained at the end of a given
IDFA.Constructor and Description |
---|
FlowFact() |
Modifier and Type | Method and Description |
---|---|
abstract java.lang.String |
getString()
Prints the information represented by this object
in a human-readable form.
|
abstract boolean |
isEqualTo(FlowFact other)
Returns true if
other is semantically
same as this object. |
abstract FlowFact |
meetWith(FlowFact other,
java.util.Set<Cell> cellSet)
Given an instance of a FlowFact
other , this method should be
overridden to return the meet of the receiver with $other$. |
public abstract boolean isEqualTo(FlowFact other)
other
is semantically
same as this object.
Note that we do not use equals() methods, since we want to enforce
the subclasses of FlowFact
to define this equality.other
- the object to be checked for equality with this object.other
is same as this object.public abstract java.lang.String getString()
public abstract FlowFact meetWith(FlowFact other, java.util.Set<Cell> cellSet)
other
, this method should be
overridden to return the meet of the receiver with $other$.
An implementation can use the set of symbols (symbolSet
), to make
the meet more precise.
The set symbolSet
, is used to obtain a set of those symbols which
may contribute to the update in data-flow fact of a node.
Note: Make sure that this method returns a new object every time, if
needed.other
- one of the flowFacts. Can be null.cellSet
- set of cells that may affect the data-flow fact. Symbol.getPhantomSharedSymbol()
should be treated as
the set
of all the shared objects available in this context.other
, with the receiver.