Annotation Type PlanningVariable
-
@Target({METHOD,FIELD}) @Retention(RUNTIME) public @interface PlanningVariable
Specifies that a bean property (or a field) can be changed and should be optimized by the optimization algorithms.It is specified on a getter of a java bean property (or directly on a field) of a
PlanningEntity
class.
-
-
Optional Element Summary
Optional Elements Modifier and Type Optional Element Description PlanningVariableGraphType
graphType
In some use cases, such as Vehicle Routing, planning entities form a specific graph type, as specified byPlanningVariableGraphType
.boolean
nullable
A nullable planning variable will automatically add the planning value null to theValueRangeProvider
's range.Class<? extends Comparator>
strengthComparatorClass
Allows a collection of planning values for this variable to be sorted by strength.Class<? extends SelectionSorterWeightFactory>
strengthWeightFactoryClass
TheSelectionSorterWeightFactory
alternative forstrengthComparatorClass()
.String[]
valueRangeProviderRefs
AnyValueRangeProvider
annotation on aPlanningSolution
orPlanningEntity
will automatically be registered with itsValueRangeProvider.id()
.
-
-
-
Element Detail
-
valueRangeProviderRefs
String[] valueRangeProviderRefs
AnyValueRangeProvider
annotation on aPlanningSolution
orPlanningEntity
will automatically be registered with itsValueRangeProvider.id()
.There should be at least 1 element in this array.
- Returns:
- 1 (or more) registered
ValueRangeProvider.id()
- Default:
- {}
-
-
-
nullable
boolean nullable
A nullable planning variable will automatically add the planning value null to theValueRangeProvider
's range.Nullable true is not compatible with
PlanningVariableGraphType.CHAINED
true. Nullable true is not compatible with a primitive property type.- Returns:
- true if null is a valid value for this planning variable
- Default:
- false
-
-
-
graphType
PlanningVariableGraphType graphType
In some use cases, such as Vehicle Routing, planning entities form a specific graph type, as specified byPlanningVariableGraphType
.- Returns:
- never null, defaults to
PlanningVariableGraphType.NONE
- Default:
- org.optaplanner.core.api.domain.variable.PlanningVariableGraphType.NONE
-
-
-
strengthComparatorClass
Class<? extends Comparator> strengthComparatorClass
Allows a collection of planning values for this variable to be sorted by strength. A strengthWeight estimates how strong a planning value is. Some algorithms benefit from planning on weaker planning values first or from focusing on them.The
Comparator
should sort in ascending strength. For example: sorting 3 computers on strength based on their RAM capacity: Computer B (1GB RAM), Computer A (2GB RAM), Computer C (7GB RAM),Do not use together with
strengthWeightFactoryClass()
.- Returns:
PlanningVariable.NullStrengthComparator
when it is null (workaround for annotation limitation)- See Also:
strengthWeightFactoryClass()
- Default:
- org.optaplanner.core.api.domain.variable.PlanningVariable.NullStrengthComparator.class
-
-
-
strengthWeightFactoryClass
Class<? extends SelectionSorterWeightFactory> strengthWeightFactoryClass
TheSelectionSorterWeightFactory
alternative forstrengthComparatorClass()
.Do not use together with
strengthComparatorClass()
.- Returns:
PlanningVariable.NullStrengthWeightFactory
when it is null (workaround for annotation limitation)- See Also:
strengthComparatorClass()
- Default:
- org.optaplanner.core.api.domain.variable.PlanningVariable.NullStrengthWeightFactory.class
-
-