prefuse.data
Class Table

java.lang.Object
  extended by prefuse.data.tuple.AbstractTupleSet
      extended by prefuse.data.Table
All Implemented Interfaces:
java.util.EventListener, ColumnListener, TupleSet
Direct Known Subclasses:
CascadedTable

public class Table
extends AbstractTupleSet
implements ColumnListener

A Table organizes a collection of data into rows and columns, each row containing a data record, and each column containing data values for a named data field with a specific data type. Table data can be accessed directly using the row number and column name, or rows can be treated in an object-oriented fashion using Tuple instances that represent a single row of data in the table. As such, tables implement the TupleSet interface.

Table rows can be inserted or deleted. In any case, none of the other existing table rows are effected by an insertion or deletion. A deleted row simply becomes invalid--any subsequent attempts to access the row either directly or through a pre-existing Tuple instance will result in an exception. However, if news rows are later added to the table, the row number for previously deleted nodes can be reused. In fact, the lower row number currently unused is assigned to the new row. This results in an efficient reuse of the table rows, but carries an important side effect -- rows do not necesarily maintain the order in which they were added once deletions have occurred on the table. If not deletions occur, the ordering of table rows will reflect the order in which rows were added to the table.

Collections of table rows can be accessed using both iterators over the actual row numbers and iterators over the Tuple instances that encapsulate access to that row. Both types of iteration can also be filtered by providing a Predicate, allowing tables to be queried for specific values.

Columns (alternativele referred to as data fields) can be added to the Table using addColumn(String, Class) and a host of similar methods. This method will automatically determine the right kind of backing column instance to use. Furthermore, Table columns can be specified using a Schema instance, which describes the column names, data types, and default values. The Table class also maintains its own internal Schema, which be accessed (in a read-only way) using the getSchema() method.

Tables also support additional structures. The ColumnMetadata class returned by the getMetadata(String) method supports calculation of different statistics for a column, including minimum and maximum values, and the number of unique data values in the column. Index instances can be created and retrieved using the index(String) method and retrieved without triggering creation using getIndex(String) method. An index keeps a sorted collection of all data values in a column, accelerating the creation of filtered iterators by optimizing query calculations and also providing faster computation of many of the ColumnMetadata methods. If you will be issuing a number of queries (i.e., requesting filtered iterators) dependent on the values of a given column, indexing that column may result in a significant performance increase, though at the cost of storing and maintaining the backing index structure.

Author:
jeffrey heer

Nested Class Summary
protected static class Table.ColumnEntry
          Helper class that encapsulates a map entry for a column, including the column itself and its metadata and index.
 
Field Summary
protected  java.util.ArrayList m_columns
          Locally stored data columns
protected  java.util.HashMap m_entries
          Mapping between column names and column entries containing column, metadata, and index references
protected  int m_lastCol
          Memoize the index of the last column operated on, used to expedite handling of column updates.
protected  CopyOnWriteArrayList m_listeners
          Listeners for changes to this table
protected  int m_modCount
          Tracks the number of edits of this table
protected  java.util.ArrayList m_names
          Column names for locally store data columns
protected  RowManager m_rows
          Manager for valid row indices
protected  Schema m_schema
          A cached schema instance, loaded lazily
protected  TupleManager m_tuples
          manager for tuples, which are object representations for rows
 
Fields inherited from interface prefuse.data.tuple.TupleSet
EMPTY_ARRAY
 
Constructor Summary
  Table()
          Create a new, empty Table.
  Table(int nrows, int ncols)
          Create a new Table with a given number of rows, and the starting capacity for a given number of columns.
protected Table(int nrows, int ncols, java.lang.Class tupleType)
          Create a new Table.
 
Method Summary
 void addColumn(java.lang.String name, java.lang.Class type)
          Add a column with the given name and data type to this table.
 void addColumn(java.lang.String name, java.lang.Class type, java.lang.Object defaultValue)
          Add a column with the given name and data type to this table.
protected  void addColumn(java.lang.String name, Column col)
          Internal method for adding a column.
 void addColumn(java.lang.String name, Expression expr)
          Add a derived column to this table, using an Expression instance to dynamically calculate the column data values.
 void addColumn(java.lang.String name, java.lang.String expr)
          Add a derived column to this table, using an Expression instance to dynamically calculate the column data values.
 void addConstantColumn(java.lang.String name, java.lang.Class type, java.lang.Object dflt)
          Add a constant column to this table, which returns one constant value for all column rows.
 int addRow()
          Add a row to this table.
 void addRows(int nrows)
          Add a given number of rows to this table.
 void addTableListener(TableListener listnr)
          Add a table listener to this table.
 Tuple addTuple(Tuple t)
          Add a Tuple to this table.
 boolean canGet(java.lang.String field, java.lang.Class type)
          Check if the get method for the given data field returns values that are compatible with a given target type.
 boolean canGetBoolean(java.lang.String field)
          Check if the given data field can return primitive boolean values.
 boolean canGetDate(java.lang.String field)
          Check if the given data field can return primitive Date values.
 boolean canGetDouble(java.lang.String field)
          Check if the given data field can return primitive double values.
 boolean canGetFloat(java.lang.String field)
          Check if the given data field can return primitive float values.
 boolean canGetInt(java.lang.String field)
          Check if the given data field can return primitive int values.
 boolean canGetLong(java.lang.String field)
          Check if the given data field can return primitive long values.
 boolean canGetString(java.lang.String field)
          Check if the given data field can return primitive String values.
 boolean canSet(java.lang.String field, java.lang.Class type)
          Check if the set method for the given data field can accept values of a given target type.
 boolean canSetBoolean(java.lang.String field)
          Check if the setBoolean method can safely be used for the given data field.
 boolean canSetDate(java.lang.String field)
          Check if the setDate method can safely be used for the given data field.
 boolean canSetDouble(java.lang.String field)
          Check if the setDouble method can safely be used for the given data field.
 boolean canSetFloat(java.lang.String field)
          Check if the setFloat method can safely be used for the given data field.
 boolean canSetInt(java.lang.String field)
          Check if the setInt method can safely be used for the given data field.
 boolean canSetLong(java.lang.String field)
          Check if the setLong method can safely be used for the given data field.
 boolean canSetString(java.lang.String field)
          Check if the setString method can safely be used for the given data field.
 void clear()
          Clear this table, removing all rows.
 void columnChanged(Column src, int idx, boolean prev)
          Notification that a data column has changed.
 void columnChanged(Column src, int idx, double prev)
          Notification that a data column has changed.
 void columnChanged(Column src, int idx, float prev)
          Notification that a data column has changed.
 void columnChanged(Column src, int idx, int prev)
          Notification that a data column has changed.
 void columnChanged(Column src, int type, int start, int end)
          Notification that a data column has changed.
 void columnChanged(Column src, int idx, long prev)
          Notification that a data column has changed.
 void columnChanged(Column src, int idx, java.lang.Object prev)
          Notification that a data column has changed.
 boolean containsTuple(Tuple t)
          Indicates if this table contains the given Tuple instance.
