All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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