package database.table.orderby; import database.table.internals.Row; import java.util.Comparator; /** * Author: Koushik Sen (ksen@cs.berkeley.edu) */ public class SimpleOrderBy implements OrderBy { Comparator comp; String[] columns; boolean isAscending; public SimpleOrderBy(String[] columnNames, boolean ascending) { this.columns = columnNames; isAscending = ascending; comp = new Comparator<Row>() { public int compare(Row r1, Row r2) { for (int i = 0; i < columns.length; i++) { String cname = columns[i]; int cmp = ((Comparable) r1.get(cname)).compareTo((Comparable) r2.get(cname)); if (cmp != 0) { if (!isAscending) return 0 - cmp; else return cmp; } } return 0; } }; } public Comparator<Row> getComparator() { return comp; } }