protected  void fireTableEvent(int row0, int row1, int col, int type)
          Fire a table event to notify listeners.
 java.lang.Object get(int row, int col)
          Get the data value at the given row and column numbers as an Object.
 java.lang.Object get(int row, java.lang.String field)
          Get the data value at the given row and field as an Object.
 boolean getBoolean(int row, int col)
          Get the data value at the given row and field as a boolean.
 boolean getBoolean(int row, java.lang.String field)
          Get the data value at the given row and field as a boolean.
 Column getColumn(int col)
          Get the column at the given column number.
 Column getColumn(java.lang.String field)
          Get the column with the given data field name
 int getColumnCount()
          Get the number of columns / data fields in this table.
 java.lang.String getColumnName(int col)
          Get the data field name of the column at the given column number.
protected  java.util.Iterator getColumnNames()
          Internal method that returns an iterator over column names
 int getColumnNumber(Column col)
          Get the column number for the given Column instance.
 int getColumnNumber(java.lang.String field)
          Get the column number for a given data field name.
 int getColumnRow(int row, int col)
          Get the row value for accessing an underlying Column instance, corresponding to the given table cell.
protected  java.util.Iterator getColumns()
          Internal method that returns an iterator over columns
 java.lang.Class getColumnType(int col)
          Get the data type of the column at the given column index.
 java.lang.Class getColumnType(java.lang.String field)
          Get the data type of the column with the given data field name.
 java.util.Date getDate(int row, int col)
          Get the data value at the given row and field as a Date.
 java.util.Date getDate(int row, java.lang.String field)
          Get the data value at the given row and field as a Date.
 java.lang.Object getDefault(java.lang.String field)
          Get the default value for the given data field.
 double getDouble(int row, int col)
          Get the data value at the given row and field as a double.
 double getDouble(int row, java.lang.String field)
          Get the data value at the given row and field as a double.
 float getFloat(int row, int col)
          Get the data value at the given row and field as a float.
 float getFloat(int row, java.lang.String field)
          Get the data value at the given row and field as a float.
 Index getIndex(java.lang.String field)
          Retrieve, without creating, an index for the given data field.
protected  Index getIndex(java.lang.String field, java.lang.Class expType, boolean create)
          Internal method for index creation and retrieval.
 int getInt(int row, int col)
          Get the data value at the given row and field as an int.
 int getInt(int row, java.lang.String field)
          Get the data value at the given row and field as an int.
 long getLong(int row, int col)
          Get the data value at the given row and field as an long.
 long getLong(int row, java.lang.String field)
          Get the data value at the given row and field as a long.
 int getMaximumRow()
          Get the maximum row index currently in use by this Table.
 ColumnMetadata getMetadata(java.lang.String field)
          Return a metadata instance providing summary information about a column.
 int getMinimumRow()
          Get the minimum row index currently in use by this Table.
 int getModificationCount()
          Get the number of times this Table has been modified.
 int getRowCount()
          Get the number of rows in the table.
 Schema getSchema()
          Returns this Table's schema.
 java.lang.String getString(int row, int col)
          Get the data value at the given row and field as a String.
 java.lang.String getString(int row, java.lang.String field)
          Get the data value at the given row and field as a String.
 int getTableRow(int colrow, int col)
          Get the row number for this table given a row number for a backing data column and the column number for the data column.
 Tuple getTuple(int row)
          Get the Tuple instance providing object-oriented access to the given table row.
 int getTupleCount()
          Get the number of tuples in this table.
protected  void handleColumnChanged(Column c, int start, int end)
          Handle a column change event.
protected  boolean hasColumn(java.lang.String name)
          Internal method indicating if the given data field is included as a data column.
 Index index(java.lang.String field)
          Create (if necessary) and return an index over the given data field.
protected  void invalidateSchema()
          Invalidates this table's cached schema.
 boolean isAddColumnSupported()
          Returns true, as this table supports the addition of new data fields.
 boolean isCellEditable(int row, int col)
          Indicates if the value of the given table cell can be changed.
 boolean isValidRow(int row)
          Indicates if the given row number corresponds to a valid table row.
 TableIterator iterator()
          Return a TableIterator over the rows of this table.
 TableIterator iterator(IntIterator rows)
          Return a TableIterator over the given rows of this table.
 IntIterator rangeSortedBy(java.lang.String field, double lo, double hi, int indexType)
          Return an iterator over a range of rwos in this table, determined by a bounded range for a given data field.
 IntIterator rangeSortedBy(java.lang.String field, float lo, float hi, int indexType)
          Return an iterator over a range of rwos in this table, determined by a bounded range for a given data field.
 IntIterator rangeSortedBy(java.lang.String field, int lo, int hi, int indexType)
          Return an iterator over a range of rwos in this table, determined by a bounded range for a given data field.
 IntIterator rangeSortedBy(java.lang.String field, long lo, long hi, int indexType)
          Return an iterator over a range of rwos in this table, determined by a bounded range for a given data field.
 IntIterator rangeSortedBy(java.lang.String field, java.lang.Object lo, java.lang.Object hi, int indexType)
          Return an iterator over a range of rwos in this table, determined by a bounded range for a given data field.
 void remove(Predicate filter)
          Removes all table rows that meet the input predicate filter.
 void removeAllTableListeners()
          Removes all table listeners from this table.
 void removeColumn(Column c)
          Remove a column from this table
protected  Column removeColumn(int idx)
          Internal method for removing a column.
 Column removeColumn(java.lang.String field)
          Remove a data field from this table
 boolean removeIndex(java.lang.String field)
          Remove the Index associated with the given data field / column name.
 boolean removeRow(int row)
          Removes a row from this table.
 void removeTableListener(TableListener listnr)
          Remove a table listener from this table.
 boolean removeTuple(Tuple t)
          Remove a tuple from this table.
