jopt.csp.spi.arcalgorithm.constraint.num
Class NumConstraint

java.lang.Object
  extended byjopt.csp.spi.arcalgorithm.variable.VariableChangeBase
      extended byjopt.csp.spi.arcalgorithm.constraint.AbstractConstraint
          extended byjopt.csp.spi.arcalgorithm.constraint.num.NumConstraint
All Implemented Interfaces:
jopt.csp.variable.CspConstraint, GraphConstraint, NumConstants, PostableConstraint, VariableChangeSource
Direct Known Subclasses:
NumRangeConstraint, ThreeVarConstraint, TwoVarConstraint

public abstract class NumConstraint
extends AbstractConstraint
implements VariableChangeSource

Base class for numeric based constraints


Field Summary
 
Fields inherited from interface jopt.csp.spi.util.NumConstants
ADD, DIVIDE, DIVIDE_BY, DIVIDE_BY_CEIL, DIVIDE_BY_FLOOR, DIVIDE_CEIL, DIVIDE_FLOOR, DOUBLE, DOUBLE_NEG_INF, DOUBLE_POS_INF, DOUBLE_ZERO, EQ, FLOAT, FLOAT_NEG_INF, FLOAT_POS_INF, FLOAT_ZERO, GEQ, GT, HALF_PI, INTEGER, INTEGER_MAX, INTEGER_MIN, INTEGER_ZERO, LEQ, LONG, LONG_MAX, LONG_MIN, LONG_ZERO, LT, MULTIPLY, NEQ, ONE_AND_HALF_PI, PI, RANGE, SUBTRACT, SUBTRACT_FROM, TWO_PI
 
Method Summary
 void addVariableChangeListener(VariableChangeListener listener)
          Adds a listener interested in variable change events
abstract  Arc[] getBooleanSourceArcs(boolean useConstraint)
          Returns array of arcs that will affect the boolean true / false value of this constraint upon a change
 java.lang.Number getLargestMax(NumExpr n, GenericNumExpr gn)
           
 java.lang.Number getLargestMin(NumExpr n, GenericNumExpr gn)
           
 java.lang.Number getSmallestMax(NumExpr n, GenericNumExpr gn)
           
 java.lang.Number getSmallestMin(NumExpr n, GenericNumExpr gn)
           
abstract  boolean isViolated(boolean allViolated)
          Returns true if constraint cannot be satisfied.
 void removeVariableChangeListener(VariableChangeListener listener)
          Removes a variable listener from this variable
 
Methods inherited from class jopt.csp.spi.arcalgorithm.constraint.AbstractConstraint
associateToGraph, getGraphConstraintFragment, getPostableOpposite, isFalse, isTrue, toBoolean
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface jopt.csp.spi.arcalgorithm.graph.arc.PostableConstraint
getBooleanSourceArcs, getBooleanSourceNodes, postToGraph
 

Method Detail

isViolated

public abstract boolean isViolated(boolean allViolated)
Returns true if constraint cannot be satisfied. If all violated is true, this method returns true only when all conditions are violated. If all violated is false, this method returns true when any condition is violated. The presence of multiple conditions is an issue when generic vars/exprs are involved.

Overrides:
isViolated in class AbstractConstraint
Parameters:
allViolated - Determines the criteria for violation

getBooleanSourceArcs

public abstract Arc[] getBooleanSourceArcs(boolean useConstraint)
Returns array of arcs that will affect the boolean true / false value of this constraint upon a change

Parameters:
useConstraint - a boolean that determines if the constraint at that level should be added. Constraints immediatly below a boolean constraint should not be added, while all others below should.

getSmallestMin

public java.lang.Number getSmallestMin(NumExpr n,
                                       GenericNumExpr gn)

getLargestMin

public java.lang.Number getLargestMin(NumExpr n,
                                      GenericNumExpr gn)

getSmallestMax

public java.lang.Number getSmallestMax(NumExpr n,
                                       GenericNumExpr gn)

getLargestMax

public java.lang.Number getLargestMax(NumExpr n,
                                      GenericNumExpr gn)

addVariableChangeListener

public void addVariableChangeListener(VariableChangeListener listener)
Description copied from interface: VariableChangeSource
Adds a listener interested in variable change events

Specified by:
addVariableChangeListener in interface VariableChangeSource
Overrides:
addVariableChangeListener in class VariableChangeBase

removeVariableChangeListener

public void removeVariableChangeListener(VariableChangeListener listener)
Description copied from interface: VariableChangeSource
Removes a variable listener from this variable

Specified by:
removeVariableChangeListener in interface VariableChangeSource
Overrides:
removeVariableChangeListener in class VariableChangeBase