예제 #1
0
  /** @throws ReadDriverException TODO */
  public void order() throws ReadDriverException {
    int rowCount = (int) dataSource.getRowCount();
    columnCache = new Value[rowCount][fieldIndexes.length];
    for (int field = 0; field < fieldIndexes.length; field++) {
      for (int i = 0; i < rowCount; i++) {
        columnCache[i][field] = dataSource.getFieldValue(i, fieldIndexes[field]);
      }
    }

    TreeSet set = new TreeSet(new SortComparator());

    for (int i = 0; i < dataSource.getRowCount(); i++) {
      set.add(new Integer(i));
    }

    orderIndexes = new long[(int) dataSource.getRowCount()];
    int index = 0;
    Iterator it = set.iterator();
    while (it.hasNext()) {
      Integer integer = (Integer) it.next();

      orderIndexes[index] = integer.intValue();
      index++;
    }
  }
예제 #2
0
 /** @see com.hardcode.gdbms.engine.data.driver.ReadAccess#getFieldValue(long, int) */
 public Value getFieldValue(long rowIndex, int fieldId) throws ReadDriverException {
   return dataSource.getFieldValue(orderIndexes[(int) rowIndex], fieldId);
 }