Interface ValueRangeDescriptor<Solution_>

Type Parameters:
Solution_ - the solution type, the class with the PlanningSolution annotation
All Known Subinterfaces:
EntityIndependentValueRangeDescriptor<Solution_>
All Known Implementing Classes:
AbstractFromPropertyValueRangeDescriptor, AbstractValueRangeDescriptor, CompositeValueRangeDescriptor, FromEntityPropertyValueRangeDescriptor, FromSolutionPropertyValueRangeDescriptor

public interface ValueRangeDescriptor<Solution_>
  • Method Details

    • getVariableDescriptor

      GenuineVariableDescriptor<Solution_> getVariableDescriptor()
      Returns:
      never null
    • isCountable

      boolean isCountable()
      Returns:
      true if the ValueRange is countable (for example a double value range between 1.2 and 1.4 is not countable)
    • isEntityIndependent

      boolean isEntityIndependent()
      If this method return true, this instance is safe to cast to EntityIndependentValueRangeDescriptor, otherwise it requires an entity to determine the ValueRange.
      Returns:
      true if the ValueRange is the same for all entities of the same solution
    • mightContainEntity

      boolean mightContainEntity()
      Returns:
      true if the ValueRange might contain a planning entity instance (not necessarily of the same entity class as this entity class of this descriptor.
    • extractValueRange

      ValueRange<?> extractValueRange(Solution_ solution, Object entity)
      Parameters:
      solution - never null
      entity - never null. To avoid this parameter, use EntityIndependentValueRangeDescriptor.extractValueRange(Solution_) instead.
      Returns:
      never null