de.grogra.xl.impl.queues
public final class QueueCollection extends java.lang.Object
QueueCollection represents a set of
Queues in the context of a
Graph.
For the base implementation of the XL interfaces, it is obtained
at run-time by the invocation of
Graph.getQueues().
Queues are added to this collection by invocation of
getQueue(QueueDescriptor).
| Constructor and Description |
|---|
QueueCollection(Graph graph) |
| Modifier and Type | Method and Description |
|---|---|
void |
addQueue(Queue queue) |
void |
clear()
Clears all queues of this collection.
|
Graph |
getGraph() |
RuntimeModel |
getModel() |
<Q extends Queue> |
getQueue(QueueDescriptor<Q> descr)
Registers and returns a queue for the given descriptor.
|
void |
getQueues(java.util.List<Queue> list) |
boolean |
process(int[] segments)
Processes the queues of this collection by invoking
Queue.process(int[]) for every queue. |
void |
resetToSegment(int n) |
int |
startNewSegment() |
public QueueCollection(Graph graph)
public void addQueue(Queue queue)
public void clear()
public Graph getGraph()
Graph of this queue collectionpublic RuntimeModel getModel()
RuntimeModel of the graph of this queue collectionpublic <Q extends Queue> Q getQueue(QueueDescriptor<Q> descr)
QueueDescriptor.createQueue(QueueCollection)
on descr, registered with this queue collection,
and returned.descr - the descriptor of the queuepublic void getQueues(java.util.List<Queue> list)
public boolean process(int[] segments)
throws RuntimeModelException
Queue.process(int[]) for every queue.
All queues which have been registered by
getQueue(QueueDescriptor) are processed. The order of
processing is defined by the QueueDescriptors of the queues:
If q and r are two queues having descriptors
Q and R, then
q.process(segments) may be invoked before r.process(segments)
only if Q is not contained in R.queuesToProcessAfter()
and R is not contained in Q.queuesToProcessBefore().
After all queues have been processed, this method clears the queues.true iff at least one invocation of the
process method on a queue has returned true.RuntimeModelException - if the processing of a queue throws
such an exception, or if there is a circularity in the processing orderpublic void resetToSegment(int n)
public int startNewSegment()