Class CompositeValueRangeDescriptor<Solution_>
- java.lang.Object
-
- org.optaplanner.core.impl.domain.valuerange.descriptor.AbstractValueRangeDescriptor<Solution_>
-
- org.optaplanner.core.impl.domain.valuerange.descriptor.CompositeValueRangeDescriptor<Solution_>
-
- Type Parameters:
Solution_
- the solution type, the class with thePlanningSolution
annotation
- All Implemented Interfaces:
EntityIndependentValueRangeDescriptor<Solution_>
,ValueRangeDescriptor<Solution_>
public class CompositeValueRangeDescriptor<Solution_> extends AbstractValueRangeDescriptor<Solution_> implements EntityIndependentValueRangeDescriptor<Solution_>
-
-
Field Summary
Fields Modifier and Type Field Description protected List<ValueRangeDescriptor<Solution_>>
childValueRangeDescriptorList
protected boolean
entityIndependent
-
Fields inherited from class org.optaplanner.core.impl.domain.valuerange.descriptor.AbstractValueRangeDescriptor
addNullInValueRange, variableDescriptor
-
-
Constructor Summary
Constructors Constructor Description CompositeValueRangeDescriptor(GenuineVariableDescriptor<Solution_> variableDescriptor, boolean addNullInValueRange, List<ValueRangeDescriptor<Solution_>> childValueRangeDescriptorList)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ValueRange<?>
extractValueRange(Solution_ solution)
As specified byValueRangeDescriptor.extractValueRange(Solution_, java.lang.Object)
.ValueRange<?>
extractValueRange(Solution_ solution, Object entity)
boolean
isCountable()
boolean
isEntityIndependent()
If this method return true, this instance is safe to cast toEntityIndependentValueRangeDescriptor
, otherwise it requires an entity to determine theValueRange
.-
Methods inherited from class org.optaplanner.core.impl.domain.valuerange.descriptor.AbstractValueRangeDescriptor
doNullInValueRangeWrapping, getVariableDescriptor, mightContainEntity, toString
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.optaplanner.core.impl.domain.valuerange.descriptor.ValueRangeDescriptor
getVariableDescriptor, mightContainEntity
-
-
-
-
Field Detail
-
childValueRangeDescriptorList
protected final List<ValueRangeDescriptor<Solution_>> childValueRangeDescriptorList
-
entityIndependent
protected boolean entityIndependent
-
-
Constructor Detail
-
CompositeValueRangeDescriptor
public CompositeValueRangeDescriptor(GenuineVariableDescriptor<Solution_> variableDescriptor, boolean addNullInValueRange, List<ValueRangeDescriptor<Solution_>> childValueRangeDescriptorList)
-
-
Method Detail
-
isCountable
public boolean isCountable()
- Specified by:
isCountable
in interfaceValueRangeDescriptor<Solution_>
- Returns:
- true if the
ValueRange
is countable (for example a double value range between 1.2 and 1.4 is not countable)
-
isEntityIndependent
public boolean isEntityIndependent()
Description copied from interface:ValueRangeDescriptor
If this method return true, this instance is safe to cast toEntityIndependentValueRangeDescriptor
, otherwise it requires an entity to determine theValueRange
.- Specified by:
isEntityIndependent
in interfaceValueRangeDescriptor<Solution_>
- Returns:
- true if the
ValueRange
is the same for all entities of the same solution
-
extractValueRange
public ValueRange<?> extractValueRange(Solution_ solution, Object entity)
- Specified by:
extractValueRange
in interfaceValueRangeDescriptor<Solution_>
- Parameters:
solution
- never nullentity
- never null. To avoid this parameter, useEntityIndependentValueRangeDescriptor.extractValueRange(Solution_)
instead.- Returns:
- never null
-
extractValueRange
public ValueRange<?> extractValueRange(Solution_ solution)
Description copied from interface:EntityIndependentValueRangeDescriptor
As specified byValueRangeDescriptor.extractValueRange(Solution_, java.lang.Object)
.- Specified by:
extractValueRange
in interfaceEntityIndependentValueRangeDescriptor<Solution_>
- Parameters:
solution
- never null- Returns:
- never null
- See Also:
ValueRangeDescriptor.extractValueRange(Solution_, java.lang.Object)
-
-