protected  void renumberColumns()
          Internal method that re-numbers columns upon column removal.
 void revertToDefault(int row, java.lang.String field)
          Revert this tuple's value for the given field to the default value for the field.
 IntIterator rows()
          Get an interator over the row numbers of this table.
 IntIterator rows(boolean reverse)
          Get an interator over the row numbers of this table.
 IntIterator rows(Predicate filter)
          Get a filtered iterator over the row numbers of this table, returning only the rows whose tuples match the given filter predicate.
 IntIterator rowsSortedBy(java.lang.String field, boolean ascend)
          Get an iterator over the rows of this table, sorted by the given data field.
 Table select(Predicate filter, Sort sort)
          Query this table for a filtered, sorted subset of this table.
 void set(int row, int col, java.lang.Object val)
          Set the value of at the given row and column numbers.
 void set(int row, java.lang.String field, java.lang.Object val)
          Set the value of a given row and data field.
 void setBoolean(int row, int col, boolean val)
          Set the data value of the given row and field as a boolean.
 void setBoolean(int row, java.lang.String field, boolean val)
          Set the data value of the given row and field as a boolean.
 void setDate(int row, int col, java.util.Date val)
          Set the data value of the given row and field as a Date.
 void setDate(int row, java.lang.String field, java.util.Date val)
          Set the data value of the given row and field as a Date.
 void setDouble(int row, int col, double val)
          Set the data value of the given row and field as a double.
 void setDouble(int row, java.lang.String field, double val)
          Set the data value of the given row and field as a double.
 void setFloat(int row, int col, float val)
          Set the data value of the given row and field as a float.
 void setFloat(int row, java.lang.String field, float val)
          Set the data value of the given row and field as a float.
 void setInt(int row, int col, int val)
          Set the data value of the given row and field as an int.
 void setInt(int row, java.lang.String field, int val)
          Set the data value of the given row and field as an int.
 void setLong(int row, int col, long val)
          Set the data value of the given row and field as an long.
 void setLong(int row, java.lang.String field, long val)
          Set the data value of the given row and field as a long.
 void setString(int row, int col, java.lang.String val)
          Set the data value of the given row and field as a String.
 void setString(int row, java.lang.String field, java.lang.String val)
          Set the data value of the given row and field as a String.
 Tuple setTuple(Tuple t)
          Clears the contents of this table and then attempts to add the given Tuple instance.
 void setTupleManager(TupleManager tm)
          Sets the TupleManager used by this Table.
 java.lang.String toString()
           
 java.util.Iterator tuples()
          Get an iterator over the tuples in this table.
 java.util.Iterator tuples(IntIterator rows)
          Get an iterator over the tuples for the given rows in this table.
 java.util.Iterator tuplesReversed()
          Get an iterator over the tuples in this table in reverse order.
protected  void updateRowCount()
          Internal method that updates the row counts for local data columns.
 
Methods inherited from class prefuse.data.tuple.AbstractTupleSet
addColumns, addPropertyChangeListener, addPropertyChangeListener, addTupleSetListener, fireTupleEvent, fireTupleEvent, fireTupleEvent, getClientProperty, putClientProperty, removePropertyChangeListener, removePropertyChangeListener, removeTupleSetListener, tuples, tuples
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

m_listeners

protected CopyOnWriteArrayList m_listeners
Listeners for changes to this table


m_columns

protected java.util.ArrayList m_columns
Locally stored data columns


m_names

protected java.util.ArrayList m_names
Column names for locally store data columns


m_entries

protected java.util.HashMap m_entries
Mapping between column names and column entries containing column, metadata, and index references


m_rows

protected RowManager m_rows
Manager for valid row indices


m_tuples

protected TupleManager m_tuples
manager for tuples, which are object representations for rows


m_modCount

protected int m_modCount
Tracks the number of edits of this table


m_lastCol

protected int m_lastCol
Memoize the index of the last column operated on, used to expedite handling of column updates.


m_schema

protected Schema m_schema
A cached schema instance, loaded lazily

Constructor Detail

Table

public Table()
Create a new, empty Table. Rows can be added to the table using the addRow() method.


Table

public Table(int nrows,
             int ncols)
Create a new Table with a given number of rows, and the starting capacity for a given number of columns.

Parameters:
nrows - the starting number of table rows
ncols - the starting capacity for columns

Table

protected Table(int nrows,
                int ncols,
                java.lang.Class tupleType)
Create a new Table.

Parameters:
nrows - the starting number of table rows
ncols - the starting capacity for columns
tupleType - the class of the Tuple instances to use
Method Detail

getColumnCount

public int getColumnCount()
Get the number of columns / data fields in this table.

Returns:
the number of columns

getColumnType

public java.lang.Class getColumnType(int col)
Get the data type of the column at the given column index.

Parameters:
col - the column index
Returns:
the data type (as a Java Class) of the column

getColumnType

public java.lang.Class getColumnType(java.lang.String field)
Get the data type of the column with the given data field name.

Parameters:
field - the column / data field name
Returns:
the data type (as a Java Class) of the column

getRowCount

public int getRowCount()
Get the number of rows in the table.

Returns:
the number of rows

getMinimumRow

public int getMinimumRow()
Get the minimum row index currently in use by this Table.

Returns:
the minimum row index

getMaximumRow

public int getMaximumRow()
Get the maximum row index currently in use by this Table.

Returns:
the maximum row index

isCellEditable

public boolean isCellEditable(int row,
                              int col)
Indicates if the value of the given table cell can be changed.

Parameters:
row - the row number
col - the column number
Returns:
true if the value can be edited/changed, false otherwise

getModificationCount

public int getModificationCount()
Get the number of times this Table has been modified. Adding rows, deleting rows, and updating table cell values all contribute to this count.

Returns:
the number of modifications to this table

setTupleManager

public void setTupleManager(TupleManager tm)
Sets the TupleManager used by this Table. Use this method carefully, as it will cause all existing Tuples retrieved from this Table to be invalidated.

Parameters:
tm - the TupleManager to use

getSchema

public Schema getSchema()
Returns this Table's schema. The returned schema will be locked, which means that any attempts to edit the returned schema by adding additional columns will result in a runtime exception. If this Table subsequently has columns added or removed, this will not be reflected in the returned schema. Instead, this method will need to be called again to get a current schema. Accordingly, it is not recommended that Schema instances returned by this method be stored or reused across scopes unless that exact schema snapshot is desired.

