org.jfree.util

Class ObjectTable

Implemented Interfaces:
Serializable

public class ObjectTable
extends java.lang.Object
implements Serializable

A lookup table for objects. This implementation is not synchronized, it is up to the caller to synchronize it properly.
Author:
Thomas Morgner

Constructor Summary

ObjectTable()
Creates a new table.
ObjectTable(int increment)
Creates a new table.
ObjectTable(int rowIncrement, int colIncrement)
Creates a new table.

Method Summary

void
clear()
Clears the table.
protected void
copyColumn(int oldColumn, int newColumn)
Copys the contents of the old column to the new column.
protected void
copyRow(int oldRow, int newRow)
Copys the contents of the old row to the new row.
void
ensureCapacity(int row, int column)
Ensures that there is storage capacity for the specified item.
protected void
ensureRowCapacity(int row)
Checks that there is storage capacity for the specified row and resizes if necessary.
boolean
equals(Object o)
Tests this paint table for equality with another object (typically also an ObjectTable).
int
getColumnCount()
Returns the number of columns in the table.
int
getColumnIncrement()
Returns the column size increment.
protected Object
getObject(int row, int column)
Returns the object from a particular cell in the table.
int
getRowCount()
Returns the number of rows in the table.
int
getRowIncrement()
Returns the row size increment.
int
hashCode()
Returns a hash code value for the object.
protected Object
readSerializedData(ObjectInputStream stream)
Handles the deserialization of a single element of the table.
protected void
setObject(int row, int column, Object object)
Sets the object for a cell in the table.
protected void
writeSerializedData(ObjectOutputStream stream, Object o)
Handles the serialization of an single element of this table.

Constructor Details

ObjectTable

public ObjectTable()
Creates a new table.

ObjectTable

public ObjectTable(int increment)
Creates a new table.
Parameters:
increment - the row and column size increment.

ObjectTable

public ObjectTable(int rowIncrement,
                   int colIncrement)
Creates a new table.
Parameters:
rowIncrement - the row size increment.
colIncrement - the column size increment.

Method Details

clear

public void clear()
Clears the table.

copyColumn

protected void copyColumn(int oldColumn,
                          int newColumn)
Copys the contents of the old column to the new column.
Parameters:
oldColumn - the index of the old (source) column
newColumn - the index of the new column

copyRow

protected void copyRow(int oldRow,
                       int newRow)
Copys the contents of the old row to the new row. This uses raw access to the data and is remarkably faster than manual copying.
Parameters:
oldRow - the index of the old row
newRow - the index of the new row

ensureCapacity

public void ensureCapacity(int row,
                           int column)
Ensures that there is storage capacity for the specified item.
Parameters:
row - the row index.
column - the column index.

ensureRowCapacity

protected void ensureRowCapacity(int row)
Checks that there is storage capacity for the specified row and resizes if necessary.
Parameters:
row - the row index.

equals

public boolean equals(Object o)
Tests this paint table for equality with another object (typically also an ObjectTable).
Parameters:
o - the other object.
Returns:
A boolean.

getColumnCount

public int getColumnCount()
Returns the number of columns in the table.
Returns:
The column count.

getColumnIncrement

public int getColumnIncrement()
Returns the column size increment.
Returns:
the increment.

getObject

protected Object getObject(int row,
                           int column)
Returns the object from a particular cell in the table. Returns null, if there is no object at the given position.

Note: throws IndexOutOfBoundsException if row or column is negative.

Parameters:
row - the row index (zero-based).
column - the column index (zero-based).
Returns:
The object.

getRowCount

public int getRowCount()
Returns the number of rows in the table.
Returns:
The row count.

getRowIncrement

public int getRowIncrement()
Returns the row size increment.
Returns:
the increment.

hashCode

public int hashCode()
Returns a hash code value for the object.
Returns:
the hashcode

readSerializedData

protected Object readSerializedData(ObjectInputStream stream)
            throws ClassNotFoundException,
                   IOException
Handles the deserialization of a single element of the table.
Parameters:
stream - the object input stream from which to read the object.
Returns:
the deserialized object

setObject

protected void setObject(int row,
                         int column,
                         Object object)
Sets the object for a cell in the table. The table is expanded if necessary.
Parameters:
row - the row index (zero-based).
column - the column index (zero-based).
object - the object.

writeSerializedData

protected void writeSerializedData(ObjectOutputStream stream,
                                   Object o)
            throws IOException
Handles the serialization of an single element of this table.
Parameters:
stream - the stream which should write the object
o - the object that should be serialized