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:
Iterable<T>
public class ManagedConcurrentLinkedQueue<T> extends Object implements 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.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.List<T>
values()
Returns a list containing all values from this queue in the sequence they were added.
-
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.
-