package org.multiverse.collections;
import org.multiverse.api.Stm;
import org.multiverse.api.collections.*;
public final class NaiveTxnCollectionFactory implements TxnCollectionsFactory {
private final Stm stm;
public NaiveTxnCollectionFactory(Stm stm) {
if (stm == null) {
throw new NullPointerException();
}
this.stm = stm;
}
@Override
public Stm getStm() {
return stm;
}
@Override
public <E> NaiveTxnStack<E> newStack() {
return new NaiveTxnStack<E>(stm);
}
@Override
public <E> TxnStack<E> newStack(int capacity) {
return new NaiveTxnStack<E>(stm, capacity);
}
@Override
public <E> NaiveTxnLinkedList<E> newQueue() {
return new NaiveTxnLinkedList<E>(stm);
}
@Override
public <E> NaiveTxnLinkedList<E> newQueue(int capacity) {
return new NaiveTxnLinkedList<E>(stm, capacity);
}
@Override
public <E> NaiveTxnLinkedList<E> newDeque() {
return new NaiveTxnLinkedList<E>(stm);
}
@Override
public <E> NaiveTxnLinkedList<E> newDeque(int capacity) {
return new NaiveTxnLinkedList<E>(stm, capacity);
}
@Override
public <E> NaiveTxnHashSet<E> newHashSet() {
return new NaiveTxnHashSet<E>(stm);
}
@Override
public <K, V> NaiveTxnHashMap<K, V> newHashMap() {
return new NaiveTxnHashMap<K, V>(stm);
}
@Override
public <E> NaiveTxnLinkedList<E> newLinkedList() {
return new NaiveTxnLinkedList<E>(stm);
}
}