Class PartitionQueue<Solution_>
- java.lang.Object
-
- org.optaplanner.core.impl.partitionedsearch.queue.PartitionQueue<Solution_>
-
- Type Parameters:
Solution_
- the solution type, the class with thePlanningSolution
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 Description protected org.slf4j.Logger
logger
-
Constructor Summary
Constructors Constructor Description PartitionQueue(int partCount)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method 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
-
-
-
-
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()
-
getPartsCalculationCount
public long getPartsCalculationCount()
-
-