com.ibm.wala.ipa.callgraph.propagation
Class UnarySideEffect

java.lang.Object
  extended by com.ibm.wala.fixedpoint.impl.AbstractOperator
      extended by com.ibm.wala.fixedpoint.impl.UnaryOperator
          extended by com.ibm.wala.ipa.callgraph.propagation.UnarySideEffect
All Implemented Interfaces:
FixedPointConstants
Direct Known Subclasses:
PropagationCallGraphBuilder.ArrayLoadOperator, PropagationCallGraphBuilder.ArrayStoreOperator, PropagationCallGraphBuilder.GetFieldOperator, PropagationCallGraphBuilder.PutFieldOperator

public abstract class UnarySideEffect
extends UnaryOperator

A SideEffect is a constraint which carries a points-to-set which is def'fed or used in created constraints. The side effect doesn't actually def or use the fixedSet itself ... rather, the side effect creates new constraints that def or use the fixed set. A "load" operator generates defs of the fixed set. A "store" operator generates uses of the fixed set.


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
UnarySideEffect(PointsToSetVariable fixedSet)
           
 
Method Summary
 boolean equals(java.lang.Object o)
           
abstract  byte evaluate(IVariable rhs)
           
 byte evaluate(IVariable lhs, IVariable rhs)
          Evaluate this equation, setting a new value for the left-hand side.
 int hashCode()
           
protected abstract  boolean isLoadOperator()
          A "load" operator generates defs of the fixed set.
 void replaceFixedSet(PointsToSetVariable p)
          Update the fixed points-to-set associated with this side effect.
 
Methods inherited from class com.ibm.wala.fixedpoint.impl.UnaryOperator
evaluate, isIdentity, makeEquation
 
Methods inherited from class com.ibm.wala.fixedpoint.impl.AbstractOperator
toString
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

UnarySideEffect

public UnarySideEffect(PointsToSetVariable fixedSet)
Method Detail

evaluate

public final byte evaluate(IVariable lhs,
                           IVariable rhs)
Description copied from class: UnaryOperator
Evaluate this equation, setting a new value for the left-hand side.

Specified by:
evaluate in class UnaryOperator
Returns:
true if the lhs value changes. false otherwise.

evaluate

public abstract byte evaluate(IVariable rhs)

equals

public boolean equals(java.lang.Object o)
Specified by:
equals in class AbstractOperator

hashCode

public int hashCode()
Specified by:
hashCode in class AbstractOperator

isLoadOperator

protected abstract boolean isLoadOperator()
A "load" operator generates defs of the fixed set. A "store" operator generates uses of the fixed set.


replaceFixedSet

public void replaceFixedSet(PointsToSetVariable p)
Update the fixed points-to-set associated with this side effect.