
ru.progrm_jarvis.javacommons.collection.concurrent.ConcurrentCollections Maven / Gradle / Ivy
package ru.progrm_jarvis.javacommons.collection.concurrent;
import lombok.NonNull;
import lombok.experimental.UtilityClass;
import java.util.*;
import java.util.concurrent.locks.ReadWriteLock;
/**
* An utility for creating concurrent {@link Collection} wrappers.
*
* @implNote concurrent wrappers delegate all operations to elements collections
* yet performing precondition-checks ans using {@link ReadWriteLock}s
*/
@UtilityClass
public class ConcurrentCollections {
public Collection concurrentCollection(final @NonNull Collection collection) {
return ConcurrentCollectionWrapper.create(collection);
}
public List concurrentList(final @NonNull List list) {
return ConcurrentListWrapper.create(list);
}
public Set concurrentSet(final @NonNull Set set) {
return ConcurrentSetWrapper.create(set);
}
public Set concurrentSetFromMap(final @NonNull Map map) {
return ConcurrentSetFromMapWrapper.create(map);
}
public Queue concurrentQueue(final @NonNull Queue set) {
return ConcurrentQueueWrapper.create(set);
}
public Deque concurrentDeque(final @NonNull Deque set) {
return ConcurrentDequeWrapper.create(set);
}
public Map concurrentMap(final @NonNull Map map) {
return ConcurrentMapWrapper.create(map);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy