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
ValueRanges 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-2015 JBoss by Red Hat. All Rights Reserved.