public abstract class AbstractCachingValueSelector extends AbstractValueSelector implements SelectionCacheLifecycleListener
| Modifier and Type | Field and Description |
|---|---|
protected List<Object> |
cachedValueList |
protected SelectionCacheType |
cacheType |
protected EntityIndependentValueSelector |
childValueSelector |
logger, phaseLifecycleSupport, workingRandom| Constructor and Description |
|---|
AbstractCachingValueSelector(EntityIndependentValueSelector childValueSelector,
SelectionCacheType cacheType) |
| Modifier and Type | Method and Description |
|---|---|
void |
constructCache(DefaultSolverScope solverScope) |
void |
disposeCache(DefaultSolverScope solverScope) |
Iterator<Object> |
endingIterator() |
Iterator<Object> |
endingIterator(Object entity)
If
Selector.isNeverEnding() is true, then ValueSelector.iterator(Object) will never end. |
SelectionCacheType |
getCacheType()
Unless this selector itself caches, this returns
SelectionCacheType.JUST_IN_TIME,
even if a selector child caches. |
ValueSelector |
getChildValueSelector() |
long |
getSize() |
long |
getSize(Object entity)
Similar to
IterableSelector.getSize(), but requires an entity. |
GenuineVariableDescriptor |
getVariableDescriptor() |
boolean |
isCountable()
If false, then
Selector.isNeverEnding() is true. |
phaseEnded, phaseStarted, solvingEnded, solvingStarted, stepEnded, stepStartedclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waititeratorisNeverEndingphaseEnded, phaseStarted, stepEnded, stepStartedsolvingEnded, solvingStartedprotected final EntityIndependentValueSelector childValueSelector
protected final SelectionCacheType cacheType
public AbstractCachingValueSelector(EntityIndependentValueSelector childValueSelector, SelectionCacheType cacheType)
public ValueSelector getChildValueSelector()
public SelectionCacheType getCacheType()
SelectorSelectionCacheType.JUST_IN_TIME,
even if a selector child caches.getCacheType in interface SelectorgetCacheType in class AbstractSelectorpublic void constructCache(DefaultSolverScope solverScope)
constructCache in interface SelectionCacheLifecycleListenerpublic void disposeCache(DefaultSolverScope solverScope)
disposeCache in interface SelectionCacheLifecycleListenerpublic GenuineVariableDescriptor getVariableDescriptor()
getVariableDescriptor in interface ValueSelectorpublic boolean isCountable()
SelectorSelector.isNeverEnding() is true.isCountable in interface SelectorValueRanges are countable
(for example a double value range between 1.2 and 1.4 is not countable)public long getSize(Object entity)
ValueSelectorIterableSelector.getSize(), but requires an entity.getSize in interface ValueSelectorentity - never nullSelector, always >= 0public long getSize()
public Iterator<Object> endingIterator(Object entity)
ValueSelectorSelector.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.endingIterator in interface ValueSelectorentity - never nullValueSelector.iterator(Object)Copyright © 2006–2019 JBoss by Red Hat. All rights reserved.