package nl.helixsoft.recordstream; import java.util.List; //TODO: examine possible merging with 2DArray, TableModel, ... public class MemoryRecordStream extends AbstractRecordStream { private final List<Record> data; private final RecordMetaData rmd; int pos = 0; public MemoryRecordStream (List<Record> data) { this.data = data; if (data.size() > 0) { rmd = data.get(0).getMetaData(); } else { rmd = new DefaultRecordMetaData(new String[] {}); } } @Override public Record getNext() throws StreamException { if (pos >= data.size()) return null; return data.get(pos++); } @Override public RecordMetaData getMetaData() { return rmd; } @Override public void close() { } }