blob: c5417c5ecf02169ab4254645113001e38e7fe520 [file] [log] [blame]
package org.apache.nifi.pql.results;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.apache.nifi.pql.evaluation.order.RowSorter;
import org.apache.nifi.provenance.query.ProvenanceResultSet;
public class OrderedResultSet implements ProvenanceResultSet {
private final Iterator<List<?>> sortedRowItr;
private final ProvenanceResultSet rs;
public OrderedResultSet(final ProvenanceResultSet rs, final RowSorter sorter) {
this.rs = rs;
final List<List<?>> rows = new ArrayList<>();
while (rs.hasNext()) {
final List<?> colVals = rs.next();
rows.add(colVals);
}
final List<List<?>> sortedRows = new ArrayList<>(rows.size());
for ( final Integer rowId : sorter.sort() ) {
sortedRows.add(rows.get(rowId.intValue()));
}
sortedRowItr = sortedRows.iterator();
}
@Override
public List<String> getLabels() {
return rs.getLabels();
}
@Override
public List<Class<?>> getReturnType() {
return rs.getReturnType();
}
@Override
public boolean hasNext() {
return sortedRowItr.hasNext();
}
@Override
public List<?> next() {
return sortedRowItr.next();
}
}