Returns:
a copy of this Table's schema

invalidateSchema

protected void invalidateSchema()
Invalidates this table's cached schema. This method should be called whenever columns are added or removed from this table.


getColumnRow

public int getColumnRow(int row,
                        int col)
Get the row value for accessing an underlying Column instance, corresponding to the given table cell. For basic tables this just returns the input row value. However, for tables that inherit data columns from a parent table and present a filtered view on this data, a mapping between the row numbers of the table and the row numbers of the backing data column is needed. In those cases, this method returns the result of that mapping. The method getTableRow(int, int) accesses this map in the reverse direction.

Parameters:
row - the table row to lookup
col - the table column to lookup
Returns:
the column row number for accessing the desired table cell

getTableRow

public int getTableRow(int colrow,
                       int col)
Get the row number for this table given a row number for a backing data column and the column number for the data column. For basic tables this just returns the column row value. However, for tables that inherit data columns from a parent table and present a filtered view on this data, a mapping between the row numbers of the table and the row numbers of the backing data column is needed. In those cases, this method returns the result of this mapping, in the direction of the backing column rows to the table rows of the cascaded table. The method getColumnRow(int, int) accesses this map in the reverse direction.

Parameters:
colrow - the row of the backing data column
col - the table column to lookup.
Returns:
the table row number for accessing the desired table cell

addRow

public int addRow()
Add a row to this table. All data columns will be notified and will take on the appropriate default values for the added row.

Returns:
the row number of the newly added row

addRows

public void addRows(int nrows)
Add a given number of rows to this table. All data columns will be notified and will take on the appropriate default values for the added rows.

Parameters:
nrows - the number of rows to add.

updateRowCount

protected void updateRowCount()
Internal method that updates the row counts for local data columns.


removeRow

public boolean removeRow(int row)
Removes a row from this table.

Parameters:
row - the row to delete
Returns:
true if the row was successfully deleted, false if the row was already invalid

clear

public void clear()
Clear this table, removing all rows.

Specified by:
clear in interface TupleSet
See Also:
TupleSet.clear()

isValidRow

public boolean isValidRow(int row)
Indicates if the given row number corresponds to a valid table row.

Parameters:
row - the row number to check for validity
Returns:
true if the row is valid, false if it is not

hasColumn

protected boolean hasColumn(java.lang.String name)
Internal method indicating if the given data field is included as a data column.


getColumnName

public java.lang.String getColumnName(int col)
Get the data field name of the column at the given column number.

Parameters:
col - the column number
Returns:
the data field name of the column

getColumnNumber

public int getColumnNumber(java.lang.String field)
Get the column number for a given data field name.

Parameters:
field - the name of the column to lookup
Returns:
the column number of the column, or -1 if the name is not found

getColumnNumber

public int getColumnNumber(Column col)
Get the column number for the given Column instance.

Parameters:
col - the Column instance to lookup
Returns:
the column number of the column, or -1 if the name is not found

getColumn

public Column getColumn(int col)
Get the column at the given column number.

Parameters:
col - the column number
Returns:
the Column instance

getColumn

public Column getColumn(java.lang.String field)
Get the column with the given data field name

Parameters:
field - the data field name of the column
Returns:
the Column instance

addColumn

public void addColumn(java.lang.String name,
                      java.lang.Class type)
Add a column with the given name and data type to this table.

Specified by:
addColumn in interface TupleSet
Overrides:
addColumn in class AbstractTupleSet
Parameters:
name - the data field name for the column
type - the data type, as a Java Class, for the column
See Also:
TupleSet.addColumn(java.lang.String, java.lang.Class)

addColumn

public void addColumn(java.lang.String name,
                      java.lang.Class type,
                      java.lang.Object defaultValue)
Add a column with the given name and data type to this table.

Specified by:
addColumn in interface TupleSet
Overrides:
addColumn in class AbstractTupleSet
Parameters:
name - the data field name for the column
type - the data type, as a Java Class, for the column
defaultValue - the default value for column data values
See Also:
TupleSet.addColumn(java.lang.String, java.lang.Class, java.lang.Object)

addColumn

public void addColumn(java.lang.String name,
                      java.lang.String expr)
Add a derived column to this table, using an Expression instance to dynamically calculate the column data values.

Specified by:
addColumn in interface TupleSet
Overrides:
addColumn in class AbstractTupleSet
Parameters:
name - the data field name for the column
expr - a String expression in the prefuse expression language, to be parsed into an Expression instance. The string is parsed by the ExpressionParser. If an error occurs during parsing, an exception will be thrown.
See Also:
TupleSet.addColumn(java.lang.String, java.lang.String)

addColumn

public void addColumn(java.lang.String name,
                      Expression expr)
Add a derived column to this table, using an Expression instance to dynamically calculate the column data values.

Specified by:
addColumn in interface TupleSet
Overrides:
addColumn in class AbstractTupleSet
Parameters:
name - the data field name for the column
expr - the Expression that will determine the column values
See Also:
TupleSet.addColumn(java.lang.String, prefuse.data.expression.Expression)

addConstantColumn

public void addConstantColumn(java.lang.String name,
                              java.lang.Class type,
                              java.lang.Object dflt)
Add a constant column to this table, which returns one constant value for all column rows.

Parameters:
name - the data field name for the column
type - the data type, as a Java Class, for the column
dflt - the default value for column data values

addColumn

protected void addColumn(java.lang.String name,
                         Column col)
Internal method for adding a column.

Parameters:
name - the name of the column
col - the actual Column instance

removeColumn

protected Column removeColumn(int idx)
Internal method for removing a column.

Parameters:
idx - the column number of the column to remove
Returns:
the removed Column instance

removeColumn

public Column removeColumn(java.lang.String field)
Remove a data field from this table

Parameters:
field - the name of the data field / column to remove
Returns:
the removed Column instance

removeColumn

public void removeColumn(Column c)
Remove a column from this table

Parameters:
c - the column instance to remove

renumberColumns

protected void renumberColumns()
Internal method that re-numbers columns upon column removal.


getColumns

protected java.util.Iterator getColumns()
Internal method that returns an iterator over columns

Returns:
an iterator over columns

getColumnNames

protected java.util.Iterator getColumnNames()
Internal method that returns an iterator over column names

Returns:
an iterator over column name

getMetadata

