org.optaplanner.core.impl.partitionedsearch.queue

## Class PartitionQueue<Solution_>

- java.lang.Object
- - org.optaplanner.core.impl.partitionedsearch.queue.PartitionQueue<Solution_>

- Type Parameters:
    `Solution_` - the solution type, the class with the `PlanningSolution` annotation
  All Implemented Interfaces:
    Iterable<PartitionChangeMove<Solution_>>

      public class PartitionQueue<Solution_>
      extends Object
      implements Iterable<PartitionChangeMove<Solution_>>

  This class is thread-safe.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected org.slf4j.Logger` | `logger`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `PartitionQueue(int partCount)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addExceptionThrown(int partIndex, Throwable throwable)` This method is thread-safe.
    `void` | `addFinish(int partIndex, long partCalculationCount)` This method is thread-safe.
    `void` | `addMove(int partIndex, PartitionChangeMove<Solution_> move)` This method is thread-safe.
    `long` | `getPartsCalculationCount()`
    `Iterator<PartitionChangeMove<Solution_>>` | `iterator()`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface java.lang.Iterable

      `forEach, spliterator`

- - ### Field Detail

    - #### logger

          protected final transient org.slf4j.Logger logger

  - ### Constructor Detail

    - #### PartitionQueue

          public PartitionQueue(int partCount)

  - ### Method Detail

    - #### addMove

          public void addMove(int partIndex,
                              PartitionChangeMove<Solution_> move)

      This method is thread-safe. The previous move(s) for this partIndex (if it hasn't been consumed yet), will be skipped during iteration.
      Parameters:
        `partIndex` - `0 <= partIndex < partCount`
        `move` - never null
      See Also:
        `BlockingQueue.add(Object)`

    - #### addFinish

          public void addFinish(int partIndex,
                                long partCalculationCount)

      This method is thread-safe. The previous move for this partIndex (that haven't been consumed yet), will still be returned during iteration.
      Parameters:
        `partIndex` - `0 <= partIndex < partCount`
        `partCalculationCount` - at least 0
      See Also:
        `BlockingQueue.add(Object)`

    - #### addExceptionThrown

          public void addExceptionThrown(int partIndex,
                                         Throwable throwable)

      This method is thread-safe. The previous move for this partIndex (if it hasn't been consumed yet), will still be returned during iteration before the iteration throws an exception.
      Parameters:
        `partIndex` - `0 <= partIndex < partCount`
        `throwable` - never null
      See Also:
        `BlockingQueue.add(Object)`

    - #### iterator

          public Iterator<PartitionChangeMove<Solution_>> iterator()

      Specified by:
        `iterator` in interface `Iterable<PartitionChangeMove<Solution_>>`

    - #### getPartsCalculationCount

          public long getPartsCalculationCount()

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