com.ibm.wala.fixedpoint.impl
Class UnaryOperator

java.lang.Object
  extended by com.ibm.wala.fixedpoint.impl.AbstractOperator
      extended by com.ibm.wala.fixedpoint.impl.UnaryOperator
All Implemented Interfaces:
FixedPointConstants
Direct Known Subclasses:
BitVectorFilter, BitVectorIdentity, BitVectorKillGen, BitVectorMinusVector, BitVectorOr, BitVectorUnionConstant, BitVectorUnionVector, BooleanIdentity, PropagationCallGraphBuilder.FilterOperator, PropagationCallGraphBuilder.InstanceArrayStoreOperator, PropagationCallGraphBuilder.InstancePutFieldOperator, TrueOperator, UnaryBitVectorUnion, UnaryOr, UnarySideEffect

public abstract class UnaryOperator
extends AbstractOperator
implements FixedPointConstants

An operator of the form lhs = op (rhs)


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
UnaryOperator()
           
 
Method Summary
abstract  byte evaluate(IVariable lhs, IVariable rhs)
          Evaluate this equation, setting a new value for the left-hand side.
 byte evaluate(IVariable lhs, IVariable[] rhs)
          Evaluate this equation, setting a new value for the left-hand side.
 boolean isIdentity()
           
 UnaryStatement makeEquation(IVariable lhs, IVariable rhs)
          Create an equation which uses this operator Override in subclasses for efficiency.
 
Methods inherited from class com.ibm.wala.fixedpoint.impl.AbstractOperator
equals, hashCode, toString
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

UnaryOperator

public UnaryOperator()
Method Detail

evaluate

public abstract byte evaluate(IVariable lhs,
                              IVariable rhs)
Evaluate this equation, setting a new value for the left-hand side.

Returns:
true if the lhs value changes. false otherwise.

makeEquation

public UnaryStatement makeEquation(IVariable lhs,
                                   IVariable rhs)
Create an equation which uses this operator Override in subclasses for efficiency.


isIdentity

public boolean isIdentity()

evaluate

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

Specified by:
evaluate in class AbstractOperator
Returns:
a code that indicates: 1) has the lhs value changed? 2) has this equation reached a fixed-point, in that we never have to evaluate the equation again, even if rhs operands change?
Throws:
UnimplementedError