Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| OptaPlanner distribution 6.2.0.Final
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.optaplanner.core.impl.heuristic.selector.value
Class FromSolutionPropertyValueSelector

    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.FromSolutionPropertyValueSelector

All Implemented Interfaces:
  Iterable<Object>, EventListener, IterableSelector<Object>, Selector, EntityIndependentValueSelector, ValueSelector, PhaseLifecycleListener, SolverLifecycleListener

    public class FromSolutionPropertyValueSelector

extends AbstractValueSelector
implements EntityIndependentValueSelector

This is the common `ValueSelector` implementation.

Field Summary
`protected boolean` | `cachedEntityListIsDirty`
`protected Long` | `cachedEntityListRevision`
`protected ValueRange<Object>` | `cachedValueRange`
`protected SelectionCacheType` | `minimumCacheType`
`protected boolean` | `randomSelection`
`protected EntityIndependentValueRangeDescriptor` | `valueRangeDescriptor`
`protected boolean` | `valueRangeMightContainEntity`

Fields inherited from class org.optaplanner.core.impl.heuristic.selector.AbstractSelector
`logger, phaseLifecycleSupport, workingRandom`

Constructor Summary
`FromSolutionPropertyValueSelector(EntityIndependentValueRangeDescriptor valueRangeDescriptor, SelectionCacheType minimumCacheType, boolean randomSelection)`

Method Summary
`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.
`long` | `getSize()` A random JIT `Selector` with `Selector.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`.
`long` | `getSize(Object entity)` Similar to `IterableSelector.getSize()`, but requires an entity.
`GenuineVariableDescriptor` | `getVariableDescriptor()`
`boolean` | `isCountable()` If false, then `Selector.isNeverEnding()` is true.
`boolean` | `isNeverEnding()` Is true if `Selector.isCountable()` is false or if this selector is in random order (for most cases).
`Iterator<Object>` | `iterator()`
`Iterator<Object>` | `iterator(Object entity)` Similar to `Iterable.iterator()`, but requires an entity.
`void` | `phaseEnded(AbstractPhaseScope phaseScope)`
`void` | `phaseStarted(AbstractPhaseScope phaseScope)`
`void` | `stepStarted(AbstractStepScope stepScope)`
`String` | `toString()`

Methods inherited from class org.optaplanner.core.impl.heuristic.selector.AbstractSelector
`solvingEnded, solvingStarted, stepEnded`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Methods inherited from interface org.optaplanner.core.impl.phase.event.PhaseLifecycleListener
`stepEnded`

Methods inherited from interface org.optaplanner.core.impl.solver.event.SolverLifecycleListener
`solvingEnded, solvingStarted`

Field Detail

### valueRangeDescriptor

    protected final EntityIndependentValueRangeDescriptor valueRangeDescriptor

### minimumCacheType

    protected final SelectionCacheType minimumCacheType

### randomSelection

    protected final boolean randomSelection

### valueRangeMightContainEntity

    protected final boolean valueRangeMightContainEntity

### cachedValueRange

    protected ValueRange<Object> cachedValueRange

### cachedEntityListRevision

    protected Long cachedEntityListRevision

### cachedEntityListIsDirty

    protected boolean cachedEntityListIsDirty

Constructor Detail

### FromSolutionPropertyValueSelector

    public FromSolutionPropertyValueSelector(EntityIndependentValueRangeDescriptor valueRangeDescriptor,
                                             SelectionCacheType minimumCacheType,
                                             boolean randomSelection)

Method Detail

### getVariableDescriptor

    public GenuineVariableDescriptor getVariableDescriptor()

  Specified by:
    `getVariableDescriptor` in interface `ValueSelector`
  Returns:
    never null

### 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

### phaseStarted

    public void phaseStarted(AbstractPhaseScope phaseScope)

  Specified by:
    `phaseStarted` in interface `PhaseLifecycleListener`
  Overrides:
    `phaseStarted` in class `AbstractSelector`

### stepStarted

    public void stepStarted(AbstractStepScope stepScope)

  Specified by:
    `stepStarted` in interface `PhaseLifecycleListener`
  Overrides:
    `stepStarted` in class `AbstractSelector`

### phaseEnded

    public void phaseEnded(AbstractPhaseScope phaseScope)

  Specified by:
    `phaseEnded` in interface `PhaseLifecycleListener`
  Overrides:
    `phaseEnded` in class `AbstractSelector`

### 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)

### isNeverEnding

    public boolean isNeverEnding()

  Description copied from interface: `Selector`
  Is true if `Selector.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 interface `Selector`
  Returns:
    true if the `Iterator.hasNext()` of the `Iterator` created by `Iterable.iterator()` never returns false (except when it's empty).

### 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()

  Description copied from interface: `IterableSelector`
  A random JIT `Selector` with `Selector.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`.

  Specified by:
    `getSize` in interface `IterableSelector<Object>`
  Returns:
    the approximate number of elements generated by this `Selector`, always >= 0

### iterator

    public Iterator<Object> iterator(Object entity)

  Description copied from interface: `ValueSelector`
  Similar to `Iterable.iterator()`, but requires an entity.

  Specified by:
    `iterator` in interface `ValueSelector`
  Parameters:
    `entity` - never null
  Returns:
    never null

### iterator

    public Iterator<Object> iterator()

  Specified by:
    `iterator` in interface `Iterable<Object>`

### 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()

### toString

    public String toString()

  Overrides:
    `toString` in class `Object`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| OptaPlanner distribution 6.2.0.Final
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2006-2015 JBoss by Red Hat. All Rights Reserved.