org.optaplanner.core.impl.heuristic.selector.value.decorator
Class AbstractCachingValueSelector
java.lang.Object
org.optaplanner.core.impl.heuristic.selector.AbstractSelector
org.optaplanner.core.impl.heuristic.selector.value.AbstractValueSelector
org.optaplanner.core.impl.heuristic.selector.value.decorator.AbstractCachingValueSelector
- All Implemented Interfaces:
- EventListener, SelectionCacheLifecycleListener, Selector, ValueSelector, PhaseLifecycleListener, SolverLifecycleListener
- Direct Known Subclasses:
- CachingValueSelector, ShufflingValueSelector, SortingValueSelector
public abstract class AbstractCachingValueSelector
- extends AbstractValueSelector
- implements SelectionCacheLifecycleListener
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface org.optaplanner.core.impl.heuristic.selector.value.ValueSelector |
iterator |
childValueSelector
protected final EntityIndependentValueSelector childValueSelector
cacheType
protected final SelectionCacheType cacheType
cachedValueList
protected List<Object> cachedValueList
AbstractCachingValueSelector
public AbstractCachingValueSelector(EntityIndependentValueSelector childValueSelector,
SelectionCacheType cacheType)
getChildValueSelector
public ValueSelector getChildValueSelector()
getCacheType
public SelectionCacheType getCacheType()
- Description copied from interface:
Selector
- Unless this selector itself caches, this returns
SelectionCacheType.JUST_IN_TIME
,
even if a selector child caches.
- Specified by:
getCacheType
in interface Selector
- Overrides:
getCacheType
in class AbstractSelector
- Returns:
- never null
constructCache
public void constructCache(DefaultSolverScope solverScope)
- Specified by:
constructCache
in interface SelectionCacheLifecycleListener
disposeCache
public void disposeCache(DefaultSolverScope solverScope)
- Specified by:
disposeCache
in interface SelectionCacheLifecycleListener
getVariableDescriptor
public GenuineVariableDescriptor getVariableDescriptor()
- Specified by:
getVariableDescriptor
in interface ValueSelector
- Returns:
- never null
isCountable
public boolean isCountable()
- Description copied from interface:
Selector
- If false, then
Selector.isNeverEnding()
is true.
- Specified by:
isCountable
in interface Selector
- Returns:
- true if all the
ValueRange
s are countable
(for example a double value range between 1.2 and 1.4 is not countable)
getSize
public long getSize(Object entity)
- Description copied from interface:
ValueSelector
- Similar to
IterableSelector.getSize()
, but requires an entity.
- Specified by:
getSize
in interface ValueSelector
- Parameters:
entity
- never null
- Returns:
- the approximate number of elements generated by this
Selector
, always >= 0
getSize
public long getSize()
endingIterator
public Iterator<Object> endingIterator(Object entity)
- Description copied from interface:
ValueSelector
- If
Selector.isNeverEnding()
is true, then ValueSelector.iterator(Object)
will never end.
This returns an ending Iterator
, that tries to match ValueSelector.iterator(Object)
as much as possible,
but return each distinct element only once
and therefore it might not respect the configuration of this ValueSelector
entirely.
- Specified by:
endingIterator
in interface ValueSelector
- Returns:
- never null
- See Also:
ValueSelector.iterator(Object)
endingIterator
public Iterator<Object> endingIterator()
Copyright © 2006-2014 JBoss by Red Hat. All Rights Reserved.