choco.bool
Class AbstractLargeBoolConstraintWithCounterOpposite

java.lang.Object
  extended by choco.AbstractEntity
      extended by choco.AbstractConstraint
          extended by choco.bool.AbstractCompositeConstraint
              extended by choco.bool.AbstractLargeCompositeConstraint
                  extended by choco.bool.AbstractLargeBoolConstraint
                      extended by choco.bool.AbstractLargeBoolConstraintWithCounterOpposite
All Implemented Interfaces:
BoolConstraint, CompositeConstraint, Constraint, Entity, IntConstraint, IntVarEventListener, VarEventListener, Propagator, java.lang.Cloneable, java.util.EventListener
Direct Known Subclasses:
Cardinality, LargeDisjunction

public abstract class AbstractLargeBoolConstraintWithCounterOpposite
extends AbstractLargeBoolConstraint

An abstract class storing the counterpart of each subconstraint + an index correspondence for variables (between subconstraints and opposite subconstraints)


Field Summary
 
Fields inherited from class choco.bool.AbstractLargeBoolConstraint
nbFalseStatus, nbTrueStatus, statusBitVector
 
Fields inherited from class choco.bool.AbstractLargeCompositeConstraint
additionalIndices, additionalVars, constraints, nbConstraints, offsets
 
Fields inherited from class choco.AbstractConstraint
active, constAwakeEvent, hook, priority
 
Fields inherited from class choco.AbstractEntity
problem
 
Constructor Summary
AbstractLargeBoolConstraintWithCounterOpposite(Constraint[] subConstraints)
           
AbstractLargeBoolConstraintWithCounterOpposite(Constraint[] subConstraints, IntDomainVar[] moreVars)
           
 
Method Summary
 int assignIndices(AbstractCompositeConstraint root, int i, boolean dynamicAddition)
          performs the global numbering (wrt root) of the variables contained in the subtree this, starting from i
 java.lang.Object clone()
          returns a copy of the constraint.
 Constraint getOppositeSubConstraint(int subConstIdx)
           
protected  void initAbstractLargeBoolConstraintWithCounterOpposite()
           
 void setSubConstraintStatus(Constraint subConstraint, boolean status, int varOffset)
          records that the status of a subConstraint is now true
 
Methods inherited from class choco.bool.AbstractLargeBoolConstraint
getStatus, getTargetStatus, initAbstractLargeBoolConstraint, setStatus, setTargetStatus
 
Methods inherited from class choco.bool.AbstractLargeCompositeConstraint
getConstraintIdx, getIntVar, getLocalVarIndex, getNbSubConstraints, getNbVars, getNbVarsFromSubConst, getSubConstraint, getSubConstraintIdx, getVar, getVarIdxInOpposite, isCompletelyInstantiated, setConstraintIndex, setVar
 
Methods inherited from class choco.bool.AbstractCompositeConstraint
addListener, awakeOnBounds, awakeOnRemovals, getGlobalVarIndex
 
Methods inherited from class choco.AbstractConstraint
awake, awakeOnVar, connectVar, constAwake, delete, fail, getEvent, getPlugIn, getPriority, getProblem, isActive, isEntailed, isEquivalentTo, opposite, setActive, setEntailed, setPassive, setPlugIn, substituteVar
 
Methods inherited from class choco.AbstractEntity
pretty
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface choco.bool.CompositeConstraint
getGlobalVarIndex, getNbSubConstraints, getSubConstraint, getSubConstraintIdx
 
Methods inherited from interface choco.integer.var.IntVarEventListener
awakeOnInf, awakeOnInst, awakeOnRem, awakeOnSup, getConstraintIdx, setConstraintIndex
 
Methods inherited from interface choco.prop.VarEventListener
addListener, isActive, setActive, setPassive
 
Methods inherited from interface choco.integer.IntConstraint
awakeOnBounds, awakeOnRemovals, getIntVar
 
Methods inherited from interface choco.Propagator
awake, awakeOnVar, constAwake, delete, getEvent, getPlugIn, getPriority, isCompletelyInstantiated, isConsistent, isEntailed, propagate
 
Methods inherited from interface choco.prop.VarEventListener
addListener, isActive, setActive, setPassive
 
Methods inherited from interface choco.integer.var.IntVarEventListener
awakeOnInf, awakeOnInst, awakeOnRem, awakeOnSup, getConstraintIdx, setConstraintIndex
 
Methods inherited from interface choco.prop.VarEventListener
addListener, isActive, setActive, setPassive
 

Constructor Detail

AbstractLargeBoolConstraintWithCounterOpposite

public AbstractLargeBoolConstraintWithCounterOpposite(Constraint[] subConstraints)

AbstractLargeBoolConstraintWithCounterOpposite

public AbstractLargeBoolConstraintWithCounterOpposite(Constraint[] subConstraints,
                                                      IntDomainVar[] moreVars)
Method Detail

clone

public java.lang.Object clone()
                       throws java.lang.CloneNotSupportedException
Description copied from interface: Constraint
returns a copy of the constraint. This copy is a new object, may be a recursive copy in case of composite constraints. The original and the copy share the same variables & plugins

Specified by:
clone in interface Constraint
Overrides:
clone in class AbstractLargeBoolConstraint
Returns:
Throws:
java.lang.CloneNotSupportedException

initAbstractLargeBoolConstraintWithCounterOpposite

protected void initAbstractLargeBoolConstraintWithCounterOpposite()

assignIndices

public int assignIndices(AbstractCompositeConstraint root,
                         int i,
                         boolean dynamicAddition)
Description copied from interface: Propagator
performs the global numbering (wrt root) of the variables contained in the subtree this, starting from i

Specified by:
assignIndices in interface Propagator
Overrides:
assignIndices in class AbstractLargeBoolConstraint
Parameters:
root - the overall root constraint, for which the variables are numbered
i - the index that will assigned to the first variable in the subtree this (originally 0)
dynamicAddition - whether the addition is undone automatically on backtracking
Returns:
the index of the last variable in the subtree

getOppositeSubConstraint

public Constraint getOppositeSubConstraint(int subConstIdx)

setSubConstraintStatus

public void setSubConstraintStatus(Constraint subConstraint,
                                   boolean status,
                                   int varOffset)
Description copied from interface: BoolConstraint
records that the status of a subConstraint is now true

Specified by:
setSubConstraintStatus in interface BoolConstraint
Overrides:
setSubConstraintStatus in class AbstractLargeBoolConstraint
Parameters:
subConstraint - the subconstraint
status - the new value of the status to be recorded
varOffset - the offset for the local variable indexing in the subConstraint wrt the global numbering in this