Class QueueUtils


  • public class QueueUtils
    extends java.lang.Object
    Provides utility methods and decorators for Queue instances.
    Since:
    4.0
    Version:
    $Id: QueueUtils.java 1686855 2015-06-22 13:00:27Z tn $
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static java.util.Queue EMPTY_QUEUE
      An empty unmodifiable queue.
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static <E> java.util.Queue<E> emptyQueue()
      Get an empty Queue.
      static <E> java.util.Queue<E> predicatedQueue​(java.util.Queue<E> queue, Predicate<? super E> predicate)
      Returns a predicated (validating) queue backed by the given queue.
      static <E> java.util.Queue<E> transformingQueue​(java.util.Queue<E> queue, Transformer<? super E,​? extends E> transformer)
      Returns a transformed queue backed by the given queue.
      static <E> java.util.Queue<E> unmodifiableQueue​(java.util.Queue<? extends E> queue)
      Returns an unmodifiable queue backed by the given queue.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • EMPTY_QUEUE

        public static final java.util.Queue EMPTY_QUEUE
        An empty unmodifiable queue.
    • Method Detail

      • unmodifiableQueue

        public static <E> java.util.Queue<E> unmodifiableQueue​(java.util.Queue<? extends E> queue)
        Returns an unmodifiable queue backed by the given queue.
        Type Parameters:
        E - the type of the elements in the queue
        Parameters:
        queue - the queue to make unmodifiable, must not be null
        Returns:
        an unmodifiable queue backed by that queue
        Throws:
        java.lang.NullPointerException - if the queue is null
      • predicatedQueue

        public static <E> java.util.Queue<E> predicatedQueue​(java.util.Queue<E> queue,
                                                             Predicate<? super E> predicate)
        Returns a predicated (validating) queue backed by the given queue.

        Only objects that pass the test in the given predicate can be added to the queue. Trying to add an invalid object results in an IllegalArgumentException. It is important not to use the original queue after invoking this method, as it is a backdoor for adding invalid objects.

        Type Parameters:
        E - the type of the elements in the queue
        Parameters:
        queue - the queue to predicate, must not be null
        predicate - the predicate used to evaluate new elements, must not be null
        Returns:
        a predicated queue
        Throws:
        java.lang.NullPointerException - if the queue or predicate is null
      • transformingQueue

        public static <E> java.util.Queue<E> transformingQueue​(java.util.Queue<E> queue,
                                                               Transformer<? super E,​? extends E> transformer)
        Returns a transformed queue backed by the given queue.

        Each object is passed through the transformer as it is added to the Queue. It is important not to use the original queue after invoking this method, as it is a backdoor for adding untransformed objects.

        Existing entries in the specified queue will not be transformed. If you want that behaviour, see TransformedQueue.transformedQueue(java.util.Queue<E>, org.apache.commons.collections4.Transformer<? super E, ? extends E>).

        Type Parameters:
        E - the type of the elements in the queue
        Parameters:
        queue - the queue to predicate, must not be null
        transformer - the transformer for the queue, must not be null
        Returns:
        a transformed queue backed by the given queue
        Throws:
        java.lang.NullPointerException - if the queue or transformer is null
      • emptyQueue

        public static <E> java.util.Queue<E> emptyQueue()
        Get an empty Queue.
        Type Parameters:
        E - the type of the elements in the queue
        Returns:
        an empty Queue