com.ibm.wala.ipa.callgraph.propagation
Class PropagationCallGraphBuilder.PutFieldOperator

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
              extended by com.ibm.wala.ipa.callgraph.propagation.PropagationCallGraphBuilder.PutFieldOperator
All Implemented Interfaces:
FixedPointConstants, IPointerOperator
Enclosing class:
PropagationCallGraphBuilder

public class PropagationCallGraphBuilder.PutFieldOperator
extends UnarySideEffect
implements IPointerOperator

Operator that represents a putfield


Field Summary
protected  MutableIntSet priorInstances
           
 
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
PropagationCallGraphBuilder.PutFieldOperator(IField field, PointsToSetVariable val)
           
 
Method Summary
 boolean equals(java.lang.Object o)
           
 byte evaluate(IVariable rhs)
           
protected  IntSet filterInstances(IntSet value)
          Subclasses can override as needed
protected  IField getField()
           
 UnaryOperator getPutAssignmentOperator()
          subclasses (e.g.
 int hashCode()
           
 boolean isComplex()
          Is the operator complex; i.e., might it give rise to new constraints?
protected  boolean isLoadOperator()
          A "load" operator generates defs of the fixed set.
 java.lang.String toString()
           
 
Methods inherited from class com.ibm.wala.ipa.callgraph.propagation.UnarySideEffect
evaluate, replaceFixedSet
 
Methods inherited from class com.ibm.wala.fixedpoint.impl.UnaryOperator
evaluate, isIdentity, makeEquation
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

priorInstances

protected final MutableIntSet priorInstances
Constructor Detail

PropagationCallGraphBuilder.PutFieldOperator

public PropagationCallGraphBuilder.PutFieldOperator(IField field,
                                                    PointsToSetVariable val)
Method Detail

toString

public java.lang.String toString()
Specified by:
toString in class AbstractOperator

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 interface IPointerOperator

evaluate

public byte evaluate(IVariable rhs)
Specified by:
evaluate in class UnarySideEffect

filterInstances

protected IntSet filterInstances(IntSet value)
Subclasses can override as needed

Parameters:
value -
Returns:
an IntSet

hashCode

public int hashCode()
Overrides:
hashCode in class UnarySideEffect

equals

public boolean equals(java.lang.Object o)
Overrides:
equals in class UnarySideEffect

getPutAssignmentOperator

public UnaryOperator getPutAssignmentOperator()
subclasses (e.g. XTA) can override this to enforce a filtered assignment. returns null if there's a problem.


getField

protected IField getField()
Returns:
Returns the field.

isLoadOperator

protected boolean isLoadOperator()
Description copied from class: UnarySideEffect
A "load" operator generates defs of the fixed set. A "store" operator generates uses of the fixed set.

Specified by:
isLoadOperator in class UnarySideEffect