public ColumnMetadata getMetadata(java.lang.String field)
Return a metadata instance providing summary information about a column.

Parameters:
field - the data field name of the column
Returns:
the columns' associated ColumnMetadata instance

index

public Index index(java.lang.String field)
Create (if necessary) and return an index over the given data field. The first call to this method with a given field name will cause the index to be created and stored. Subsequent calls will simply return the stored index. To attempt to retrieve an index without triggering creation of a new index, use the getIndex(String) method.

Parameters:
field - the data field name of the column to index
Returns:
the index over the specified data column

getIndex

public Index getIndex(java.lang.String field)
Retrieve, without creating, an index for the given data field.

Parameters:
field - the data field name of the column
Returns:
the stored index for the column, or null if no index has been created

getIndex

protected Index getIndex(java.lang.String field,
                         java.lang.Class expType,
                         boolean create)
Internal method for index creation and retrieval.

Parameters:
field - the data field name of the column
expType - the expected data type of the index
create - indicates whether or not a new index should be created if none currently exists for the given data field
Returns:
the Index for the given data field

removeIndex

public boolean removeIndex(java.lang.String field)
Remove the Index associated with the given data field / column name.

Parameters:
field - the name of the column for which to remove the index
Returns:
true if an index was successfully removed, false if no such index was found

getTuple

public Tuple getTuple(int row)
Get the Tuple instance providing object-oriented access to the given table row.

Parameters:
row - the table row
Returns:
the Tuple for the given table row

addTuple

public Tuple addTuple(Tuple t)
Add a Tuple to this table. If the Tuple is already a member of this table, nothing is done and null is returned. If the Tuple is not a member of this Table but has a compatible data schema, as determined by Schema.isAssignableFrom(Schema), a new row is created, the Tuple's values are copied, and the new Tuple that is a member of this Table is returned. If the data schemas are not compatible, nothing is done and null is returned.

Specified by:
addTuple in interface TupleSet
Parameters:
t - the Tuple to "add" to this table
Returns:
the actual Tuple instance added to this table, or null if no new Tuple has been added
See Also:
TupleSet.addTuple(prefuse.data.Tuple)

setTuple

public Tuple setTuple(Tuple t)
Clears the contents of this table and then attempts to add the given Tuple instance.

Specified by:
setTuple in interface TupleSet
Parameters:
t - the Tuple to make the sole tuple in thie table
Returns:
the actual Tuple instance added to this table, or null if no new Tuple has been added
See Also:
TupleSet.setTuple(prefuse.data.Tuple)

removeTuple

public boolean removeTuple(Tuple t)
Remove a tuple from this table. If the Tuple is a member of this table, its row is deleted from the table. Otherwise, nothing is done.

Specified by:
removeTuple in interface TupleSet
Parameters:
t - the Tuple to remove from the table
Returns:
true if the Tuple row was successfully deleted, false if the Tuple is invalid or not a member of this table
See Also:
TupleSet.removeTuple(prefuse.data.Tuple)

containsTuple

public boolean containsTuple(Tuple t)
Indicates if this table contains the given Tuple instance.

Specified by:
containsTuple in interface TupleSet
Parameters:
t - the Tuple to check for containment
Returns:
true if the Tuple represents a row of this table, false if it does not
See Also:
TupleSet.containsTuple(prefuse.data.Tuple)

getTupleCount

public int getTupleCount()
Get the number of tuples in this table. This is the same as the value returned by getRowCount().

Specified by:
getTupleCount in interface TupleSet
Returns:
the number of tuples, which is the same as the number of rows
See Also:
TupleSet.getTupleCount()

isAddColumnSupported

public boolean isAddColumnSupported()
Returns true, as this table supports the addition of new data fields.

Specified by:
isAddColumnSupported in interface TupleSet
Overrides:
isAddColumnSupported in class AbstractTupleSet
Returns:
true is add column operations are supported, false otherwise
See Also:
TupleSet.isAddColumnSupported()

canGet

public boolean canGet(java.lang.String field,
                      java.lang.Class type)
Check if the get method for the given data field returns values that are compatible with a given target type.

Parameters:
field - the data field to check
type - a Class instance to check for compatibility with the data field values.
Returns:
true if the data field is compatible with provided type, false otherwise. If the value is true, objects returned by the get(int, String) can be cast to the given type.
See Also:
get(int, String)

canSet

public boolean canSet(java.lang.String field,
                      java.lang.Class type)
Check if the set method for the given data field can accept values of a given target type.

Parameters:
field - the data field to check
type - a Class instance to check for compatibility with the data field values.
Returns:
true if the data field is compatible with provided type, false otherwise. If the value is true, objects of the given type can be used as parameters of the set(int, String, Object) method.
See Also:
set(int, String, Object)

get

public java.lang.Object get(int row,
                            java.lang.String field)
Get the data value at the given row and field as an Object.

Parameters:
row - the table row to get
field - the data field to retrieve
Returns:
the data value as an Object. The concrete type of this Object is dependent on the underlying data column used.
See Also:
canGet(String, Class), getColumnType(String)

set

public void set(int row,
                java.lang.String field,
                java.lang.Object val)
Set the value of a given row and data field.

Parameters:
row - the table row to set
field - the data field to set
val - the value for the field. If the concrete type of this Object is not compatible with the underlying data model, an Exception will be thrown. Use the canSet(String, Class) method to check the type-safety ahead of time.
See Also:
canSet(String, Class), getColumnType(String)

get

public java.lang.Object get(int row,
                            int col)
Get the data value at the given row and column numbers as an Object.

Parameters:
row - the row number
col - the column number
Returns:
the data value as an Object. The concrete type of this Object is dependent on the underlying data column used.
See Also:
canGet(String, Class), getColumnType(int)

set

public void set(int row,
                int col,
                java.lang.Object val)
Set the value of at the given row and column numbers.

Parameters:
row - the row number
col - the column number
val - the value for the field. If the concrete type of this Object is not compatible with the underlying data model, an Exception will be thrown. Use the canSet(String, Class) method to check the type-safety ahead of time.
See Also:
canSet(String, Class), getColumnType(String)

getDefault

public java.lang.Object getDefault(java.lang.String field)
Get the default value for the given data field.

Parameters:
field - the data field
Returns:
the default value, as an Object, used to populate rows of the data field.

revertToDefault

public void revertToDefault(int row,
                            java.lang.String field)
Revert this tuple's value for the given field to the default value for the field.

