Class UnaryOperator<T extends IVariable<T>>

java.lang.Object
com.ibm.wala.fixpoint.AbstractOperator<T>
com.ibm.wala.fixpoint.UnaryOperator<T>
All Implemented Interfaces:
FixedPointConstants
Direct Known Subclasses:
BitVectorFilter, BitVectorIdentity, BitVectorKillAll, BitVectorKillGen, BitVectorMinusVector, BitVectorOr, BitVectorUnionConstant, BitVectorUnionVector, BooleanIdentity, OperatorUtil.UnaryOperatorSequence, PrefixTransferFunction, PropagationCallGraphBuilder.FilterOperator, PropagationCallGraphBuilder.InstanceArrayStoreOperator, PropagationCallGraphBuilder.InstancePutFieldOperator, TrueOperator, UnaryBitVectorUnion, UnaryOr, UnarySideEffect

public abstract class UnaryOperator<T extends IVariable<T>> extends AbstractOperator<T>
An operator of the form lhs = op (rhs)
  • Constructor Details

    • UnaryOperator

      public UnaryOperator()
  • Method Details

    • evaluate

      public abstract byte evaluate(@Nullable T lhs, T 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<T> makeEquation(@Nullable T lhs, T rhs)
      Create an equation which uses this operator Override in subclasses for efficiency.
    • isIdentity

      public boolean isIdentity()
    • evaluate

      public byte evaluate(T lhs, T[] 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<T extends IVariable<T>>
      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