Class PropagationCallGraphBuilder.FilterOperator
- java.lang.Object
-
- com.ibm.wala.fixpoint.AbstractOperator<T>
-
- com.ibm.wala.fixpoint.UnaryOperator<PointsToSetVariable>
-
- com.ibm.wala.ipa.callgraph.propagation.PropagationCallGraphBuilder.FilterOperator
-
- All Implemented Interfaces:
FixedPointConstants
,IPointerOperator
- Direct Known Subclasses:
PropagationCallGraphBuilder.InverseFilterOperator
- Enclosing class:
- PropagationCallGraphBuilder
public class PropagationCallGraphBuilder.FilterOperator extends UnaryOperator<PointsToSetVariable> implements IPointerOperator
The FilterOperator is a filtered set-union. i.e. the LHS is `unioned' with the RHS, but filtered by the set associated with this operator instance. The filter is the set of InstanceKeys corresponding to the target type of this cast. This is still monotonic. LHS U= (RHS n k) Unary op::= Cast_k( ) (Again, technically a binary op -- see note for Assign) TODO: these need to be canonicalized.
-
-
Field Summary
-
Fields inherited from interface com.ibm.wala.fixpoint.FixedPointConstants
CHANGED, CHANGED_AND_FIXED, CHANGED_MASK, FIXED_MASK, NOT_CHANGED, NOT_CHANGED_AND_FIXED, SIDE_EFFECT_MASK
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
FilterOperator()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
equals(Object obj)
byte
evaluate(PointsToSetVariable lhs, PointsToSetVariable rhs)
Evaluate this equation, setting a new value for the left-hand side.int
hashCode()
boolean
isComplex()
Is the operator complex; i.e., might it give rise to new constraints?String
toString()
-
Methods inherited from class com.ibm.wala.fixpoint.UnaryOperator
evaluate, isIdentity, makeEquation
-
-
-
-
Method Detail
-
evaluate
public byte evaluate(PointsToSetVariable lhs, PointsToSetVariable rhs)
Description copied from class:UnaryOperator
Evaluate this equation, setting a new value for the left-hand side.- Specified by:
evaluate
in classUnaryOperator<PointsToSetVariable>
- Returns:
- true if the lhs value changes. false otherwise.
-
isComplex
public boolean isComplex()
Description copied from interface:IPointerOperator
Is the operator complex; i.e., might it give rise to new constraints?- Specified by:
isComplex
in interfaceIPointerOperator
-
toString
public String toString()
- Specified by:
toString
in classAbstractOperator<PointsToSetVariable>
-
equals
public boolean equals(Object obj)
- Specified by:
equals
in classAbstractOperator<PointsToSetVariable>
-
hashCode
public int hashCode()
- Specified by:
hashCode
in classAbstractOperator<PointsToSetVariable>
-
-