Packageorg.as3collections.utils
Classpublic class QueueUtil
InheritanceQueueUtil Inheritance Object

A utility class to work with implementations of the IQueue interface.



Public Methods
 MethodDefined By
  
QueueUtil is a static class and shouldn't be instantiated.
QueueUtil
  
getTypedQueue(wrapQueue:IQueue, type:*):TypedQueue
[static] Returns a new TypedQueue with the wrapList argument wrapped.
QueueUtil
  
[static] Returns a new UniqueQueue with the wrapQueue argument wrapped.
QueueUtil
  
[static] Returns a new TypedQueue that wraps a new UniqueQueue that wraps the wrapQueue argument.
QueueUtil
Constructor Detail
QueueUtil()Constructor
public function QueueUtil()

QueueUtil is a static class and shouldn't be instantiated.


Throws
IllegalOperationError QueueUtil is a static class and shouldn't be instantiated.
Method Detail
getTypedQueue()method
public static function getTypedQueue(wrapQueue:IQueue, type:*):TypedQueue

Returns a new TypedQueue with the wrapList argument wrapped.

Parameters

wrapQueue:IQueue — the target queue to be wrapped by the TypedQueue.
 
type:* — the type of the elements allowed by the returned TypedQueue.

Returns
TypedQueue — a new TypedQueue with the queue argument wrapped.

Throws
ArgumentError — if the queue argument is null.
 
ArgumentError — if the type argument is null.
 
org.as3coreaddendum.errors:ClassCastError — if the types of one or more elements in the wrapQueue argument are incompatible with the type argument.

Example
         import org.as3collections.IQueue;
         import org.as3collections.queues.LinearQueue;
         import org.as3collections.queues.TypedQueue;
         import org.as3collections.utils.QueueUtil;
         
         var q1:IQueue = new LinearQueue([1, 5, 3, 7]);
         
         var queue1:IQueue = QueueUtil.getTypedQueue(q1);
         
         queue1                      // [1,5,3,7]
         queue1.size():              // 4
         queue1.isEmpty()            // false
         
         queue1.poll()               // 1
         queue1                      // [5,3,7]
         
         queue1.offer(2)             // true
         queue1                      // [5,3,7,2]
         
         queue1.offer(5)             // true
         queue1                      // [5,3,7,2,5]
         
         queue1.offer("a")           // false
         queue1                      // [5,3,7,2,5]
         
         queue1.add("a")             // ClassCastError: Invalid element type. element: a | type: String | expected type: int
         
getUniqueQueue()method 
public static function getUniqueQueue(wrapQueue:IQueue):UniqueQueue

Returns a new UniqueQueue with the wrapQueue argument wrapped.

Parameters

wrapQueue:IQueue — the target queue to be wrapped by the UniqueQueue.

Returns
UniqueQueue — a new UniqueQueue with the queue argument wrapped.

Throws
ArgumentError — if the queue argument is null.

Example
         import org.as3collections.IQueue;
         import org.as3collections.queues.LinearQueue;
         import org.as3collections.queues.UniqueQueue;
         import org.as3collections.utils.QueueUtil;
         
         var q1:IQueue = new LinearQueue([1, 5, 3, 7]);
         
         var queue1:IQueue = new UniqueQueue(q1); // you can use this way
         
         //var queue1:IQueue = QueueUtil.getUniqueQueue(q1); // or you can use this way
         
         queue1                      // [1,5,3,7]
         queue1.size()               // 4
         queue1.isEmpty()            // false
         
         queue1.poll()               // 1
         queue1                      // [5,3,7]
         
         queue1.offer(2)             // true
         queue1                      // [5,3,7,2]
         
         queue1.offer(5)             // false
         queue1                      // [5,3,7,2]
         
         queue1.add(5)               // Error: UniqueQueue is a unique queue and does not allow duplicated elements. Requested element: 5
         
getUniqueTypedQueue()method 
public static function getUniqueTypedQueue(wrapQueue:IQueue, type:*):TypedQueue

Returns a new TypedQueue that wraps a new UniqueQueue that wraps the wrapQueue argument.

The result will be a unique and typed array queue, despite of the return type TypedQueue.

Parameters

wrapQueue:IQueue — the target queue to be wrapped.
 
type:* — the type of the elements allowed by the returned TypedQueue.

Returns
TypedQueue — a new TypedQueue with the queue argument wrapped.

Throws
ArgumentError — if the queue argument is null.
 
ArgumentError — if the type argument is null.
 
org.as3coreaddendum.errors:ClassCastError — if the types of one or more elements in the wrapQueue argument are incompatible with the type argument.

Example
         import org.as3collections.IQueue;
         import org.as3collections.queues.Queue;
         import org.as3collections.queues.TypedQueue;
         import org.as3collections.utils.QueueUtil;
         
         var q1:IQueue = new LinearQueue([1, 5, 3, 7]);
         
         var queue1:IQueue = QueueUtil.getUniqueTypedQueue(q1, int);
         
         queue1                  // [1,5,3,7]
         queue1.size()           // 4
         queue1.isEmpty()        // false
         
         queue1.poll()           // 1
         queue1                  // [5,3,7]
         
         queue1.offer(2)         // true
         queue1                  // [5,3,7,2]
         
         queue1.offer(5)         // false
         queue1                  // [5,3,7,2]
         
         queue1.add(5)           // Error: UniqueQueue is a unique queue and does not allow duplicated elements. Requested element: 5
         
         queue1.offer("a")       // false
         queue1                  // [5,3,7,2]
         
         queue1.add("a")         // ClassCastError: Invalid element type. element: a | type: String | expected type: int