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
PlanningEntityclass. 
- 
- 
Optional Element Summary
Optional Elements Modifier and Type Optional Element Description PlanningVariableGraphTypegraphTypeIn some use cases, such as Vehicle Routing, planning entities form a specific graph type, as specified byPlanningVariableGraphType.booleannullableA nullable planning variable will automatically add the planning value null to theValueRangeProvider's range.Class<? extends Comparator>strengthComparatorClassAllows a collection of planning values for this variable to be sorted by strength.Class<? extends SelectionSorterWeightFactory>strengthWeightFactoryClassTheSelectionSorterWeightFactoryalternative forstrengthComparatorClass().String[]valueRangeProviderRefsAnyValueRangeProviderannotation on aPlanningSolutionorPlanningEntitywill automatically be registered with itsValueRangeProvider.id(). 
 - 
 
- 
- 
Element Detail
- 
valueRangeProviderRefs
String[] valueRangeProviderRefs
AnyValueRangeProviderannotation on aPlanningSolutionorPlanningEntitywill 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.CHAINEDtrue. 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
Comparatorshould 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.NullStrengthComparatorwhen 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
TheSelectionSorterWeightFactoryalternative forstrengthComparatorClass().Do not use together with
strengthComparatorClass().- Returns:
 PlanningVariable.NullStrengthWeightFactorywhen it is null (workaround for annotation limitation)- See Also:
 strengthComparatorClass()
- Default:
 - org.optaplanner.core.api.domain.variable.PlanningVariable.NullStrengthWeightFactory.class
 
 
 - 
 
 -