org.optaplanner.core.api.domain.valuerange

## Interface CountableValueRange<T>

- All Superinterfaces:
    ValueRange<T>
  All Known Implementing Classes:
    AbstractCountableValueRange, BigDecimalValueRange, BigIntegerValueRange, BooleanValueRange, CompositeCountableValueRange, EmptyValueRange, IntValueRange, ListValueRange, LongValueRange, NullableCountableValueRange, TemporalValueRange

      public interface CountableValueRange<T>
      extends ValueRange<T>

  A `ValueRange` that is ending. Therefore, it has a discrete (as in non-continuous) range.

  An implementation must extend `AbstractCountableValueRange` to ensure backwards compatibility in future versions.

  See Also:
    `ValueRangeFactory`, `ValueRange`, `AbstractCountableValueRange`

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `Iterator<T>` | `createOriginalIterator()` Select the elements in original (natural) order.
    `T` | `get(long index)` Used by uniform random selection in a composite or nullable CountableValueRange.
    `long` | `getSize()` Used by uniform random selection in a composite or nullable CountableValueRange.

    - ### Methods inherited from interface org.optaplanner.core.api.domain.valuerange.ValueRange

      `contains, createRandomIterator, isEmpty`

- - ### Method Detail

    - #### getSize

          long getSize()

      Used by uniform random selection in a composite or nullable CountableValueRange.
      Returns:
        the exact number of elements generated by this `CountableValueRange`, always `>= 0`

    - #### get

          T get(long index)

      Used by uniform random selection in a composite or nullable CountableValueRange.
      Parameters:
        `index` - always `<` `getSize()`
      Returns:
        sometimes null (if `PlanningVariable.nullable()` is true)

    - #### createOriginalIterator

          Iterator<T> createOriginalIterator()

      Select the elements in original (natural) order.
      Returns:
        never null

Copyright © 2006–2021 JBoss by Red Hat. All rights reserved.