org.umber.catalan.process.queue
Class QueueManager

java.lang.Object
  extended byorg.umber.catalan.process.queue.QueueManager

public class QueueManager
extends java.lang.Object

Manager for a group of named IQueue objects. Queues can be created, destroyed, renamed, and merged together, unless the QueueManager is read-only.

Author:
jsheets

Constructor Summary
QueueManager()
          Creates a new instance of QueueManager with no existing queues.
QueueManager(java.util.Map queues)
          Creates a new instance of QueueManager with the given queues.
 
Method Summary
 void addQueue(java.lang.String name, IQueue queue)
          Adds a named queue.
 void copyNodes(java.lang.String sourceQueue, java.lang.String destQueue, int destIndex, NodeSelection sourceSelection)
          Copies nodes from one IQueue to another.
 void deleteNodes(java.lang.String sourceQueue, NodeSelection sourceSelection)
          Deletes the selected nodes in the given queue.
 void deleteQueue(java.lang.String name)
          Removes the queue with the given name.
 IQueue getDefaultQueue()
          Retrieves the default IQueue.
 IQueue getQueue(java.lang.String queueName)
          Retrieves the named IQueue object, or null if queue does not exist.
 java.lang.String[] getQueueNames()
          Retrieves the names of all queues.
 IQueue[] getQueues()
          Retrieves all IQueue objects.
 void moveNodes(java.lang.String sourceQueue, java.lang.String destQueue, int destIndex, NodeSelection sourceSelection)
          Moves the selected nodes from the source queue to the destination queue.
 void renameQueue(java.lang.String oldName, java.lang.String newName)
          Renames the queue to the given name.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

QueueManager

public QueueManager()
Creates a new instance of QueueManager with no existing queues.


QueueManager

public QueueManager(java.util.Map queues)
             throws QueueException
Creates a new instance of QueueManager with the given queues. The Map of Queues must contain String-only keys and IQueue-only values, and no nulls. If the Map contains a queue with the name of "default", that queue will be returned by getDefaultQueue().

Parameters:
queues - Map of String keys to IQueue values
Throws:
QueueException - if the queues Map contains any null values or bad types
Method Detail

getDefaultQueue

public IQueue getDefaultQueue()
Retrieves the default IQueue. The default IQueue has the name "default", and can be accessed through getQueues(). The default queue will always exist.

Returns:
the default queue

getQueueNames

public java.lang.String[] getQueueNames()
Retrieves the names of all queues.

Returns:
an array of all queue names

getQueues

public IQueue[] getQueues()
Retrieves all IQueue objects.

Returns:
all queues

getQueue

public IQueue getQueue(java.lang.String queueName)
Retrieves the named IQueue object, or null if queue does not exist.

Parameters:
queueName - name of the queue
Returns:
the named queue

addQueue

public void addQueue(java.lang.String name,
                     IQueue queue)
              throws QueueException
Adds a named queue. A queue by the same name must not already exist.

Parameters:
name - name of the new queue
queue - IQueue object to add
Throws:
QueueException - if a queue with the given name already exists, or the queue or name is null

deleteQueue

public void deleteQueue(java.lang.String name)
                 throws QueueException
Removes the queue with the given name. Does nothing if the named queue does not exist.

Parameters:
name - name of the queue to destroy
Throws:
QueueException - if the IQueue is read-only or if attempting to delete default queue

renameQueue

public void renameQueue(java.lang.String oldName,
                        java.lang.String newName)
                 throws QueueException
Renames the queue to the given name. A queue by the same name must not already exist.

Parameters:
oldName - current name of the queue
newName - new name for the queue
Throws:
QueueException - if a queue with the new name already exists, or if the IQueue is read-only, or if attempting to rename default queue

copyNodes

public void copyNodes(java.lang.String sourceQueue,
                      java.lang.String destQueue,
                      int destIndex,
                      NodeSelection sourceSelection)
               throws QueueException
Copies nodes from one IQueue to another.

Parameters:
sourceQueue - name of queue to copy nodes from
destQueue - name of queue to copy nodes to
destIndex - index in destination queue to insert nodes at
sourceSelection - selection of source queue nodes to copy
Throws:
QueueException - if source queue does not exist or if destination queue is read-only

moveNodes

public void moveNodes(java.lang.String sourceQueue,
                      java.lang.String destQueue,
                      int destIndex,
                      NodeSelection sourceSelection)
               throws QueueException
Moves the selected nodes from the source queue to the destination queue.

Parameters:
sourceQueue - name of queue to move nodes from
destQueue - name of queue to move nodes to
destIndex - index in destination queue to insert nodes at
sourceSelection - selection of source queue nodes to move
Throws:
QueueException - if source queue does not exist or if source or destination queue is read-only

deleteNodes

public void deleteNodes(java.lang.String sourceQueue,
                        NodeSelection sourceSelection)
                 throws QueueException
Deletes the selected nodes in the given queue.

Parameters:
sourceQueue - name of queue to delete nodes in
sourceSelection - selection of nodes to delete
Throws:
QueueException - if source queue does not exist or if source queue is read-only