com.ibm.wala.fixpoint
Class UnaryOperator<T extends IVariable>
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, PropagationCallGraphBuilder.FilterOperator, PropagationCallGraphBuilder.InstanceArrayStoreOperator, PropagationCallGraphBuilder.InstancePutFieldOperator, TrueOperator, UnaryBitVectorUnion, UnaryOr, UnarySideEffect
public abstract class UnaryOperator<T extends IVariable>
- extends AbstractOperator<T>
- implements FixedPointConstants
An operator of the form lhs = op (rhs)
|
Method Summary |
abstract byte |
evaluate(T lhs,
T rhs)
Evaluate this equation, setting a new value for the left-hand side. |
byte |
evaluate(T lhs,
T[] rhs)
Evaluate this equation, setting a new value for the left-hand side. |
boolean |
isIdentity()
|
UnaryStatement<T> |
makeEquation(T lhs,
T rhs)
Create an equation which uses this operator Override in subclasses for
efficiency. |
| Methods inherited from class java.lang.Object |
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
UnaryOperator
public UnaryOperator()
evaluate
public abstract byte evaluate(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(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.
Note that the RHS is an IVariable[] and not a T[] because the framework may be need to allocate an array for the rhs, and we
cannot do new T[] in Java.
- Specified by:
evaluate in class AbstractOperator<T extends IVariable>
- 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