public class RowUtil
extends java.lang.Object
A row or partial row is described by two or three parameters.
// allocate/initialize the row DataValueDescriptor row = new DataValueDescriptor[10] row[0] = new FOO(); row[4] = new BAR(); row[7] = new MMM(); // allocate/initialize the bit set FormatableBitSet FormatableBitSet = new FormatableBitSet(10); FormatableBitSet.set(0); FormatableBitSet.set(4); FormatableBitSet.set(7);
Modifier and Type | Field | Description |
---|---|---|
static DataValueDescriptor[] |
EMPTY_ROW |
An object that can be used on a fetch to indicate no fields
need to be fetched.
|
static FormatableBitSet |
EMPTY_ROW_BITSET |
An object that can be used on a fetch as a FormatableBitSet to indicate no fields
need to be fetched.
|
static FetchDescriptor |
EMPTY_ROW_FETCH_DESCRIPTOR |
An object that can be used on a fetch as a FormatableBitSet to indicate no fields
need to be fetched.
|
private static FetchDescriptor[] |
ROWUTIL_FETCH_DESCRIPTOR_CONSTANTS |
Modifier | Constructor | Description |
---|---|---|
private |
RowUtil() |
Modifier and Type | Method | Description |
---|---|---|
static int |
columnOutOfRange(DataValueDescriptor[] row,
FormatableBitSet columnList,
int maxColumns) |
Return the column number of the first column out of range, or a number
less than zero if all columns are in range.
|
static java.lang.Object |
getColumn(java.lang.Object[] row,
FormatableBitSet columnList,
int columnId) |
|
static DataValueDescriptor |
getColumn(DataValueDescriptor[] row,
FormatableBitSet columnList,
int columnId) |
Get the object for a column identifer (0 based) from a complete or
partial row.
|
static FetchDescriptor |
getFetchDescriptorConstant(int single_column_number) |
Return a FetchDescriptor which describes a single column set.
|
static int |
getNumberOfColumns(int maxColumnNumber,
FormatableBitSet columnList) |
Get the number of columns represented by a FormatableBitSet.
|
static FormatableBitSet |
getQualifierBitSet(Qualifier[][] qualifiers) |
Get a FormatableBitSet representing all the columns represented in
a qualifier list.
|
static boolean |
isRowEmpty(DataValueDescriptor[] row) |
See if a row actually contains no columns.
|
static DataValueDescriptor[] |
newRowFromTemplate(DataValueDescriptor[] template) |
Generate an "empty" row from an array of DataValueDescriptor objects.
|
static DataValueDescriptor[] |
newTemplate(DataValueFactory dvf,
FormatableBitSet column_list,
int[] format_ids,
int[] collation_ids) |
Generate a template row of DataValueDescriptor's
|
static int |
nextColumn(java.lang.Object[] row,
FormatableBitSet columnList,
int startColumn) |
Get the next valid column after or including start column.
|
static boolean |
qualifyRow(DataValueDescriptor[] row,
Qualifier[][] qual_list) |
Process the qualifier list on the row, return true if it qualifies.
|
static java.lang.String |
toString(java.lang.Object[] row) |
return string version of row.
|
static java.lang.String |
toString(java.util.Hashtable hash_table) |
return string version of a HashTable returned from a FetchSet.
|
public static final DataValueDescriptor[] EMPTY_ROW
public static final FormatableBitSet EMPTY_ROW_BITSET
public static final FetchDescriptor EMPTY_ROW_FETCH_DESCRIPTOR
private static final FetchDescriptor[] ROWUTIL_FETCH_DESCRIPTOR_CONSTANTS
public static DataValueDescriptor getColumn(DataValueDescriptor[] row, FormatableBitSet columnList, int columnId)
row
- the rowcolumnList
- valid columns in the rowcolumnId
- which column to return (0 based)public static java.lang.Object getColumn(java.lang.Object[] row, FormatableBitSet columnList, int columnId)
public static FormatableBitSet getQualifierBitSet(Qualifier[][] qualifiers)
public static int getNumberOfColumns(int maxColumnNumber, FormatableBitSet columnList)
This is simply a count of the number of bits set in the FormatableBitSet.
maxColumnNumber
- Because the FormatableBitSet.size() can't be used as
the number of columns, allow caller to tell
the maximum column number if it knows.
-1 means caller does not know.
>=0 number is the largest column number.columnList
- valid columns in the rowpublic static boolean isRowEmpty(DataValueDescriptor[] row)
public static int columnOutOfRange(DataValueDescriptor[] row, FormatableBitSet columnList, int maxColumns)
public static int nextColumn(java.lang.Object[] row, FormatableBitSet columnList, int startColumn)
public static final FetchDescriptor getFetchDescriptorConstant(int single_column_number)
This routine returns one of a set of constant FetchDescriptor's, and should not be altered by the caller.
public static DataValueDescriptor[] newTemplate(DataValueFactory dvf, FormatableBitSet column_list, int[] format_ids, int[] collation_ids) throws StandardException
Generate an array of DataValueDescriptor objects which will be used to make calls to newRowFromClassInfoTemplate(), to repeatedly and efficiently generate new rows. This is important for certain applications like the sorter and fetchSet which generate large numbers of "new" empty rows.
column_list
- A bit set indicating which columns to include in row.format_ids
- an array of format id's, one per column in row.StandardException
- Standard exception policy.public static DataValueDescriptor[] newRowFromTemplate(DataValueDescriptor[] template) throws StandardException
Generate an array of new'd objects by using the getNewNull() method on each of the DataValueDescriptor objects.
template
- An array of DataValueDescriptor objects
each of which can be used to create a new
instance of the appropriate type to build a
new empty template row.StandardException
- Standard exception policy.public static java.lang.String toString(java.lang.Object[] row)
For debugging only.
row
- The row.public static java.lang.String toString(java.util.Hashtable hash_table)
public static final boolean qualifyRow(DataValueDescriptor[] row, Qualifier[][] qual_list) throws StandardException
A two dimensional array is to be used to pass around a AND's and OR's in conjunctive normal form. The top slot of the 2 dimensional array is optimized for the more frequent where no OR's are present. The first array slot is always a list of AND's to be treated as described above for single dimensional AND qualifier arrays. The subsequent slots are to be treated as AND'd arrays or OR's. Thus the 2 dimensional array qual[][] argument is to be treated as the following, note if qual.length = 1 then only the first array is valid and it is and an array of and clauses: (qual[0][0] and qual[0][0] ... and qual[0][qual[0].length - 1]) and (qual[1][0] or qual[1][1] ... or qual[1][qual[1].length - 1]) and (qual[2][0] or qual[2][1] ... or qual[2][qual[2].length - 1]) ... and (qual[qual.length - 1][0] or qual[1][1] ... or qual[1][2])
row
- The row being qualified.qual_list
- 2 dimensional array representing conjunctive
normal form of simple qualifiers.StandardException
- Standard exception policy.Apache Derby V10.14 Internals - Copyright © 2004,2018 The Apache Software Foundation. All Rights Reserved.