Parameters:
field - the data field
See Also:
getDefault(String)

canGetInt

public final boolean canGetInt(java.lang.String field)
Check if the given data field can return primitive int values.

Parameters:
field - the data field to check
Returns:
true if the data field can return primitive int values, false otherwise. If true, the getInt(int, String) method can be used safely.

canSetInt

public final boolean canSetInt(java.lang.String field)
Check if the setInt method can safely be used for the given data field.

Parameters:
field - the data field to check
Returns:
true if the setInt(int, String, int) method can safely be used for the given field, false otherwise.

getInt

public final int getInt(int row,
                        java.lang.String field)
Get the data value at the given row and field as an int.

Parameters:
row - the table row to retrieve
field - the data field to retrieve
See Also:
canGetInt(String)

setInt

public final void setInt(int row,
                         java.lang.String field,
                         int val)
Set the data value of the given row and field as an int.

Parameters:
row - the table row to set
field - the data field to set
val - the value to set
See Also:
canSetInt(String)

getInt

public final int getInt(int row,
                        int col)
Get the data value at the given row and field as an int.

Parameters:
row - the table row to retrieve
col - the column number of the data field to retrieve
See Also:
canGetInt(String)

setInt

public final void setInt(int row,
                         int col,
                         int val)
Set the data value of the given row and field as an int.

Parameters:
row - the table row to set
col - the column number of the data field to set
val - the value to set
See Also:
canSetInt(String)

canGetLong

public final boolean canGetLong(java.lang.String field)
Check if the given data field can return primitive long values.

Parameters:
field - the data field to check
Returns:
true if the data field can return primitive long values, false otherwise. If true, the getLong(int, String) method can be used safely.

canSetLong

public final boolean canSetLong(java.lang.String field)
Check if the setLong method can safely be used for the given data field.

Parameters:
field - the data field to check
Returns:
true if the setLong(int, String, long) method can safely be used for the given field, false otherwise.

getLong

public final long getLong(int row,
                          java.lang.String field)
Get the data value at the given row and field as a long.

Parameters:
row - the table row to retrieve
field - the data field to retrieve
See Also:
canGetLong(String)

setLong

public final void setLong(int row,
                          java.lang.String field,
                          long val)
Set the data value of the given row and field as a long.

Parameters:
row - the table row to set
field - the data field to set
val - the value to set
See Also:
canSetLong(String)

getLong

public final long getLong(int row,
                          int col)
Get the data value at the given row and field as an long.

Parameters:
row - the table row to retrieve
col - the column number of the data field to retrieve
See Also:
canGetLong(String)

setLong

public final void setLong(int row,
                          int col,
                          long val)
Set the data value of the given row and field as an long.

Parameters:
row - the table row to set
col - the column number of the data field to set
val - the value to set
See Also:
canSetLong(String)

canGetFloat

public final boolean canGetFloat(java.lang.String field)
Check if the given data field can return primitive float values.

Parameters:
field - the data field to check
Returns:
true if the data field can return primitive float values, false otherwise. If true, the getFloat(int, String) method can be used safely.

canSetFloat

public final boolean canSetFloat(java.lang.String field)
Check if the setFloat method can safely be used for the given data field.

Parameters:
field - the data field to check
Returns:
true if the setFloat(int, String, float) method can safely be used for the given field, false otherwise.

getFloat

public final float getFloat(int row,
                            java.lang.String field)
Get the data value at the given row and field as a float.

Parameters:
row - the table row to retrieve
field - the data field to retrieve
See Also:
canGetFloat(String)

setFloat

public final void setFloat(int row,
                           java.lang.String field,
                           float val)
Set the data value of the given row and field as a float.

Parameters:
row - the table row to set
field - the data field to set
val - the value to set
See Also:
canSetFloat(String)

getFloat

public final float getFloat(int row,
                            int col)
Get the data value at the given row and field as a float.

Parameters:
row - the table row to retrieve
col - the column number of the data field to get
See Also:
canGetFloat(String)

setFloat

public final void setFloat(int row,
                           int col,
                           float val)
Set the data value of the given row and field as a float.

Parameters:
row - the table row to set
col - the column number of the data field to set
val - the value to set
See Also:
canSetFloat(String)

canGetDouble

public final boolean canGetDouble(java.lang.String field)
Check if the given data field can return primitive double values.

Parameters:
field - the data field to check
Returns:
true if the data field can return primitive double values, false otherwise. If true, the getDouble(int, String) method can be used safely.

canSetDouble

public final boolean canSetDouble(java.lang.String field)
Check if the setDouble method can safely be used for the given data field.

Parameters:
field - the data field to check
Returns:
true if the setDouble(int, String, double) method can safely be used for the given field, false otherwise.

getDouble

public final double getDouble(int row,
                              java.lang.String field)
Get the data value at the given row and field as a double.

Parameters:
row - the table row to retrieve
field - the data field to retrieve
See Also:
canGetDouble(String)

setDouble

public final void setDouble(int row,
                            java.lang.String field,
                            double val)
Set the data value of the given row and field as a double.

Parameters:
row - the table row to set
field - the data field to set
val - the value to set
See Also:
canSetDouble(String)

getDouble

public final double getDouble(int row,
                              int col)
Get the data value at the given row and field as a double.

Parameters:
row - the table row to retrieve
col - the column number of the data field to get
See Also:
canGetDouble(String)

setDouble

public final void setDouble(int row,
                            int col,
                            double val)
Set the data value of the given row and field as a double.

Parameters:
row - the table row to set
col - the column number of the data field to set
val - the value to set
See Also:
canSetDouble(String)

canGetBoolean

public final boolean canGetBoolean(java.lang.String field)
Check if the given data field can return primitive boolean values.

Parameters:
field - the data field to check
Returns:
true if the data field can return primitive boolean values, false otherwise. If true, the getBoolean(int, String) method can be used safely.

canSetBoolean

public final boolean canSetBoolean(java.lang.String field)
Check if the setBoolean method can safely be used for the given data field.

Parameters:
field - the data field to check
Returns:
true if the setBoolean(int, String, boolean) method can safely be used for the given field, false otherwise.

getBoolean

public final boolean getBoolean(int row,
                                java.lang.String field)
Get the data value at the given row and field as a boolean.

Parameters:
row - the table row to retrieve
field - the data field to retrieve
See Also:
canGetBoolean(String)

setBoolean

