Class BeanStarTable

All Implemented Interfaces:
Closeable, AutoCloseable, StarTable

public class BeanStarTable extends RandomStarTable
StarTable which displays beans. The table is constructed to display beans of a particular class, and each of its rows displays one instance of this class. It has a column for each readable property. As usual, a bean is anything which has likely-looking getter methods, though since this class uses the java.beans package any cleverer stuff held in BeanInfos will get used as well/instead.
Since:
23 Dec 2004
Author:
Mark Taylor (Starlink)
  • Constructor Details

    • BeanStarTable

      public BeanStarTable(Class<?> clazz) throws IntrospectionException
      Constructs a new table which will hold beans which are all instances of a given class.
      Parameters:
      clazz - class of which all beans held by this table are members
      Throws:
      IntrospectionException
  • Method Details

    • setData

      public void setData(Object[] data)
      Populates this model with items.
      Parameters:
      data - array of items, one for each row. This array's runtime type must match that for which this model was constructed (on pain of ClassCastException)
    • getData

      public Object[] getData()
      Returns the array of objects which this model displays, one per row. The runtime type of the returned array matches that of the bean class this model displays.
      Returns:
      table data
    • getRowCount

      public long getRowCount()
      Description copied from class: RandomStarTable
      Implementations must supply a non-negative return value.
      Specified by:
      getRowCount in interface StarTable
      Specified by:
      getRowCount in class RandomStarTable
      Returns:
      the number of rows in the table
    • getColumnCount

      public int getColumnCount()
      Description copied from interface: StarTable
      Returns the number of columns in this table.
      Specified by:
      getColumnCount in interface StarTable
      Specified by:
      getColumnCount in class AbstractStarTable
      Returns:
      the number of columns
    • getColumnInfo

      public ColumnInfo getColumnInfo(int icol)
      Description copied from interface: StarTable
      Returns the object describing the data in a given column.
      Specified by:
      getColumnInfo in interface StarTable
      Specified by:
      getColumnInfo in class AbstractStarTable
      Parameters:
      icol - the column for which header information is required
      Returns:
      a ValueInfo object for column icol
    • setColumnInfo

      public void setColumnInfo(String name, ValueInfo info)
      Resets the metadata for a column representing a property with a given name.
      Parameters:
      name - property's programmatic name
      info - new column metadata
    • getColumnProperties

      public String[] getColumnProperties()
      Returns an array of the property names which correspond to the columns of this table.
      Returns:
      array of strings giving programmatic names of bean properties, one for each table column
    • setColumnProperties

      public void setColumnProperties(String[] propNames)
      Fixes the columns which are to be used for this table. propNames is an array of the programmatic names of each of the properties of this bean which is used to get a column value.
      Parameters:
      propNames - array of programmatic names of properties to be used as columns
    • getCell

      public Object getCell(long irow, int icol) throws IOException
      Description copied from class: RandomStarTable
      Implementations of this method must be safe for concurrent calls from multiple threads.
      Specified by:
      getCell in interface StarTable
      Specified by:
      getCell in class RandomStarTable
      Parameters:
      irow - the index of the cell's row
      icol - the index of the cell's column
      Returns:
      the contents of this cell
      Throws:
      IOException - if there is an error reading the data