package com.revolsys.record.io; import java.util.NoSuchElementException; import com.revolsys.collection.iterator.AbstractIterator; import com.revolsys.collection.iterator.AbstractMultipleIterator; import com.revolsys.record.Record; import com.revolsys.record.schema.RecordDefinition; public class RecordStoreMultipleQueryIterator extends AbstractMultipleIterator<Record> { private int queryIndex = 0; private RecordStoreQueryReader reader; public RecordStoreMultipleQueryIterator(final RecordStoreQueryReader reader) { this.reader = reader; } @Override public void closeDo() { super.closeDo(); this.reader = null; } @Override public AbstractIterator<Record> getNextIterator() throws NoSuchElementException { if (this.reader == null) { throw new NoSuchElementException(); } else { final AbstractIterator<Record> iterator = this.reader.newQueryIterator(this.queryIndex); this.queryIndex++; return iterator; } } public RecordDefinition getRecordDefinition() { final AbstractIterator<Record> iterator = getIterator(); if (iterator instanceof RecordReader) { final RecordReader reader = (RecordReader)iterator; return reader.getRecordDefinition(); } return null; } }