Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| OptaPlanner distribution 6.1.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.pillar
Class DefaultPillarSelector

    java.lang.Object
      org.optaplanner.core.impl.heuristic.selector.AbstractSelector
          org.optaplanner.core.impl.heuristic.selector.entity.pillar.DefaultPillarSelector

All Implemented Interfaces:
  Iterable<List<Object>>, EventListener, ListIterable<List<Object>>, SelectionCacheLifecycleListener, PillarSelector, IterableSelector<List<Object>>, ListIterableSelector<List<Object>>, Selector, PhaseLifecycleListener, SolverLifecycleListener

    public class DefaultPillarSelector

extends AbstractSelector
implements PillarSelector, SelectionCacheLifecycleListener

See Also:
  `PillarSelector`

Field Summary
`protected static SelectionCacheType` | `CACHE_TYPE`
`protected List<List<Object>>` | `cachedBasePillarList`
`protected EntitySelector` | `entitySelector`
`protected int` | `maximumSubPillarSize`
`protected int` | `minimumSubPillarSize` Unlike `DefaultSubChainSelector.minimumSubChainSize` and `DefaultSubChainSelector.maximumSubChainSize`, the sub selection here is any sub set.
`protected boolean` | `randomSelection`
`protected boolean` | `subPillarEnabled`
`protected Collection<GenuineVariableDescriptor>` | `variableDescriptors`

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

Constructor Summary
`DefaultPillarSelector(EntitySelector entitySelector, Collection<GenuineVariableDescriptor> variableDescriptors, boolean randomSelection, boolean subPillarEnabled, int minimumSubPillarSize, int maximumSubPillarSize)`

Method Summary
`void` | `constructCache(DefaultSolverScope solverScope)`
`void` | `disposeCache(DefaultSolverScope solverScope)`
`SelectionCacheType` | `getCacheType()` Unless this selector itself caches, this returns `SelectionCacheType.JUST_IN_TIME`, even if a selector child caches.
`EntityDescriptor` | `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` | `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<List<Object>>` | `iterator()`
`ListIterator<List<Object>>` | `listIterator()` See `List.listIterator()`
`ListIterator<List<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.PhaseLifecycleListener
`phaseEnded, phaseStarted, stepEnded, stepStarted`

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

Field Detail

### CACHE_TYPE

    protected static final SelectionCacheType CACHE_TYPE

### entitySelector

    protected final EntitySelector entitySelector

### variableDescriptors

    protected final Collection<GenuineVariableDescriptor> variableDescriptors

### randomSelection

    protected final boolean randomSelection

### subPillarEnabled

    protected final boolean subPillarEnabled

### minimumSubPillarSize

    protected final int minimumSubPillarSize

  Unlike `DefaultSubChainSelector.minimumSubChainSize` and `DefaultSubChainSelector.maximumSubChainSize`, the sub selection here is any sub set. For example from ABCDE,it can select BCD and also ACD.

### maximumSubPillarSize

    protected final int maximumSubPillarSize

### cachedBasePillarList

    protected List<List<Object>> cachedBasePillarList

Constructor Detail

### DefaultPillarSelector

    public DefaultPillarSelector(EntitySelector entitySelector,
                                 Collection<GenuineVariableDescriptor> variableDescriptors,
                                 boolean randomSelection,
                                 boolean subPillarEnabled,
                                 int minimumSubPillarSize,
                                 int maximumSubPillarSize)

Method Detail

### getEntityDescriptor

    public EntityDescriptor getEntityDescriptor()

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

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

  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<List<Object>>`
  Returns:
    the approximate number of elements generated by this `Selector`, always >= 0

### iterator

    public Iterator<List<Object>> iterator()

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

### listIterator

    public ListIterator<List<Object>> listIterator()

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

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

### listIterator

    public ListIterator<List<Object>> listIterator(int index)

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

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

### toString

    public String toString()

  Overrides:
    `toString` in class `Object`

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

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