Annotation Type 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.
- 
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interfaceWorkaround for annotation limitation instrengthComparatorClass().static interfaceWorkaround for annotation limitation instrengthWeightFactoryClass(). - 
Optional Element Summary
Optional ElementsModifier and TypeOptional ElementDescriptionIn some use cases, such as Vehicle Routing, planning entities form a specific graph type, as specified byPlanningVariableGraphType.booleanA nullable planning variable will automatically add the planning value null to theValueRangeProvider's range.Class<? extends Comparator>Allows a collection of planning values for this variable to be sorted by strength.Class<? extends SelectionSorterWeightFactory>TheSelectionSorterWeightFactoryalternative forstrengthComparatorClass().String[]AnyValueRangeProviderannotation on aPlanningSolutionorPlanningEntitywill automatically be registered with itsValueRangeProvider.id(). 
- 
Element Details
- 
valueRangeProviderRefs
String[] valueRangeProviderRefsAnyValueRangeProviderannotation on aPlanningSolutionorPlanningEntitywill automatically be registered with itsValueRangeProvider.id().If no refs are provided, all
ValueRangeProviders without an id will be registered, provided their return types match the type of this variable.- Returns:
 - 0 or more registered 
ValueRangeProvider.id() 
- Default:
 - {}
 
 - 
nullable
boolean nullableA 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 graphTypeIn 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:
 - NONE
 
 - 
strengthComparatorClass
Class<? extends Comparator> strengthComparatorClassAllows 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:
 
- Default:
 - org.optaplanner.core.api.domain.variable.PlanningVariable.NullStrengthComparator.class
 
 - 
strengthWeightFactoryClass
Class<? extends SelectionSorterWeightFactory> strengthWeightFactoryClassTheSelectionSorterWeightFactoryalternative forstrengthComparatorClass().Do not use together with
strengthComparatorClass().- Returns:
 PlanningVariable.NullStrengthWeightFactorywhen it is null (workaround for annotation limitation)- See Also:
 
- Default:
 - org.optaplanner.core.api.domain.variable.PlanningVariable.NullStrengthWeightFactory.class
 
 
 -