public final void setBoolean(int row,
                             java.lang.String field,
                             boolean val)
Set the data value of the given row and field as a boolean.

Parameters:
row - the table row to set
field - the data field to set
val - the value to set
See Also:
canSetBoolean(String)

getBoolean

public final boolean getBoolean(int row,
                                int col)
Get the data value at the given row and field as a boolean.

Parameters:
row - the table row to retrieve
col - the column number of the data field to get
See Also:
canGetBoolean(String)

setBoolean

public final void setBoolean(int row,
                             int col,
                             boolean val)
Set the data value of the given row and field as a boolean.

Parameters:
row - the table row to set
col - the column number of the data field to set
val - the value to set
See Also:
canSetBoolean(String)

canGetString

public final boolean canGetString(java.lang.String field)
Check if the given data field can return primitive String values.

Parameters:
field - the data field to check
Returns:
true if the data field can return primitive String values, false otherwise. If true, the getString(int, String) method can be used safely.

canSetString

public final boolean canSetString(java.lang.String field)
Check if the setString method can safely be used for the given data field.

Parameters:
field - the data field to check
Returns:
true if the setString(int, String, String) method can safely be used for the given field, false otherwise.

getString

public final java.lang.String getString(int row,
                                        java.lang.String field)
Get the data value at the given row and field as a String.

Parameters:
row - the table row to retrieve
field - the data field to retrieve
See Also:
canGetString(String)

setString

public final void setString(int row,
                            java.lang.String field,
                            java.lang.String val)
Set the data value of the given row and field as a String.

Parameters:
row - the table row to set
field - the data field to set
val - the value to set
See Also:
canSetString(String)

getString

public final java.lang.String getString(int row,
                                        int col)
Get the data value at the given row and field as a String.

Parameters:
row - the table row to retrieve
col - the column number of the data field to retrieve
See Also:
canGetString(String)

setString

public final void setString(int row,
                            int col,
                            java.lang.String val)
Set the data value of the given row and field as a String.

Parameters:
row - the table row to set
col - the column number of the data field to set
val - the value to set
See Also:
canSetString(String)

canGetDate

public final boolean canGetDate(java.lang.String field)
Check if the given data field can return primitive Date values.

Parameters:
field - the data field to check
Returns:
true if the data field can return primitive Date values, false otherwise. If true, the getDate(int, String) method can be used safely.

canSetDate

public final boolean canSetDate(java.lang.String field)
Check if the setDate method can safely be used for the given data field.

Parameters:
field - the data field to check
Returns:
true if the setDate(int, String, Date) method can safely be used for the given field, false otherwise.

getDate

public final java.util.Date getDate(int row,
                                    java.lang.String field)
Get the data value at the given row and field as a Date.

Parameters:
row - the table row to retrieve
field - the data field to retrieve
See Also:
canGetDate(String)

setDate

public final void setDate(int row,
                          java.lang.String field,
                          java.util.Date val)
Set the data value of the given row and field as a Date.

Parameters:
row - the table row to set
field - the data field to set
val - the value to set
See Also:
canSetDate(String)

getDate

public final java.util.Date getDate(int row,
                                    int col)
Get the data value at the given row and field as a Date.

Parameters:
row - the table row to retrieve
col - the column number of the data field to retrieve
See Also:
canGetDate(String)

setDate

public final void setDate(int row,
                          int col,
                          java.util.Date val)
Set the data value of the given row and field as a Date.

Parameters:
row - the table row to set
col - the column number of the data field to set
val - the value to set
See Also:
canSetDate(String)

select

public Table select(Predicate filter,
                    Sort sort)
Query this table for a filtered, sorted subset of this table. This operation creates an entirely new table independent of this table. If a filtered view of this same table is preferred, use the CascadedTable class.

Parameters:
filter - the predicate filter determining which rows to include in the new table. If this value is null, all rows will be included.
sort - the sorting criteria determining the order in which rows are added to the new table. If this value is null, the rows will not be sorted.
Returns:
a new table meeting the query specification

remove

public void remove(Predicate filter)
Removes all table rows that meet the input predicate filter.

Parameters:
filter - a predicate specifying which rows to remove from the table.

iterator

public TableIterator iterator()
Return a TableIterator over the rows of this table.

Returns:
a TableIterator over this table

iterator

public TableIterator iterator(IntIterator rows)
Return a TableIterator over the given rows of this table.

Parameters:
rows - an iterator over the table rows to visit
Returns:
a TableIterator over this table

tuples

public java.util.Iterator tuples()
Get an iterator over the tuples in this table.

Specified by:
tuples in interface TupleSet
Returns:
an iterator over the table tuples
See Also:
TupleSet.tuples()

tuplesReversed

public java.util.Iterator tuplesReversed()
Get an iterator over the tuples in this table in reverse order.

Returns:
an iterator over the table tuples in reverse order

tuples

public java.util.Iterator tuples(IntIterator rows)
Get an iterator over the tuples for the given rows in this table.

Parameters:
rows - an iterator over the table rows to visit
Returns:
an iterator over the selected table tuples

rows

public IntIterator rows()
Get an interator over the row numbers of this table.

Returns:
an iterator over the rows of this table

rows

public IntIterator rows(Predicate filter)
Get a filtered iterator over the row numbers of this table, returning only the rows whose tuples match the given filter predicate.

Parameters:
filter - the filter predicate to apply
Returns:
a filtered iterator over the rows of this table

rows

public IntIterator rows(boolean reverse)
Get an interator over the row numbers of this table.

Parameters:
reverse - true to iterate in rever order, false for normal order
Returns:
an iterator over the rows of this table

rowsSortedBy

public IntIterator rowsSortedBy(java.lang.String field,
                                boolean ascend)
Get an iterator over the rows of this table, sorted by the given data field. This method will create an index over the field if one does not yet exist.

Parameters:
field - the data field to sort by
ascend - true if the iteration should proceed in an ascending (lowest to highest) sort order, false for a descending order
Returns:
the sorted iterator over rows of this table

rangeSortedBy

public IntIterator rangeSortedBy(java.lang.String field,
                                 int lo,
                                 int hi,
                                 int indexType)
Return an iterator over a range of rwos in this table, determined by a bounded range for a given data field. A new index over the data field will be created if it doesn't already exist.

Parameters:
field - the data field for determining the bounded range
lo - the minimum range value
hi - the maximum range value
indexType - indicate the sort order and inclusivity/exclusivity of the range bounds, using the constants of the Index class.
Returns:
an iterator over a range of table rows, determined by a sorted bounded range of a data field

rangeSortedBy

public IntIterator rangeSortedBy(java.lang.String field,
                                 long lo,
                                 long hi,
                                 int indexType)
Return an iterator over a range of rwos in this table, determined by a bounded range for a given data field. A new index over the data field will be created if it doesn't already exist.

Parameters:
field - the data field for determining the bounded range
lo - the minimum range value
hi - the maximum range value
indexType - indicate the sort order and inclusivity/exclusivity of the range bounds, using the constants of the Index class.
Returns:
an iterator over a range of table rows, determined by a sorted bounded range of a data field

rangeSortedBy

public IntIterator rangeSortedBy(java.lang.String field,
                                 float lo,
                                 float hi,
                                 int indexType)
Return an iterator over a range of rwos in this table, determined by a bounded range for a given data field. A new index over the data field will be created if it doesn't already exist.

Parameters:
field - the data field for determining the bounded range
lo - the minimum range value
hi - the maximum range value
indexType - indicate the sort order and inclusivity/exclusivity of the range bounds, using the constants of the Index class.
Returns:
an iterator over a range of table rows, determined by a sorted bounded range of a data field

rangeSortedBy

public IntIterator rangeSortedBy(java.lang.String field,
                                 double lo,
                                 double hi,
                                 int indexType)
Return an iterator over a range of rwos in this table, determined by a bounded range for a given data field. A new index over the data field will be created if it doesn't already exist.

Parameters:
field - the data field for determining the bounded range
lo - the minimum range value
hi - the maximum range value
indexType - indicate the sort order and inclusivity/exclusivity of the range bounds, using the constants of the Index class.
Returns:
an iterator over a range of table rows, determined by a sorted bounded range of a data field

rangeSortedBy

public IntIterator rangeSortedBy(java.lang.String field,
                                 java.lang.Object lo,
                                 java.lang.Object hi,
                                 int indexType)
Return an iterator over a range of rwos in this table, determined by a bounded range for a given data field. A new index over the data field will be created if it doesn't already exist.

Parameters:
field - the data field for determining the bounded range
lo - the minimum range value
hi - the maximum range value
indexType - indicate the sort order and inclusivity/exclusivity of the range bounds, using the constants of the Index class.
Returns:
an iterator over a range of table rows, determined by a sorted bounded range of a data field

columnChanged

public void columnChanged(Column src,
                          int idx,
                          boolean prev)
Description copied from interface: ColumnListener
Notification that a data column has changed.

Specified by:
columnChanged in interface ColumnListener
Parameters:
src - the column that has changed
idx - the column row index that has changed
prev - the previous value at the given location
See Also:
ColumnListener.columnChanged(prefuse.data.column.Column, int, boolean)

columnChanged

public void columnChanged(Column src,
                          int idx,
                          double prev)
Description copied from interface: ColumnListener
Notification that a data column has changed.

Specified by:
columnChanged in interface ColumnListener
Parameters:
src - the column that has changed
idx - the column row index that has changed
prev - the previous value at the given location
See Also:
ColumnListener.columnChanged(prefuse.data.column.Column, int, double)

columnChanged

public void columnChanged(Column src,
                          int idx,
                          float prev)
Description copied from interface: ColumnListener
Notification that a data column has changed.

Specified by:
columnChanged in interface ColumnListener
Parameters:
src - the column that has changed
idx - the column row index that has changed
prev - the previous value at the given location
See Also:
ColumnListener.columnChanged(prefuse.data.column.Column, int, float)

columnChanged

public void columnChanged(Column src,
                          int idx,
                          int prev)
Description copied from interface: ColumnListener
Notification that a data column has changed.

Specified by:
columnChanged in interface ColumnListener
Parameters:
src - the column that has changed
idx - the column row index that has changed
prev - the previous value at the given location
See Also:
ColumnListener.columnChanged(prefuse.data.column.Column, int, int)

columnChanged

public void columnChanged(Column src,
                          int idx,
                          long prev)
Description copied from interface: ColumnListener
Notification that a data column has changed.

Specified by:
columnChanged in interface ColumnListener
Parameters:
src - the column that has changed
idx - the column row index that has changed
prev - the previous value at the given location
See Also:
ColumnListener.columnChanged(prefuse.data.column.Column, int, long)

columnChanged

public void columnChanged(Column src,
                          int idx,
                          java.lang.Object prev)
Description copied from interface: ColumnListener
Notification that a data column has changed.

Specified by:
columnChanged in interface ColumnListener
Parameters:
src - the column that has changed
idx - the column row index that has changed
prev - the previous value at the given location
See Also:
ColumnListener.columnChanged(prefuse.data.column.Column, int, java.lang.Object)

columnChanged

public void columnChanged(Column src,
                          int type,
                          int start,
                          int end)
Description copied from interface: ColumnListener
Notification that a data column has changed.

Specified by:
columnChanged in interface ColumnListener
Parameters:
src - the column that has changed
type - One of EventConstants.INSERT, EventConstants.DELETE, or EventConstants.UPDATE.
start - the first column index that has been changed
end - the last column index that has been changed
See Also:
ColumnListener.columnChanged(prefuse.data.column.Column, int, int, int)

handleColumnChanged

protected void handleColumnChanged(Column c,
                                   int start,
                                   int end)
Handle a column change event.

Parameters:
c - the modified column
start - the starting row of the modified range
end - the ending row (inclusive) of the modified range

addTableListener

public void addTableListener(TableListener listnr)
Add a table listener to this table.

Parameters:
listnr - the listener to add

removeTableListener

public void removeTableListener(TableListener listnr)
Remove a table listener from this table.

Parameters:
listnr - the listener to remove

removeAllTableListeners

public void removeAllTableListeners()
Removes all table listeners from this table.


fireTableEvent

protected void fireTableEvent(int row0,
                              int row1,
                              int col,
                              int type)
Fire a table event to notify listeners.

Parameters:
row0 - the starting row of the modified range
row1 - the ending row (inclusive) of the modified range
col - the number of the column modified, or EventConstants.ALL_COLUMNS for operations effecting all columns.
type - the table modification type, one of EventConstants.INSERT, EventConstants.DELETE, or EventConstants.UPDATE.

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object
See Also:
Object.toString()


Copyright 2007 Regents of the University of California