package at.yawk.numaec;
import org.eclipse.collections.api.LongIterable;
import org.eclipse.collections.api.factory.list.primitive.MutableLongListFactory;
import java.util.stream.LongStream;
public class MutableLongBufferListFactory implements MutableLongListFactory {
private final LargeByteBufferAllocator allocator;
private MutableLongBufferListFactory(LargeByteBufferAllocator allocator) {
this.allocator = allocator;
}
public static MutableLongBufferListFactory withAllocator(LargeByteBufferAllocator allocator) {
return new MutableLongBufferListFactory(allocator);
}
@Override
public MutableLongBufferList empty() {
return new LongBufferListImpl.Mutable(allocator);
}
public MutableLongBufferList emptyWithInitialCapacity(int initialCapacity) {
return new LongBufferListImpl.Mutable(allocator, initialCapacity);
}
@Override
public MutableLongBufferList of() {
return empty();
}
@Override
public MutableLongBufferList with() {
return empty();
}
@Override
public MutableLongBufferList of(long... items) {
MutableLongBufferList list = emptyWithInitialCapacity(items.length);
list.addAll(items);
return list;
}
@Override
public MutableLongBufferList with(long... items) {
return of(items);
}
@Override
public MutableLongBufferList ofAll(LongIterable items) {
MutableLongBufferList list = emptyWithInitialCapacity(items.size());
list.addAll(items);
return list;
}
@Override
public MutableLongBufferList withAll(LongIterable items) {
return ofAll(items);
}
@Override
public MutableLongBufferList ofAll(Iterable<Long> iterable) {
MutableLongBufferList list = of();
for (Long element : iterable) {
list.add(element);
}
return list;
}
@Override
public MutableLongBufferList withAll(Iterable<Long> iterable) {
return ofAll(iterable);
}
@Override
public MutableLongBufferList ofAll(LongStream stream) {
MutableLongBufferList list = of();
stream.forEach(list::add);
return list;
}
@Override
public MutableLongBufferList withAll(LongStream stream) {
return ofAll(stream);
}
}