public class SortOrder extends Object implements Comparator<Value[]>
Modifier and Type | Field and Description |
---|---|
static int |
ASCENDING
This bit mask means the values should be sorted in ascending order.
|
static int |
DESCENDING
This bit mask means the values should be sorted in descending order.
|
static int |
NULLS_FIRST
This bit mask means NULLs should be sorted before other data, no matter
if ascending or descending order is used.
|
static int |
NULLS_LAST
This bit mask means NULLs should be sorted after other data, no matter
if ascending or descending order is used.
|
Constructor and Description |
---|
SortOrder(Database database,
int[] queryColumnIndexes,
int[] sortType,
ArrayList<SelectOrderBy> orderList)
Construct a new sort order object.
|
Modifier and Type | Method and Description |
---|---|
int |
compare(Value[] a,
Value[] b)
Compare two expression lists.
|
static int |
compareNull(boolean aNull,
int sortType)
Compare two expressions where one of them is NULL.
|
Column |
getColumn(int index,
TableFilter filter)
Get the column for the given table filter, if the sort column is for this
filter.
|
int[] |
getQueryColumnIndexes()
Get the column index list.
|
int[] |
getSortTypes()
Get the sort order bit masks.
|
String |
getSQL(Expression[] list,
int visible)
Create the SQL snippet that describes this sort order.
|
void |
sort(ArrayList<Value[]> rows)
Sort a list of rows.
|
void |
sort(ArrayList<Value[]> rows,
int offset,
int limit)
Sort a list of rows using offset and limit.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
comparing, comparing, comparingDouble, comparingInt, comparingLong, equals, naturalOrder, nullsFirst, nullsLast, reversed, reverseOrder, thenComparing, thenComparing, thenComparing, thenComparingDouble, thenComparingInt, thenComparingLong
public static final int ASCENDING
public static final int DESCENDING
public static final int NULLS_FIRST
public static final int NULLS_LAST
public SortOrder(Database database, int[] queryColumnIndexes, int[] sortType, ArrayList<SelectOrderBy> orderList)
database
- the databasequeryColumnIndexes
- the column index listsortType
- the sort order bit masksorderList
- the original query order list (if this is a query)public String getSQL(Expression[] list, int visible)
list
- the expression listvisible
- the number of columns in the select listpublic static int compareNull(boolean aNull, int sortType)
aNull
- whether the first expression is nullsortType
- the sort bit mask to usepublic int compare(Value[] a, Value[] b)
compare
in interface Comparator<Value[]>
a
- the first expression listb
- the second expression listpublic void sort(ArrayList<Value[]> rows)
rows
- the list of rowspublic void sort(ArrayList<Value[]> rows, int offset, int limit)
rows
- the list of rowsoffset
- the offsetlimit
- the limitpublic int[] getQueryColumnIndexes()
For the query "select name, id from test order by id, name" this is {1, 0} as the first order by expression (the column "id") is the second column of the query, and the second order by expression ("name") is the first column of the query.
public Column getColumn(int index, TableFilter filter)
index
- the column index (0, 1,..)filter
- the table filterpublic int[] getSortTypes()
Copyright © 2017 JBoss by Red Hat. All rights reserved.