|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object nom.tam.util.ColumnTable
public class ColumnTable
A data table is conventionally considered to consist of rows and columns, where the structure within each column is constant, but different columns may have different structures. I.e., structurally columns may differ but rows are identical. Typically tabular data is usually stored in row order which can make it extremely difficult to access efficiently using Java. This class provides efficient access to data which is stored in row order and allows users to get and set the elements of the table. The table can consist only of arrays of primitive types. Data stored in column order can be efficiently read and written using the BufferedDataXputStream classes. The table is represented entirely as a set of one-dimensional primitive arrays. For a given column, a row consists of some number of contiguous elements of the array. Each column is required to have the same number of rows.
Constructor Summary | |
---|---|
ColumnTable(java.lang.Object[] arrays,
int[] sizes)
Create the object after checking consistency. |
Method Summary | |
---|---|
void |
addColumn(java.lang.Object newColumn,
int size)
Add a column |
protected void |
addPointer(java.lang.Object data)
|
void |
addRow(java.lang.Object[] row)
Add a row to the table. |
protected void |
checkArrayConsistency(java.lang.Object[] arrays,
int[] sizes)
Check that the columns and sizes are consistent. |
java.lang.Class[] |
getBases()
Get the base classes of the columns. |
java.lang.Object |
getColumn(int col)
Get a particular column. |
java.lang.Object[] |
getColumns()
Get the actual data arrays |
java.lang.Object |
getElement(int row,
int col)
Get a element of the table. |
int |
getNCols()
Get the number of columns in the table. |
int |
getNRows()
Get the number of rows in the table. |
protected void |
getNumberOfRows()
Calculate the number of rows to read/write at a time. |
java.lang.Object |
getRow(int row)
Get a row of data. |
int[] |
getSizes()
|
char[] |
getTypes()
Get the characters describing the base classes of the columns. |
protected void |
initializePointers()
Set the pointer arrays for the eight primitive types to point to the appropriate elements of arrays. |
int |
read(ArrayDataInput is)
Read a table. |
void |
setColumn(int col,
java.lang.Object newColumn)
Set the values in a particular column. |
void |
setElement(int row,
int col,
java.lang.Object x)
Modify an element of the table. |
void |
setRow(int row,
java.lang.Object x)
Modify a row of data. |
protected void |
setup(java.lang.Object[] arrays,
int[] sizes)
Actually perform the initialization. |
int |
write(ArrayDataOutput os)
Write a table. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public ColumnTable(java.lang.Object[] arrays, int[] sizes) throws TableException
arrays
- An array of one-d primitive arrays.sizes
- The number of elements in each row
for the corresponding column
TableException
Method Detail |
---|
protected void setup(java.lang.Object[] arrays, int[] sizes) throws TableException
TableException
public int getNRows()
getNRows
in interface DataTable
public int getNCols()
getNCols
in interface DataTable
public java.lang.Object getColumn(int col)
getColumn
in interface DataTable
col
- The column desired.
public void setColumn(int col, java.lang.Object newColumn) throws TableException
setColumn
in interface DataTable
col
- The column to modify.newColumn
- The new column data. This should be a primitive array.
TableException
- Thrown when the new data is not commenserable with
informaiton in the table.public void addColumn(java.lang.Object newColumn, int size) throws TableException
TableException
public void addRow(java.lang.Object[] row) throws TableException
TableException
public java.lang.Object getElement(int row, int col)
getElement
in interface DataTable
row
- The row desired.col
- The column desired.
public void setElement(int row, int col, java.lang.Object x) throws TableException
setElement
in interface DataTable
row
- The row containing the element.col
- The column containing the element.x
- The new datum. This should be 1-d primitive
array.
TableException
- Thrown when the new data
is not of the same type as
the data it replaces.public java.lang.Object getRow(int row)
getRow
in interface DataTable
The
- row desired.
public void setRow(int row, java.lang.Object x) throws TableException
setRow
in interface DataTable
row
- The row to be modified.x
- The data to be modified. This should be an
array of objects. It is described as an Object
here since other table implementations may
use other methods to store the data (e.g.,
TableException
ColumnTable.getColumn.
protected void checkArrayConsistency(java.lang.Object[] arrays, int[] sizes) throws TableException
arrays
- The arrays defining the columns.sizes
- The number of elements in each row for the column.
TableException
protected void getNumberOfRows()
rowSize
- The size of a row in bytes.nrows
- The number of rows in the table.protected void initializePointers()
protected void addPointer(java.lang.Object data) throws TableException
TableException
public int read(ArrayDataInput is) throws java.io.IOException
is
- The input stream to read from.
java.io.IOException
public int write(ArrayDataOutput os) throws java.io.IOException
os
- the output stream to write to.
java.io.IOException
public java.lang.Class[] getBases()
public char[] getTypes()
public java.lang.Object[] getColumns()
public int[] getSizes()
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |