OptaPlanner core 6.0.1.Final

org.optaplanner.core.api.domain.entity
Annotation Type PlanningEntity


@Target(value=TYPE)
@Retention(value=RUNTIME)
public @interface PlanningEntity

Specifies that the class is a planning entity. Each planning entity must have at least 1 PlanningVariable property.

The class should have a public no-arg constructor, so it can be instantiated.


Optional Element Summary
 Class<? extends Comparator> difficultyComparatorClass
          Allows a collection of planning entities to be sorted by difficulty.
 Class<? extends SelectionSorterWeightFactory> difficultyWeightFactoryClass
          The SelectionSorterWeightFactory alternative for difficultyComparatorClass().
 Class<? extends SelectionFilter> movableEntitySelectionFilter
          An immovable planning entity is never changed during planning, this is useful in repeated planning use cases (such as continuous planning and real-time planning).
 

movableEntitySelectionFilter

public abstract Class<? extends SelectionFilter> movableEntitySelectionFilter
An immovable planning entity is never changed during planning, this is useful in repeated planning use cases (such as continuous planning and real-time planning).

This applies to all the planning variables of this planning entity. To make individual variables immovable, see https://issues.jboss.org/browse/PLANNER-124

The method SelectionFilter.accept(ScoreDirector, Object) returns false if the selection entity is immovable and it returns true if the selection entity is movable

Returns:
PlanningEntity.NullMovableEntitySelectionFilter when it is null (workaround for annotation limitation)
Default:
org.optaplanner.core.api.domain.entity.PlanningEntity.NullMovableEntitySelectionFilter.class

difficultyComparatorClass

public abstract Class<? extends Comparator> difficultyComparatorClass
Allows a collection of planning entities to be sorted by difficulty. A difficultyWeight estimates how hard is to plan a certain PlanningEntity. Some algorithms benefit from planning on more difficult planning entities first/last or from focusing on them.

The Comparator should sort in ascending difficulty (even though many optimization algorithms will reverse it). For example: sorting 3 processes on difficultly based on their RAM usage requirement: Process B (1GB RAM), Process A (2GB RAM), Process C (7GB RAM),

Do not use together with difficultyWeightFactoryClass().

Returns:
PlanningEntity.NullDifficultyComparator when it is null (workaround for annotation limitation)
See Also:
difficultyWeightFactoryClass()
Default:
org.optaplanner.core.api.domain.entity.PlanningEntity.NullDifficultyComparator.class

difficultyWeightFactoryClass

public abstract Class<? extends SelectionSorterWeightFactory> difficultyWeightFactoryClass
The SelectionSorterWeightFactory alternative for difficultyComparatorClass().

Do not use together with difficultyComparatorClass().

Returns:
PlanningEntity.NullDifficultyWeightFactory when it is null (workaround for annotation limitation)
See Also:
difficultyComparatorClass()
Default:
org.optaplanner.core.api.domain.entity.PlanningEntity.NullDifficultyWeightFactory.class

OptaPlanner core 6.0.1.Final

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