Class CachingValueSelector<Solution_>
java.lang.Object
org.optaplanner.core.impl.heuristic.selector.AbstractSelector<Solution_>
org.optaplanner.core.impl.heuristic.selector.AbstractDemandEnabledSelector<Solution_>
org.optaplanner.core.impl.heuristic.selector.value.decorator.AbstractCachingValueSelector<Solution_>
org.optaplanner.core.impl.heuristic.selector.value.decorator.CachingValueSelector<Solution_>
- All Implemented Interfaces:
Iterable<Object>
,EventListener
,SelectionCacheLifecycleListener<Solution_>
,IterableSelector<Solution_,
,Object> Selector<Solution_>
,EntityIndependentValueSelector<Solution_>
,ValueSelector<Solution_>
,PhaseLifecycleListener<Solution_>
,SolverLifecycleListener<Solution_>
public final class CachingValueSelector<Solution_>
extends AbstractCachingValueSelector<Solution_>
implements EntityIndependentValueSelector<Solution_>
A
ValueSelector
that caches the result of its child ValueSelector
.
Keep this code in sync with CachingEntitySelector
and CachingMoveSelector
.
-
Field Summary
Fields inherited from class org.optaplanner.core.impl.heuristic.selector.value.decorator.AbstractCachingValueSelector
cachedValueList, cacheType, childValueSelector
Fields inherited from class org.optaplanner.core.impl.heuristic.selector.AbstractSelector
logger, phaseLifecycleSupport, workingRandom
-
Constructor Summary
ConstructorDescriptionCachingValueSelector
(EntityIndependentValueSelector<Solution_> childValueSelector, SelectionCacheType cacheType, boolean randomSelection) -
Method Summary
Modifier and TypeMethodDescriptionboolean
int
hashCode()
boolean
Is true ifSelector.isCountable()
is false or if this selector is in random order (for most cases).iterator()
Similar toIterable.iterator()
, but requires an entity.toString()
Methods inherited from class org.optaplanner.core.impl.heuristic.selector.value.decorator.AbstractCachingValueSelector
constructCache, disposeCache, endingIterator, endingIterator, getCacheType, getChildValueSelector, getSize, getSize, getVariableDescriptor, isCountable
Methods inherited from class org.optaplanner.core.impl.heuristic.selector.AbstractSelector
phaseEnded, phaseStarted, solvingEnded, solvingStarted, stepEnded, stepStarted
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.optaplanner.core.impl.heuristic.selector.IterableSelector
getSize, spliterator
Methods inherited from interface org.optaplanner.core.impl.phase.event.PhaseLifecycleListener
phaseEnded, phaseStarted, stepEnded, stepStarted
Methods inherited from interface org.optaplanner.core.impl.heuristic.selector.Selector
getCacheType, isCountable
Methods inherited from interface org.optaplanner.core.impl.solver.event.SolverLifecycleListener
solvingEnded, solvingError, solvingStarted
Methods inherited from interface org.optaplanner.core.impl.heuristic.selector.value.ValueSelector
endingIterator, getSize, getVariableDescriptor
-
Field Details
-
randomSelection
protected final boolean randomSelection
-
-
Constructor Details
-
CachingValueSelector
public CachingValueSelector(EntityIndependentValueSelector<Solution_> childValueSelector, SelectionCacheType cacheType, boolean randomSelection)
-
-
Method Details
-
isNeverEnding
public boolean isNeverEnding()Description copied from interface:Selector
Is true ifSelector.isCountable()
is false 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).- Specified by:
isNeverEnding
in interfaceSelector<Solution_>
- Returns:
- true if the
Iterator.hasNext()
of theIterator
created byIterable.iterator()
never returns false (except when it's empty).
-
iterator
Description copied from interface:ValueSelector
Similar toIterable.iterator()
, but requires an entity.- Specified by:
iterator
in interfaceValueSelector<Solution_>
- Parameters:
entity
- never null- Returns:
- never null
-
iterator
-
equals
- Overrides:
equals
in classAbstractCachingValueSelector<Solution_>
-
hashCode
public int hashCode()- Overrides:
hashCode
in classAbstractCachingValueSelector<Solution_>
-
toString
-