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

## org.optaplanner.core.impl.heuristic.selector.entity
Class FromSolutionEntitySelector

    java.lang.Object
      org.optaplanner.core.impl.heuristic.selector.AbstractSelector
          org.optaplanner.core.impl.heuristic.selector.entity.AbstractEntitySelector
              org.optaplanner.core.impl.heuristic.selector.entity.FromSolutionEntitySelector

All Implemented Interfaces:
  Iterable<Object>, EventListener, ListIterable<Object>, SelectionCacheLifecycleListener, EntitySelector, IterableSelector<Object>, ListIterableSelector<Object>, Selector, SolverPhaseLifecycleListener, SolverLifecycleListener

    public class FromSolutionEntitySelector

extends AbstractEntitySelector
implements SelectionCacheLifecycleListener

This is the common `EntitySelector` implementation.

Field Summary
`protected List<Object>` | `cachedEntityList`
`protected SelectionCacheType` | `cacheType`
`protected PlanningEntityDescriptor` | `entityDescriptor`
`protected boolean` | `randomSelection`

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

Constructor Summary
`FromSolutionEntitySelector(PlanningEntityDescriptor entityDescriptor, SelectionCacheType cacheType, boolean randomSelection)`

Method Summary
`void` | `constructCache(DefaultSolverScope solverScope)`
`void` | `disposeCache(DefaultSolverScope solverScope)`
`Iterator<Object>` | `endingIterator()` If `Selector.isNeverEnding()` is true, then `Iterable.iterator()` will never end.
`SelectionCacheType` | `getCacheType()` Unless this selector itself caches, this returns `SelectionCacheType.JUST_IN_TIME`, even if a selector child caches.
`PlanningEntityDescriptor` | `getEntityDescriptor()`
`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`.
`boolean` | `isContinuous()` If true, then `Selector.isNeverEnding()` is also true.
`boolean` | `isNeverEnding()` Is true if `Selector.isContinuous()` is true or if this selector is in random order (for most cases).
`Iterator<Object>` | `iterator()`
`ListIterator<Object>` | `listIterator()` See `List.listIterator()`
`ListIterator<Object>` | `listIterator(int index)` See `List.listIterator()`
`String` | `toString()`

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, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Methods inherited from interface org.optaplanner.core.impl.phase.event.SolverPhaseLifecycleListener
`phaseEnded, phaseStarted, stepEnded, stepStarted`

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

Field Detail

### entityDescriptor

    protected final PlanningEntityDescriptor entityDescriptor

### cacheType

    protected final SelectionCacheType cacheType

### randomSelection

    protected final boolean randomSelection

### cachedEntityList

    protected List<Object> cachedEntityList

Constructor Detail

### FromSolutionEntitySelector

    public FromSolutionEntitySelector(PlanningEntityDescriptor entityDescriptor,
                                      SelectionCacheType cacheType,
                                      boolean randomSelection)

Method Detail

### getEntityDescriptor

    public PlanningEntityDescriptor getEntityDescriptor()

  Specified by:
    `getEntityDescriptor` in interface `EntitySelector`
  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

### constructCache

    public void constructCache(DefaultSolverScope solverScope)

  Specified by:
    `constructCache` in interface `SelectionCacheLifecycleListener`

### disposeCache

    public void disposeCache(DefaultSolverScope solverScope)

  Specified by:
    `disposeCache` in interface `SelectionCacheLifecycleListener`

### isContinuous

    public boolean isContinuous()

  Description copied from interface: `Selector`
  If true, then `Selector.isNeverEnding()` is also true.

  Specified by:
    `isContinuous` in interface `Selector`
  Returns:
    true if any of the value ranges are continuous (as in for example every double value between 1.2 and 1.4)

### isNeverEnding

    public boolean isNeverEnding()

  Description copied from interface: `Selector`
  Is true if `Selector.isContinuous()` is true 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.

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

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

### listIterator

    public ListIterator<Object> listIterator()

  Description copied from interface: `ListIterable`
  See `List.listIterator()`

  Specified by:
    `listIterator` in interface `ListIterable<Object>`
  Returns:
    never null, see `List.listIterator()`.

### listIterator

    public ListIterator<Object> listIterator(int index)

  Description copied from interface: `ListIterable`
  See `List.listIterator()`

  Specified by:
    `listIterator` in interface `ListIterable<Object>`
  Parameters:
    `index` - lower than the size of this `ListIterable`, see `List.listIterator(int)`.
  Returns:
    never null, see `List.listIterator(int)`.

### endingIterator

    public Iterator<Object> endingIterator()

  Description copied from interface: `EntitySelector`
  If `Selector.isNeverEnding()` is true, then `Iterable.iterator()` will never end. This returns an ending `Iterator`, that tries to match `Iterable.iterator()` as much as possible, but might not respect the configuration of this `EntitySelector` entirely.

  Specified by:
    `endingIterator` in interface `EntitySelector`
  Returns:
    never null
  See Also:
    `Iterable.iterator()`

### toString

    public String toString()

  Overrides:
    `toString` in class `Object`

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

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