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.
  • Constructor Details

    • PartitionQueue

      public PartitionQueue(int partCount)
  • Method Details

    • 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:
    • 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:
    • 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:
    • iterator

      public Iterator<PartitionChangeMove<Solution_>> iterator()
      Specified by:
      iterator in interface Iterable<Solution_>
    • getPartsCalculationCount

      public long getPartsCalculationCount()