choco.branch
Interface ObjectBranching

All Superinterfaces:
Branching
All Known Implementing Classes:
PalmAbstractBranching, PalmAssignVar, PalmCyclicSplit, PathRepairAssignVar

public interface ObjectBranching
extends Branching

ObjectBranching objects are specific branching objects where each branch is labeled with an Object. This is typically useful for palm control objects (where the label happens to be a List of Constraint).


Method Summary
 boolean finishedBranching(java.lang.Object item, java.lang.Object previousBranch)
          Checks whether all branches have already been explored at the current choice point
 java.lang.Object getNextBranch(java.lang.Object branchingItem, java.lang.Object previousBranch)
          When several decisions can be taken (for unsure extension for instance), this methos allows to choose next decisions.
 java.lang.Object selectFirstBranch(java.lang.Object item)
          Computes decisions that can be taken on the specified item by the solver.
 
Methods inherited from interface choco.branch.Branching
selectBranchingObject
 

Method Detail

selectFirstBranch

java.lang.Object selectFirstBranch(java.lang.Object item)
Computes decisions that can be taken on the specified item by the solver.

Parameters:
item - The item the solver branchs on.

getNextBranch

java.lang.Object getNextBranch(java.lang.Object branchingItem,
                               java.lang.Object previousBranch)
When several decisions can be taken (for unsure extension for instance), this methos allows to choose next decisions.

Parameters:
branchingItem - the branching object under scrutiny
previousBranch - the object labelling the previous branch
Returns:
the object labelling the current branch

finishedBranching

boolean finishedBranching(java.lang.Object item,
                          java.lang.Object previousBranch)
Checks whether all branches have already been explored at the current choice point

Returns:
true if no more branches can be generated