Class RandomStarTable

  • All Implemented Interfaces:
    java.io.Closeable, java.lang.AutoCloseable, StarTable
    Direct Known Subclasses:
    BeanStarTable, ColumnStarTable, ConstantStarTable, RandomResultSetStarTable, RowListStarTable

    public abstract class RandomStarTable
    extends AbstractStarTable
    Implements a StarTable based on row and cell accessor methods that are random access and thread-safe.

    The isRandom method always returns true, and the getRowSequence method is implemented using the table's (abstract) getCell and getRow methods, which must be safe for concurrent use from multiple threads. This implementation is only suitable where table data access is naturally thread-safe; in cases where synchronization or some other potentially expensive mechanism is used to secure thread-safety of getCell, it is better to use a different implementation with a better getRowSequence implementation.

    Author:
    Mark Taylor (Starlink)
    • Constructor Detail

      • RandomStarTable

        public RandomStarTable()
    • Method Detail

      • getRowCount

        public abstract long getRowCount()
        Implementations must supply a non-negative return value.
        Specified by:
        getRowCount in interface StarTable
        Specified by:
        getRowCount in class AbstractStarTable
        Returns:
        the number of rows in the table
      • getCell

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