package at.yawk.numaec;
import org.eclipse.collections.api.DoubleIterable;
import org.eclipse.collections.api.factory.list.primitive.MutableDoubleListFactory;
import java.util.stream.DoubleStream;
public class MutableDoubleBufferListFactory implements MutableDoubleListFactory {
private final LargeByteBufferAllocator allocator;
private MutableDoubleBufferListFactory(LargeByteBufferAllocator allocator) {
this.allocator = allocator;
}
public static MutableDoubleBufferListFactory withAllocator(LargeByteBufferAllocator allocator) {
return new MutableDoubleBufferListFactory(allocator);
}
@Override
public MutableDoubleBufferList empty() {
return new DoubleBufferListImpl.Mutable(allocator);
}
public MutableDoubleBufferList emptyWithInitialCapacity(int initialCapacity) {
return new DoubleBufferListImpl.Mutable(allocator, initialCapacity);
}
@Override
public MutableDoubleBufferList of() {
return empty();
}
@Override
public MutableDoubleBufferList with() {
return empty();
}
@Override
public MutableDoubleBufferList of(double... items) {
MutableDoubleBufferList list = emptyWithInitialCapacity(items.length);
list.addAll(items);
return list;
}
@Override
public MutableDoubleBufferList with(double... items) {
return of(items);
}
@Override
public MutableDoubleBufferList ofAll(DoubleIterable items) {
MutableDoubleBufferList list = emptyWithInitialCapacity(items.size());
list.addAll(items);
return list;
}
@Override
public MutableDoubleBufferList withAll(DoubleIterable items) {
return ofAll(items);
}
@Override
public MutableDoubleBufferList ofAll(Iterable<Double> iterable) {
MutableDoubleBufferList list = of();
for (Double element : iterable) {
list.add(element);
}
return list;
}
@Override
public MutableDoubleBufferList withAll(Iterable<Double> iterable) {
return ofAll(iterable);
}
@Override
public MutableDoubleBufferList ofAll(DoubleStream stream) {
MutableDoubleBufferList list = of();
stream.forEach(list::add);
return list;
}
@Override
public MutableDoubleBufferList withAll(DoubleStream stream) {
return ofAll(stream);
}
}