LBJ2.infer
Class FirstOrderEqualityWithVariable

java.lang.Object
  extended by LBJ2.infer.Constraint
      extended by LBJ2.infer.FirstOrderConstraint
          extended by LBJ2.infer.FirstOrderEquality
              extended by LBJ2.infer.FirstOrderEqualityWithVariable

public class FirstOrderEqualityWithVariable
extends FirstOrderEquality

Represents the comparison of two classifier applications.


Field Summary
protected  FirstOrderVariable left
          The variable on the left of the equality.
protected  FirstOrderVariable right
          The classifier application on the right of the equality.
 
Fields inherited from class LBJ2.infer.FirstOrderEquality
equality, replacer, variableMap
 
Constructor Summary
FirstOrderEqualityWithVariable(boolean e, FirstOrderVariable l, FirstOrderVariable r)
          Initializing constructor.
FirstOrderEqualityWithVariable(boolean e, FirstOrderVariable l, FirstOrderVariable r, EqualityArgumentReplacer ear)
          This constructor specifies a variable setter for when this equality is quantified.
 
Method Summary
 void consolidateVariables(java.util.AbstractMap m)
          Replaces all unquantified variables with the unique copy stored as a value of the given map; also instantiates all quantified variables and stores them in the given map.
 boolean equals(java.lang.Object o)
          Two FirstOrderEqualityWithVariables are equivalent when their children are equivalent in either order.
 boolean evaluate()
          Determines whether the constraint is satisfied.
 int hashCode()
          The hash code of a FirstOrderEqualityWithVariable is the sum of the hash codes of its children plus 2.
 PropositionalConstraint propositionalize()
          Transforms this first order constraint into a propositional constraint.
 void runVisit(Inference infer)
          Calls the appropriate visit(·) method of the given Inference for this Constraint, as per the visitor pattern.
 void setQuantificationVariables(java.util.Vector o)
          This method sets the given quantification variables to the given object references and evaluates the expressions involving those variables in this constraint's FirstOrderEquality children.
 
Methods inherited from class LBJ2.infer.FirstOrderEquality
getChildren
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

left

protected FirstOrderVariable left
The variable on the left of the equality.


right

protected FirstOrderVariable right
The classifier application on the right of the equality.

Constructor Detail

FirstOrderEqualityWithVariable

public FirstOrderEqualityWithVariable(boolean e,
                                      FirstOrderVariable l,
                                      FirstOrderVariable r)
Initializing constructor.

Parameters:
e - Indicates whether this is an equality or an inequality.
l - The left classifier application.
r - The right classifier application.

FirstOrderEqualityWithVariable

public FirstOrderEqualityWithVariable(boolean e,
                                      FirstOrderVariable l,
                                      FirstOrderVariable r,
                                      EqualityArgumentReplacer ear)
This constructor specifies a variable setter for when this equality is quantified.

Parameters:
e - Indicates whether this is an equality or an inequality.
l - The left classifier application.
r - The right classifier application.
ear - An argument replacer.
Method Detail

consolidateVariables

public void consolidateVariables(java.util.AbstractMap m)
Replaces all unquantified variables with the unique copy stored as a value of the given map; also instantiates all quantified variables and stores them in the given map.

Specified by:
consolidateVariables in class Constraint
Parameters:
m - The map in which to find unique copies of the variables.

setQuantificationVariables

public void setQuantificationVariables(java.util.Vector o)
This method sets the given quantification variables to the given object references and evaluates the expressions involving those variables in this constraint's FirstOrderEquality children.

Specified by:
setQuantificationVariables in class FirstOrderConstraint
Parameters:
o - The new object references for the enclosing quantification variables, in order of nesting.

evaluate

public boolean evaluate()
Determines whether the constraint is satisfied.

Specified by:
evaluate in class Constraint

propositionalize

public PropositionalConstraint propositionalize()
Transforms this first order constraint into a propositional constraint.

Specified by:
propositionalize in class FirstOrderConstraint
Returns:
The propositionalized constraint.

hashCode

public int hashCode()
The hash code of a FirstOrderEqualityWithVariable is the sum of the hash codes of its children plus 2.

Overrides:
hashCode in class java.lang.Object
Returns:
The hash code for this FirstOrderEqualityWithVariable.

equals

public boolean equals(java.lang.Object o)
Two FirstOrderEqualityWithVariables are equivalent when their children are equivalent in either order.

Overrides:
equals in class java.lang.Object
Returns:
true iff the argument is a FirstOrderEqualityWithVariable involving the same variables.

runVisit

public void runVisit(Inference infer)
Calls the appropriate visit(·) method of the given Inference for this Constraint, as per the visitor pattern.

Specified by:
runVisit in class Constraint
Parameters:
infer - The inference visiting this constraint.