Package org.codehaus.groovy.util
Class ManagedConcurrentLinkedQueue<T>
java.lang.Object
org.codehaus.groovy.util.ManagedConcurrentLinkedQueue<T>
- Type Parameters:
T
- the type of values to store
- All Implemented Interfaces:
java.lang.Iterable<T>
public class ManagedConcurrentLinkedQueue<T>
extends java.lang.Object
implements java.lang.Iterable<T>
A queue that stores values wrapped in a Reference, the type of which is
determined by the provided
ReferenceBundle
. References stored
in this queue will be removed when reference processing occurs.
This queue is backed by a ConcurrentLinkedQueue
and is thread safe.
The iterator will only return non-null values (reachable) and is based on
the "weakly consistent" iterator of the underlying ConcurrentLinkedQueue
.
-
Constructor Summary
Constructors Constructor Description ManagedConcurrentLinkedQueue(ReferenceBundle bundle)
Creates an empty ManagedConcurrentLinkedQueue that will use the providedReferenceBundle
to store values as the given Reference type. -
Method Summary
Modifier and Type Method Description void
add(T value)
Adds the specified value to the queue.boolean
isEmpty()
Returnstrue
if this queue contains no elements.java.util.Iterator<T>
iterator()
Returns an iterator over all non-null values in this queue.T[]
toArray(T[] tArray)
Returns an array containing all values from this queue in the sequence they were added.java.util.List<T>
values()
Returns a list containing all values from this queue in the sequence they were added.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
-
Constructor Details
-
ManagedConcurrentLinkedQueue
Creates an empty ManagedConcurrentLinkedQueue that will use the providedReferenceBundle
to store values as the given Reference type.- Parameters:
bundle
- used to create the appropriate Reference type for the values stored
-
-
Method Details
-
add
Adds the specified value to the queue.- Parameters:
value
- the value to add
-
isEmpty
public boolean isEmpty()Returnstrue
if this queue contains no elements.This method does not check the elements to verify they contain non-null reference values.
-
toArray
Returns an array containing all values from this queue in the sequence they were added.- Parameters:
tArray
- the array to populate if big enough, else a new array with the same runtime type- Returns:
- an array containing all non-null values in this queue
-
values
Returns a list containing all values from this queue in the sequence they were added. -
iterator
Returns an iterator over all non-null values in this queue. The values should be returned in the order they were added.- Specified by:
iterator
in interfacejava.lang.Iterable<T>
-