protected IColumn computeNext() {
    if (reader == null) return endOfData();

    while (true) {
      IColumn column = reader.pollColumn();
      if (column == null) return endOfData();
      if (isColumnNeeded(column)) return column;
    }
  }
 public void close() throws IOException {
   if (reader != null) reader.close();
 }
 public ColumnFamily getColumnFamily() {
   return reader == null ? null : reader.getEmptyColumnFamily();
 }