Package org.optaplanner.core.config.heuristic.selector.entity

## Class EntitySelectorConfig

- java.lang.Object
- - org.optaplanner.core.config.AbstractConfig<C>
  - - org.optaplanner.core.config.heuristic.selector.SelectorConfig<EntitySelectorConfig>
    - - org.optaplanner.core.config.heuristic.selector.entity.EntitySelectorConfig

-     public class EntitySelectorConfig
      extends SelectorConfig<EntitySelectorConfig>

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected SelectionCacheType` | `cacheType` |
    `protected Class<?>` | `entityClass` |
    `protected List<Class<? extends SelectionFilter>>` | `filterClassList` |
    `protected String` | `id` |
    `protected String` | `mimicSelectorRef` |
    `protected NearbySelectionConfig` | `nearbySelectionConfig` |
    `protected Class<? extends SelectionProbabilityWeightFactory>` | `probabilityWeightFactoryClass` |
    `protected Long` | `selectedCountLimit` |
    `protected SelectionOrder` | `selectionOrder` |
    `protected Class<? extends SelectionSorter>` | `sorterClass` |
    `protected Class<? extends Comparator>` | `sorterComparatorClass` |
    `protected EntitySorterManner` | `sorterManner` |
    `protected SelectionSorterOrder` | `sorterOrder` |
    `protected Class<? extends SelectionSorterWeightFactory>` | `sorterWeightFactoryClass` |

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `EntitySelectorConfig()` |
    `EntitySelectorConfig​(Class<?> entityClass)` |
    `EntitySelectorConfig​(EntitySelectorConfig inheritedConfig)` |

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `EntitySelector` | `buildEntitySelector​(HeuristicConfigPolicy configPolicy, SelectionCacheType minimumCacheType, SelectionOrder inheritedSelectionOrder)` |
    `protected EntitySelector` | `buildMimicReplaying​(HeuristicConfigPolicy configPolicy)` |
    `EntitySelectorConfig` | `copyConfig()` | Typically implemented by constructing a new instance and calling `AbstractConfig.inherit(AbstractConfig)` on it
    `protected boolean` | `determineBaseRandomSelection​(EntityDescriptor entityDescriptor, SelectionCacheType resolvedCacheType, SelectionOrder resolvedSelectionOrder)` |
    `static SelectionSorter` | `determineSorter​(EntitySorterManner entitySorterManner, EntityDescriptor entityDescriptor)` |
    `EntityDescriptor` | `extractEntityDescriptor​(HeuristicConfigPolicy configPolicy)` |
    `SelectionCacheType` | `getCacheType()` |
    `Class<?>` | `getEntityClass()` |
    `List<Class<? extends SelectionFilter>>` | `getFilterClassList()` |
    `String` | `getId()` |
    `String` | `getMimicSelectorRef()` |
    `NearbySelectionConfig` | `getNearbySelectionConfig()` |
    `Class<? extends SelectionProbabilityWeightFactory>` | `getProbabilityWeightFactoryClass()` |
    `Long` | `getSelectedCountLimit()` |
    `SelectionOrder` | `getSelectionOrder()` |
    `Class<? extends SelectionSorter>` | `getSorterClass()` |
    `Class<? extends Comparator>` | `getSorterComparatorClass()` |
    `EntitySorterManner` | `getSorterManner()` |
    `SelectionSorterOrder` | `getSorterOrder()` |
    `Class<? extends SelectionSorterWeightFactory>` | `getSorterWeightFactoryClass()` |
    `static boolean` | `hasSorter​(EntitySorterManner entitySorterManner, EntityDescriptor entityDescriptor)` |
    `EntitySelectorConfig` | `inherit​(EntitySelectorConfig inheritedConfig)` | Inherits each property of the `inheritedConfig` unless that property (or a semantic alternative) is defined by this instance (which overwrites the inherited behaviour).
    `protected boolean` | `isBaseInherentlyCached()` |
    `static EntitySelectorConfig` | `newMimicSelectorConfig​(String mimicSelectorRef)` |
    `void` | `setCacheType​(SelectionCacheType cacheType)` |
    `void` | `setEntityClass​(Class<?> entityClass)` |
    `void` | `setFilterClassList​(List<Class<? extends SelectionFilter>> filterClassList)` |
    `void` | `setId​(String id)` |
    `void` | `setMimicSelectorRef​(String mimicSelectorRef)` |
    `void` | `setNearbySelectionConfig​(NearbySelectionConfig nearbySelectionConfig)` |
    `void` | `setProbabilityWeightFactoryClass​(Class<? extends SelectionProbabilityWeightFactory> probabilityWeightFactoryClass)` |
    `void` | `setSelectedCountLimit​(Long selectedCountLimit)` |
    `void` | `setSelectionOrder​(SelectionOrder selectionOrder)` |
    `void` | `setSorterClass​(Class<? extends SelectionSorter> sorterClass)` |
    `void` | `setSorterComparatorClass​(Class<? extends Comparator> sorterComparatorClass)` |
    `void` | `setSorterManner​(EntitySorterManner sorterManner)` |
    `void` | `setSorterOrder​(SelectionSorterOrder sorterOrder)` |
    `void` | `setSorterWeightFactoryClass​(Class<? extends SelectionSorterWeightFactory> sorterWeightFactoryClass)` |
    `String` | `toString()` |

    - ### Methods inherited from class org.optaplanner.core.config.heuristic.selector.SelectorConfig

      `validateCacheTypeVersusSelectionOrder`

    - ### Methods inherited from class org.optaplanner.core.config.AbstractConfig

      `deduceEntityDescriptor, deduceVariableDescriptor, deduceVariableDescriptorList`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### id

          @XStreamAsAttribute
          protected String id

    - #### mimicSelectorRef

          @XStreamAsAttribute
          protected String mimicSelectorRef

    - #### entityClass

          protected Class<?> entityClass

    - #### cacheType

          protected SelectionCacheType cacheType

    - #### selectionOrder

          protected SelectionOrder selectionOrder

    - #### nearbySelectionConfig

          protected NearbySelectionConfig nearbySelectionConfig

    - #### filterClassList

          protected List<Class<? extends SelectionFilter>> filterClassList

    - #### sorterManner

          protected EntitySorterManner sorterManner

    - #### sorterComparatorClass

          protected Class<? extends Comparator> sorterComparatorClass

    - #### sorterWeightFactoryClass

          protected Class<? extends SelectionSorterWeightFactory> sorterWeightFactoryClass

    - #### sorterOrder

          protected SelectionSorterOrder sorterOrder

    - #### sorterClass

          protected Class<? extends SelectionSorter> sorterClass

    - #### probabilityWeightFactoryClass

          protected Class<? extends SelectionProbabilityWeightFactory> probabilityWeightFactoryClass

    - #### selectedCountLimit

          protected Long selectedCountLimit

  - ### Constructor Detail

    - #### EntitySelectorConfig

          public EntitySelectorConfig()

    - #### EntitySelectorConfig

          public EntitySelectorConfig​(Class<?> entityClass)

    - #### EntitySelectorConfig

          public EntitySelectorConfig​(EntitySelectorConfig inheritedConfig)

  - ### Method Detail

    - #### newMimicSelectorConfig

          public static EntitySelectorConfig newMimicSelectorConfig​(String mimicSelectorRef)

    - #### getId

          public String getId()

    - #### setId

          public void setId​(String id)

    - #### getMimicSelectorRef

          public String getMimicSelectorRef()

    - #### setMimicSelectorRef

          public void setMimicSelectorRef​(String mimicSelectorRef)

    - #### getEntityClass

          public Class<?> getEntityClass()

    - #### setEntityClass

          public void setEntityClass​(Class<?> entityClass)

    - #### getCacheType

          public SelectionCacheType getCacheType()

    - #### setCacheType

          public void setCacheType​(SelectionCacheType cacheType)

    - #### getSelectionOrder

          public SelectionOrder getSelectionOrder()

    - #### setSelectionOrder

          public void setSelectionOrder​(SelectionOrder selectionOrder)

    - #### getNearbySelectionConfig

          public NearbySelectionConfig getNearbySelectionConfig()

    - #### setNearbySelectionConfig

          public void setNearbySelectionConfig​(NearbySelectionConfig nearbySelectionConfig)

    - #### getFilterClassList

          public List<Class<? extends SelectionFilter>> getFilterClassList()

    - #### setFilterClassList

          public void setFilterClassList​(List<Class<? extends SelectionFilter>> filterClassList)

    - #### getSorterManner

          public EntitySorterManner getSorterManner()

    - #### setSorterManner

          public void setSorterManner​(EntitySorterManner sorterManner)

    - #### getSorterComparatorClass

          public Class<? extends Comparator> getSorterComparatorClass()

    - #### setSorterComparatorClass

          public void setSorterComparatorClass​(Class<? extends Comparator> sorterComparatorClass)

    - #### getSorterWeightFactoryClass

          public Class<? extends SelectionSorterWeightFactory> getSorterWeightFactoryClass()

    - #### setSorterWeightFactoryClass

          public void setSorterWeightFactoryClass​(Class<? extends SelectionSorterWeightFactory> sorterWeightFactoryClass)

    - #### getSorterOrder

          public SelectionSorterOrder getSorterOrder()

    - #### setSorterOrder

          public void setSorterOrder​(SelectionSorterOrder sorterOrder)

    - #### getSorterClass

          public Class<? extends SelectionSorter> getSorterClass()

    - #### setSorterClass

          public void setSorterClass​(Class<? extends SelectionSorter> sorterClass)

    - #### getProbabilityWeightFactoryClass

          public Class<? extends SelectionProbabilityWeightFactory> getProbabilityWeightFactoryClass()

    - #### setProbabilityWeightFactoryClass

          public void setProbabilityWeightFactoryClass​(Class<? extends SelectionProbabilityWeightFactory> probabilityWeightFactoryClass)

    - #### getSelectedCountLimit

          public Long getSelectedCountLimit()

    - #### setSelectedCountLimit

          public void setSelectedCountLimit​(Long selectedCountLimit)

    - #### extractEntityDescriptor

          public EntityDescriptor extractEntityDescriptor​(HeuristicConfigPolicy configPolicy)

    - #### buildEntitySelector

          public EntitySelector buildEntitySelector​(HeuristicConfigPolicy configPolicy,
                                                    SelectionCacheType minimumCacheType,
                                                    SelectionOrder inheritedSelectionOrder)

      Parameters:
        `configPolicy` - never null
        `minimumCacheType` - never null, If caching is used (different from `SelectionCacheType.JUST_IN_TIME`), then it should be at least this `SelectionCacheType` because an ancestor already uses such caching and less would be pointless.
        `inheritedSelectionOrder` - never null
      Returns:
        never null

    - #### buildMimicReplaying

          protected EntitySelector buildMimicReplaying​(HeuristicConfigPolicy configPolicy)

    - #### determineBaseRandomSelection

          protected boolean determineBaseRandomSelection​(EntityDescriptor entityDescriptor,
                                                         SelectionCacheType resolvedCacheType,
                                                         SelectionOrder resolvedSelectionOrder)

    - #### isBaseInherentlyCached

          protected boolean isBaseInherentlyCached()

    - #### inherit

          public EntitySelectorConfig inherit​(EntitySelectorConfig inheritedConfig)

      Description copied from class: `AbstractConfig`
      Inherits each property of the `inheritedConfig` unless that property (or a semantic alternative) is defined by this instance (which overwrites the inherited behaviour).

      After the inheritance, if a property on this `AbstractConfig` composition is replaced, it should not affect the inherited composition instance.

      Specified by:
        `inherit` in class `AbstractConfig<EntitySelectorConfig>`
      Parameters:
        `inheritedConfig` - never null
      Returns:
        this

    - #### copyConfig

          public EntitySelectorConfig copyConfig()

      Description copied from class: `AbstractConfig`
      Typically implemented by constructing a new instance and calling `AbstractConfig.inherit(AbstractConfig)` on it
      Specified by:
        `copyConfig` in class `AbstractConfig<EntitySelectorConfig>`
      Returns:
        new instance

    - #### toString

          public String toString()

      Overrides:
        `toString` in class `AbstractConfig<EntitySelectorConfig>`

    - #### hasSorter

          public static boolean hasSorter​(EntitySorterManner entitySorterManner,
                                          EntityDescriptor entityDescriptor)

    - #### determineSorter

          public static SelectionSorter determineSorter​(EntitySorterManner entitySorterManner,
                                                        EntityDescriptor entityDescriptor)