ptolemy.graph
Class Inequality

java.lang.Object
  extended by ptolemy.graph.Inequality

public class Inequality
extends java.lang.Object

An inequality over a CPO. Each inequality consists of two InequalityTerms, the lesser term and the greater term. The relation between them is less than or equal to. In addition, an inequality keeps a list of variables in it. The variables are InequalityTerms that consist of a single variable.

Since:
Ptolemy II 0.2
Version:
$Id: Inequality.java 57040 2010-01-27 20:52:32Z cxh $
Author:
Yuhong Xiong
See Also:
InequalityTerm
Accepted Rating:
Green (kienhuis)
Proposed Rating:
Green (yuhong)

Field Summary
private  InequalityTerm _greaterTerm
           
private  InequalityTerm _lesserTerm
           
 
Constructor Summary
Inequality(InequalityTerm lesserTerm, InequalityTerm greaterTerm)
          Construct an inequality.
 
Method Summary
 boolean equals(java.lang.Object object)
          Return true if object named by the argument is equal to this Inequality object.
 InequalityTerm getGreaterTerm()
          Return the greater term of this inequality.
 InequalityTerm getLesserTerm()
          Return the lesser term of this inequality.
 int hashCode()
          Return the hashCode of this object.
 boolean isSatisfied(CPO cpo)
          Test if this inequality is satisfied with the current value of variables.
 java.lang.String toString()
          Override the base class to describe the inequality.
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

_lesserTerm

private InequalityTerm _lesserTerm

_greaterTerm

private InequalityTerm _greaterTerm
Constructor Detail

Inequality

public Inequality(InequalityTerm lesserTerm,
                  InequalityTerm greaterTerm)
Construct an inequality.

Parameters:
lesserTerm - An InequalityTerm that is less than or equal to the second argument.
greaterTerm - An InequalityTerm that is greater than or equal to the first argument.
Throws:
java.lang.IllegalArgumentException - If the lesserTerm or the greaterTerm is null.
Method Detail

equals

public boolean equals(java.lang.Object object)
Return true if object named by the argument is equal to this Inequality object.

Override to return true if the greater and lesser terms of this object are the same as the greater and lesser terms of the specified object.

Overrides:
equals in class java.lang.Object
Parameters:
object - Object to compare against.
Returns:
true If the object is an Inequality and both the greater term and lesser term are equal to the corresponding terms of this object.

getGreaterTerm

public InequalityTerm getGreaterTerm()
Return the greater term of this inequality.

Returns:
An InequalityTerm

getLesserTerm

public InequalityTerm getLesserTerm()
Return the lesser term of this inequality.

Returns:
An InequalityTerm

hashCode

public int hashCode()
Return the hashCode of this object.

Override to return the exclusive OR of the hashcodes of the greater and lesser terms. This ensures that two objects that return true to equals() have the same hashcode.

Overrides:
hashCode in class java.lang.Object
Returns:
The XOR of the greater and lesser terms.

isSatisfied

public boolean isSatisfied(CPO cpo)
                    throws IllegalActionException
Test if this inequality is satisfied with the current value of variables.

Parameters:
cpo - A CPO over which this inequality is defined.
Returns:
True if this inequality is satisfied; false otherwise.
Throws:
IllegalActionException - If thrown while getting the value of the terms.

toString

public java.lang.String toString()
Override the base class to describe the inequality.

Overrides:
toString in class java.lang.Object
Returns:
A string describing the inequality.