Package nom.tam.fits

Class AsciiTable

All Implemented Interfaces:
FitsElement, TableData

public class AsciiTable extends AbstractTableData
This class represents the data in an ASCII table
  • Constructor Details

    • AsciiTable

      public AsciiTable()
      Create an empty ASCII table
    • AsciiTable

      public AsciiTable(Header hdr) throws FitsException
      Create an ASCII table given a header
      Parameters:
      hdr - The header describing the table
      Throws:
      FitsException - if the operation failed
  • Method Details

    • addColumn

      public int addColumn(Object newCol) throws FitsException
      Description copied from interface: TableData
      Add a column to the table without any associated header information. Users should be cautious of calling this routine directly rather than the corresponding routine in AsciiTableHDU since this routine knows nothing of the FITS header modifications required.
      Parameters:
      newCol - the new column information. the newCol should be an Object[] where type of all of the constituents is identical. The length of data should match the other columns. Note: It is valid for data to be a 2 or higher dimensionality primitive array. In this case the column index is the first (in Java speak) index of the array. E.g., if called with int[30][20][10], the number of rows in the table should be 30 and this column will have elements which are 2-d integer arrays with TDIM = (10,20).
      Returns:
      the number of columns in the adapted table
      Throws:
      FitsException - if the operation failed
    • addColumn

      public int addColumn(Object newCol, int length) throws FitsException
      This version of addColumn allows the user to override the default length associated with each column type.
      Parameters:
      newCol - The new column data
      length - the requested length for the column
      Returns:
      the number of columns after this one is added.
      Throws:
      FitsException - if the operation failed
    • addRow

      public int addRow(Object[] newRow) throws FitsException
      Description copied from interface: TableData
      Add a row at the end of the table. Given the way the table is structured this will normally not be very efficient.Users should be cautious of calling this routine directly rather than the corresponding routine in AsciiTableHDU since this routine knows nothing of the FITS header modifications required.
      Parameters:
      newRow - An array of elements to be added. Each element of o should be an array of primitives or a String.
      Returns:
      the number of rows in the adapted table
      Throws:
      FitsException - if the operation failed
    • deleteColumns

      public void deleteColumns(int start, int len) throws FitsException
      Delete columns from the table.
      Parameters:
      start - The first, 0-indexed, column to be deleted.
      len - The number of columns to be deleted.
      Throws:
      FitsException - if the operation failed
    • deleteRows

      public void deleteRows(int start, int len) throws FitsException
      Delete rows from a FITS table
      Parameters:
      start - The first (0-indexed) row to be deleted.
      len - The number of rows to be deleted.
      Throws:
      FitsException - if the operation failed
    • fillHeader

      public void fillHeader(Header hdr)
      Fill in a header with information that points to this data.
      Parameters:
      hdr - The header to be updated with information appropriate to the current table data.
    • getColumn

      public Object getColumn(int col) throws FitsException
      Get a column of data
      Parameters:
      col - The 0-indexed column to be returned.
      Returns:
      The column object -- typically as a 1-d array.
      Throws:
      FitsException - if the operation failed
    • getData

      public Object getData() throws FitsException
      Get the ASCII table information. This will actually do the read if it had previously been deferred
      Specified by:
      getData in class Data
      Returns:
      The table data as an Object[] array.
      Throws:
      FitsException - if the operation failed
    • getElement

      public Object getElement(int row, int col) throws FitsException
      Get a single element as a one-d array. We return String's as arrays for consistency though they could be returned as a scalar.
      Parameters:
      row - The 0-based row
      col - The 0-based column
      Returns:
      The requested cell data.
      Throws:
      FitsException - when unable to get the data.
    • getNCols

      public int getNCols()
      Get the number of columns in the table
      Returns:
      The number of columns
    • getNRows

      public int getNRows()
      Get the number of rows in the table
      Returns:
      The number of rows.
    • getRow

      public Object[] getRow(int row) throws FitsException
      Get a row. If the data has not yet been read just read this row.
      Parameters:
      row - The 0-indexed row to be returned.
      Returns:
      A row of data.
      Throws:
      FitsException - if the operation failed
    • getRowLen

      public int getRowLen()
      Get the number of bytes in a row
      Returns:
      The number of bytes for a single row in the table.
    • getTrueSize

      protected long getTrueSize()
      Return the size of the data section
      Returns:
      The size in bytes of the data section, not includeing the padding.
    • isNull

      public boolean isNull(int row, int col)
      See if an element is null.
      Parameters:
      row - The 0-based row
      col - The 0-based column
      Returns:
      if the given element has been nulled.
    • read

      public void read(ArrayDataInput str) throws FitsException
      Read in an ASCII table. Reading is deferred if we are reading from a random access device
      Specified by:
      read in interface FitsElement
      Specified by:
      read in class Data
      Parameters:
      str - the stream to read from
      Throws:
      FitsException - if the operation failed
    • setColumn

      public void setColumn(int col, Object newData) throws FitsException
      Replace a column with new data.
      Parameters:
      col - The 0-based index to the column
      newData - The column data. This is typically a 1-d array.
      Throws:
      FitsException - if the operation failed
    • setElement

      public void setElement(int row, int col, Object newData) throws FitsException
      Modify an element in the table
      Parameters:
      row - the 0-based row
      col - the 0-based column
      newData - The new value for the column. Typically a primitive[1] array.
      Throws:
      FitsException - if the operation failed
    • setNull

      public void setNull(int row, int col, boolean flag)
      Mark (or unmark) an element as null. Note that if this FITS file is latter written out, a TNULL keyword needs to be defined in the corresponding header. This routine does not add an element for String columns.
      Parameters:
      row - The 0-based row.
      col - The 0-based column.
      flag - True if the element is to be set to null.
    • setRow

      public void setRow(int row, Object[] newData) throws FitsException
      Modify a row in the table
      Parameters:
      row - The 0-based index of the row
      newData - The new data. Each element of this array is typically a primitive[1] array.
      Throws:
      FitsException - if the operation failed
    • updateAfterDelete

      public void updateAfterDelete(int oldNCol, Header hdr) throws FitsException
      This is called after we delete columns. The HDU doesn't know how to update the TBCOL entries.
      Parameters:
      oldNCol - The number of columns we had before deletion.
      hdr - The associated header. @throws FitsException if the operation failed
      Throws:
      FitsException
    • write

      public void write(ArrayDataOutput str) throws FitsException
      Write the data to an output stream.
      Specified by:
      write in interface FitsElement
      Specified by:
      write in class Data
      Parameters:
      str - The output stream to be written to
      Throws:
      FitsException - if any IO exception is found or some inconsistency the FITS file arises.