Package com.globalmentor.collections
Class DecoratorReadWriteLockCollection<E>
- java.lang.Object
-
- com.globalmentor.collections.ReadWriteLockDecorator
-
- com.globalmentor.collections.DecoratorReadWriteLockCollection<E>
-
- Type Parameters:
E
- The type of elements in the collection.
- All Implemented Interfaces:
ReadWriteLockCollection<E>
,java.lang.Iterable<E>
,java.util.Collection<E>
,java.util.concurrent.locks.ReadWriteLock
- Direct Known Subclasses:
DecoratorReadWriteLockSet
public class DecoratorReadWriteLockCollection<E> extends ReadWriteLockDecorator implements ReadWriteLockCollection<E>
A thread-safe collection decorator that allows many readers but only one writer to access a collection at a time. For operations that iterate over live collection data, a read or write lock should be acquired before the call to acquire the data and held until the data is consumed.- Author:
- Garret Wilson
-
-
Constructor Summary
Constructors Constructor Description DecoratorReadWriteLockCollection(java.util.Collection<E> collection)
Collection constructor with a default reentrant read/write lock.DecoratorReadWriteLockCollection(java.util.Collection<E> collection, java.util.concurrent.locks.ReadWriteLock lock)
Collection and read/write lock constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
add(E o)
boolean
addAll(java.util.Collection<? extends E> c)
void
clear()
boolean
contains(java.lang.Object o)
boolean
containsAll(java.util.Collection<?> c)
boolean
equals(java.lang.Object o)
protected java.util.Collection<E>
getCollection()
int
hashCode()
boolean
isEmpty()
java.util.Iterator<E>
iterator()
java.util.stream.Stream<E>
parallelStream()
boolean
remove(java.lang.Object o)
boolean
removeAll(java.util.Collection<?> c)
boolean
removeIf(java.util.function.Predicate<? super E> filter)
boolean
retainAll(java.util.Collection<?> c)
int
size()
java.util.Spliterator<E>
spliterator()
java.util.stream.Stream<E>
stream()
java.lang.Object[]
toArray()
<T> T[]
toArray(T[] a)
-
Methods inherited from class com.globalmentor.collections.ReadWriteLockDecorator
readLock, writeLock
-
-
-
-
Constructor Detail
-
DecoratorReadWriteLockCollection
public DecoratorReadWriteLockCollection(java.util.Collection<E> collection)
Collection constructor with a default reentrant read/write lock.- Parameters:
collection
- The collection this collection should decorate.- Throws:
java.lang.NullPointerException
- if the provided collection isnull
.
-
DecoratorReadWriteLockCollection
public DecoratorReadWriteLockCollection(java.util.Collection<E> collection, java.util.concurrent.locks.ReadWriteLock lock)
Collection and read/write lock constructor.- Parameters:
collection
- The collection this collection should decorate.lock
- The lock for controlling access to the collection.- Throws:
java.lang.NullPointerException
- if the provided collection and/or lock isnull
.
-
-
Method Detail
-
getCollection
protected java.util.Collection<E> getCollection()
- Returns:
- The collection this class decorates.
-
size
public int size()
- Specified by:
size
in interfacejava.util.Collection<E>
-
isEmpty
public boolean isEmpty()
- Specified by:
isEmpty
in interfacejava.util.Collection<E>
-
contains
public boolean contains(java.lang.Object o)
- Specified by:
contains
in interfacejava.util.Collection<E>
-
iterator
public java.util.Iterator<E> iterator()
-
toArray
public java.lang.Object[] toArray()
- Specified by:
toArray
in interfacejava.util.Collection<E>
-
toArray
public <T> T[] toArray(T[] a)
- Specified by:
toArray
in interfacejava.util.Collection<E>
-
remove
public boolean remove(java.lang.Object o)
- Specified by:
remove
in interfacejava.util.Collection<E>
-
containsAll
public boolean containsAll(java.util.Collection<?> c)
- Specified by:
containsAll
in interfacejava.util.Collection<E>
-
addAll
public boolean addAll(java.util.Collection<? extends E> c)
- Specified by:
addAll
in interfacejava.util.Collection<E>
-
removeAll
public boolean removeAll(java.util.Collection<?> c)
- Specified by:
removeAll
in interfacejava.util.Collection<E>
-
removeIf
public boolean removeIf(java.util.function.Predicate<? super E> filter)
- Specified by:
removeIf
in interfacejava.util.Collection<E>
-
retainAll
public boolean retainAll(java.util.Collection<?> c)
- Specified by:
retainAll
in interfacejava.util.Collection<E>
-
clear
public void clear()
- Specified by:
clear
in interfacejava.util.Collection<E>
-
equals
public boolean equals(java.lang.Object o)
- Specified by:
equals
in interfacejava.util.Collection<E>
- Overrides:
equals
in classjava.lang.Object
-
hashCode
public int hashCode()
- Specified by:
hashCode
in interfacejava.util.Collection<E>
- Overrides:
hashCode
in classjava.lang.Object
-
spliterator
public java.util.Spliterator<E> spliterator()
-
stream
public java.util.stream.Stream<E> stream()
- Specified by:
stream
in interfacejava.util.Collection<E>
-
-