org.drools.planner.core.heuristic.selector
Interface Selector

All Superinterfaces:
EventListener, SolverLifecycleListener, SolverPhaseLifecycleListener
All Known Subinterfaces:
EntitySelector, MoveSelector, PillarSelector, SubChainSelector, ValueSelector
All Known Implementing Classes:
AbstractCachingEntitySelector, AbstractCachingMoveSelector, AbstractCachingValueSelector, AbstractEntitySelector, AbstractMoveSelector, AbstractSelector, AbstractValueSelector, CachingEntitySelector, CachingMoveSelector, CachingValueSelector, CartesianProductMoveSelector, ChangeMoveSelector, CompositeMoveSelector, DecreasingDifficultyEntitySelector, DefaultSubChainSelector, FilteringEntitySelector, FilteringMoveSelector, FromSolutionEntitySelector, FromSolutionPropertyValueSelector, GenericMoveSelector, MoveIteratorFactoryToMoveSelectorBridge, MoveListFactoryToMoveSelectorBridge, PillarSwapMoveSelector, ProbabilityEntitySelector, ProbabilityMoveSelector, ProbabilityValueSelector, SameValuePillarSelector, ShufflingEntitySelector, ShufflingMoveSelector, ShufflingValueSelector, SubChainChangeMoveSelector, SubChainSwapMoveSelector, SwapMoveSelector, UnionMoveSelector

public interface Selector
extends SolverPhaseLifecycleListener

General interface for MoveSelector, EntitySelector and ValueSelector which generates Moves or parts of them.


Method Summary
 long getSize()
          A random JIT Selector with isNeverEnding() true should return a size as if it would be able to return each distinct element only once, because the size can be used in SelectionProbabilityWeightFactory.
 boolean isContinuous()
          If true, then isNeverEnding() is also true.
 boolean isNeverEnding()
          Is true if isContinuous() is true or if this selector is in random order (for most cases).
 
Methods inherited from interface org.drools.planner.core.phase.event.SolverPhaseLifecycleListener
phaseEnded, phaseStarted, stepEnded, stepStarted
 
Methods inherited from interface org.drools.planner.core.solver.event.SolverLifecycleListener
solvingEnded, solvingStarted
 

Method Detail

isContinuous

boolean isContinuous()
If true, then isNeverEnding() is also true.

Returns:
true if any of the value ranges are continuous (as in for example every double value between 1.2 and 1.4)

isNeverEnding

boolean isNeverEnding()
Is true if isContinuous() is true or if this selector is in random order (for most cases). Is never true when this selector is in shuffled order (which is less scalable but more exact).

Returns:
true if the Iterator.hasNext() of the Iterator created by Iterable.iterator() never returns false.

getSize

long getSize()
A random JIT Selector with isNeverEnding() true should return a size as if it would be able to return each distinct element only once, because the size can be used in SelectionProbabilityWeightFactory.

Returns:
the approximate number of elements generated by this Selector, always >= 0
Throws:
IllegalStateException - if isContinuous() returns true, but not if only isNeverEnding() returns true


Copyright © 2001-2012 JBoss by Red Hat. All Rights Reserved.