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 providedReferenceBundleto store values as the given Reference type. -
Method Summary
Modifier and Type Method Description voidadd(T value)Adds the specified value to the queue.booleanisEmpty()Returnstrueif 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 providedReferenceBundleto 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()Returnstrueif 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.
-