Class DataTable

  • Direct Known Subclasses:
    TableData


    public class DataTable
    extends java.lang.Object
    • Constructor Summary

      Constructors 
      Constructor Description
      DataTable​()
      Constructor
      DataTable​(java.lang.String dataTableName)
      Constructor
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      DataColumn addColumn​(int index, java.lang.String columnName, DataTypes dataType)
      Add a data column
      void addColumn​(int index, DataColumn column)
      Add a data column by index
      DataColumn addColumn​(java.lang.String columnName, DataTypes dataType)
      Add a data column
      void addColumn​(DataColumn column)
      Add a data column
      void addColumnData​(int index, java.lang.String colName, DataTypes dataType, java.util.List<java.lang.Object> colData)
      Add column data
      void addColumnData​(java.lang.String colName, java.lang.String dt, java.util.List<java.lang.Object> colData)
      Add column data
      void addColumnData​(java.lang.String colName, DataTypes dataType, java.util.List<java.lang.Object> colData)
      Add column data
      void addColumnData​(ColumnData colData)
      Add column data
      DataRow addRow​()
      Add data row
      boolean addRow​(DataRow row)
      Add a data row
      void addRows​(java.util.List<DataRow> rows)
      Add data rows
      boolean appendRow​(DataRow row)
      Append a data row
      java.lang.Object avg​(java.lang.String columns, java.lang.String filter)  
      java.lang.Object avg​(java.lang.String columns, java.lang.String filter, java.lang.String groupBy)  
      java.lang.Object clone​()
      Clone
      DataTable cloneTable_Field​()
      Clone table - Vectorlayer with fields
      DataTable colSelect​(java.util.List<DataColumn> cols)
      Create a new data table using selected columns
      DataColumn findColumn​(java.lang.String colName)
      Find column by name
      java.util.List<DataColumn> findColumns​(java.util.List<java.lang.String> colNames)
      Get data columns by names
      java.util.List<DataColumn> findColumns_Index​(java.util.List<java.lang.Integer> colIndex)
      Get data columns by index
      int getColumnCount​()
      Get column count
      ColumnData getColumnData​(java.lang.String colName)
      Get column data
      ColumnData getColumnData​(java.util.List<DataRow> rows, java.lang.String colName)
      Get column data
      ColumnData getColumnData​(DataColumn col)
      Get column data
      java.util.List<java.lang.String> getColumnNames​()
      Get column names
      DataColumnCollection getColumns​()
      Get data columns
      int getRowCount​()
      Get row count
      DataRowCollection getRows​()
      Get data rows
      DataRowCollection getRows​(java.util.List<java.lang.Integer> idx)
      Get data rows
      DataRowCollection getRows​(ucar.ma2.Range range)
      Get data rows
      java.lang.String getTableName​()
      Get table name
      java.lang.Object getTag​()
      Get tag
      int getTotalCount​()
      Get total row count
      java.lang.Object getValue​(int row, int col)
      Get the value by row and column index
      java.lang.Object getValue​(int row, java.lang.String colName)
      Get the value by row index and column name
      boolean hasTimeColumn​()
      Check if the table has time column
      java.lang.String head​(int n)
      Convert to string - head
      boolean isReadOnly​()
      Get if is read only
      void join​(DataTable dataTable, java.lang.String colName)
      Join data table
      void join​(DataTable dataTable, java.lang.String colName, boolean isUpdate)
      Join data table
      void join​(DataTable dataTable, java.lang.String colName_this, java.lang.String colName_in, boolean isUpdate)
      Join data table
      java.lang.Object max​(java.lang.String columns, java.lang.String filter)  
      java.lang.Object max​(java.lang.String columns, java.lang.String filter, java.lang.String groupBy)  
      java.lang.Object min​(java.lang.String columns, java.lang.String filter)  
      java.lang.Object min​(java.lang.String columns, java.lang.String filter, java.lang.String groupBy)  
      DataRow newRow​()
      Create a new data row
      void removeColumn​(DataColumn column)
      Remove a data column
      void removeJoin​()
      Remove joined data columns
      void removeRow​(int rowIdx)
      Remove a row
      void removeRow​(DataRow row)
      Remove a row
      void removeRows​(java.util.List<DataRow> rows)
      Remove rows
      void renameColumn​(int colIdx, java.lang.String fieldName)
      Rename column
      void renameColumn​(java.lang.String oldName, java.lang.String newName)
      Rename column
      void renameColumn​(DataColumn column, java.lang.String fieldName)
      Rename column
      void saveAsASCIIFile​(java.lang.String fileName)
      Save as ASCII file
      void saveAsASCIIFile​(java.lang.String fileName, java.lang.String delimiter, java.lang.String dateFormat, java.lang.String floatFormat)
      Save as ASCII file
      void saveAsASCIIFile_format​(java.lang.String fileName, java.lang.String format)
      Save as ASCII file
      void saveAsCSVFile​(java.lang.String fileName)
      Save as csv file
      void saveAsCSVFile​(java.lang.String fileName, java.lang.String format)
      Save as csv file
      DataTable select​(int r_start, int r_stop, int r_step)
      Get a new table by select rows
      DataTable select​(int r_start, int r_stop, int r_step, int c_start, int c_stop, int c_step)
      Get a new table by select rows
      DataTable select​(int r_start, int r_stop, int r_step, java.util.List<DataColumn> cols)
      Get a new table by select rows
      java.util.List<DataRow> select​(java.lang.String expression)
      Select data rows
      DataTable select​(java.lang.String expression, DataColumn[] dataColumns)
      Select and form a new data table
      DataTable select​(java.util.List<java.lang.Integer> rowIndex)
      Get a new table by row index
      DataTable select​(java.util.List<java.lang.Integer> rowIndex, int c_start, int c_stop, int c_step)
      Get a new table by row index and column slice
      DataTable select​(java.util.List<java.lang.Integer> rowIndex, java.util.List<DataColumn> cols)
      Get a new table by row index and columns
      DataTable select​(java.util.List<java.lang.Integer> rowIndex, ucar.ma2.Range colRange)
      Get a new table by row index and column range
      DataTable select​(ucar.ma2.Range rowRange)
      Get a new table by row range
      DataTable select​(ucar.ma2.Range rowRange, java.util.List<DataColumn> cols)
      Get a new table by row range and columns
      DataTable select​(ucar.ma2.Range rowRange, ucar.ma2.Range colRange)
      Get a new table by row range and column range
      void setColumnData​(java.lang.String colName, java.util.List<java.lang.Object> colData)
      Add column data
      void setColumnData​(DataColumn col, java.util.List<java.lang.Object> colData)
      Add column data
      void setReadOnly​(boolean readOnly)
      Set if is read only
      void setRows​(java.util.List<DataRow> rows)
      Set data rows
      void setTableName​(java.lang.String tableName)
      Set tabel name
      void setTag​(java.lang.Object tag)
      Set tag
      void setValue​(int row, int col, java.lang.Object value)
      Set a vlaue by row and column index
      void setValue​(int row, java.lang.String colName, java.lang.Object value)
      Set a value
      void setValues​(java.lang.String colName, java.util.List<java.lang.Object> values)
      Set values
      DataTable sqlSelect​(java.lang.String expression)
      Select and form a new data table
      java.lang.String tail​(int n)
      Convert to string - tail
      java.lang.String toString​()
      Convert to string
      java.lang.String toString​(int decimalNum)
      Convert to string
      java.lang.String toString​(java.lang.String dateFormat)
      Convert to string
      java.lang.String toString​(java.lang.String dateFormat, int decimalNum)
      Convert to string
      • Methods inherited from class java.lang.Object

        equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Field Detail

      • tableName

        protected java.lang.String tableName
      • readOnly

        protected boolean readOnly
      • nextRowIndex

        protected int nextRowIndex
      • tag

        protected java.lang.Object tag
    • Constructor Detail

      • DataTable

        public DataTable​()
        Constructor
      • DataTable

        public DataTable​(java.lang.String dataTableName)
        Constructor
        Parameters:
        dataTableName - The data table name
    • Method Detail

      • getTotalCount

        public int getTotalCount​()
        Get total row count
        Returns:
        Row number
      • getRowCount

        public int getRowCount​()
        Get row count
        Returns:
        Row count
      • getColumnCount

        public int getColumnCount​()
        Get column count
        Returns:
        Column count
      • isReadOnly

        public boolean isReadOnly​()
        Get if is read only
        Returns:
        Boolean
      • setReadOnly

        public void setReadOnly​(boolean readOnly)
        Set if is read only
        Parameters:
        readOnly - Read only
      • getTableName

        public java.lang.String getTableName​()
        Get table name
        Returns:
        Table name
      • setTableName

        public void setTableName​(java.lang.String tableName)
        Set tabel name
        Parameters:
        tableName - Table name
      • getRows

        public DataRowCollection getRows​()
        Get data rows
        Returns:
        DataRowCollection The data rows
      • getRows

        public DataRowCollection getRows​(java.util.List<java.lang.Integer> idx)
        Get data rows
        Parameters:
        idx - Index
        Returns:
        DataRowCollection The data rows
      • getRows

        public DataRowCollection getRows​(ucar.ma2.Range range)
        Get data rows
        Parameters:
        range - Range
        Returns:
        DataRowCollection The data rows
      • getColumns

        public DataColumnCollection getColumns​()
        Get data columns
        Returns:
        The data columns
      • getColumnNames

        public java.util.List<java.lang.String> getColumnNames​()
        Get column names
        Returns:
        Column names
      • getValue

        public java.lang.Object getValue​(int row,
                                         java.lang.String colName)
        Get the value by row index and column name
        Parameters:
        row - Row index
        colName - Column name
        Returns:
        Object The value
      • getValue

        public java.lang.Object getValue​(int row,
                                         int col)
        Get the value by row and column index
        Parameters:
        row - Row index
        col - Column index
        Returns:
        Object The value
      • newRow

        public DataRow newRow​()
                       throws java.lang.Exception
        Create a new data row
        Returns:
        DataRow The new data row
        Throws:
        java.lang.Exception
      • setValue

        public void setValue​(int row,
                             int col,
                             java.lang.Object value)
        Set a vlaue by row and column index
        Parameters:
        row - Row index
        col - Column index
        value - The value
      • setValue

        public void setValue​(int row,
                             java.lang.String colName,
                             java.lang.Object value)
        Set a value
        Parameters:
        row - Row index
        colName - Column name
        value - The value
      • setValues

        public void setValues​(java.lang.String colName,
                              java.util.List<java.lang.Object> values)
        Set values
        Parameters:
        colName - Column name
        values - Values
      • setTag

        public void setTag​(java.lang.Object tag)
        Set tag
        Parameters:
        tag - The tag
      • getTag

        public java.lang.Object getTag​()
        Get tag
        Returns:
        the tag
      • findColumn

        public DataColumn findColumn​(java.lang.String colName)
        Find column by name
        Parameters:
        colName - The column name
        Returns:
        The data column
      • findColumns

        public java.util.List<DataColumn> findColumns​(java.util.List<java.lang.String> colNames)
        Get data columns by names
        Parameters:
        colNames - Data column names
        Returns:
        Data columns
      • findColumns_Index

        public java.util.List<DataColumn> findColumns_Index​(java.util.List<java.lang.Integer> colIndex)
        Get data columns by index
        Parameters:
        colIndex - Data column index
        Returns:
        Data columns
      • hasTimeColumn

        public boolean hasTimeColumn​()
        Check if the table has time column
        Returns:
        Boolean
      • addColumn

        public DataColumn addColumn​(java.lang.String columnName,
                                    DataTypes dataType)
                             throws java.lang.Exception
        Add a data column
        Parameters:
        columnName - Data column name
        dataType - Data type
        Returns:
        The data column
        Throws:
        java.lang.Exception
      • addColumn

        public DataColumn addColumn​(int index,
                                    java.lang.String columnName,
                                    DataTypes dataType)
                             throws java.lang.Exception
        Add a data column
        Parameters:
        index - The index
        columnName - Data column name
        dataType - Data type
        Returns:
        The data column
        Throws:
        java.lang.Exception
      • addColumn

        public void addColumn​(int index,
                              DataColumn column)
        Add a data column by index
        Parameters:
        index - The index
        column - Data column
      • addColumn

        public void addColumn​(DataColumn column)
        Add a data column
        Parameters:
        column - Data column
      • removeColumn

        public void removeColumn​(DataColumn column)
        Remove a data column
        Parameters:
        column - The data column
      • renameColumn

        public void renameColumn​(DataColumn column,
                                 java.lang.String fieldName)
        Rename column
        Parameters:
        column - The column
        fieldName - The new column name
      • renameColumn

        public void renameColumn​(java.lang.String oldName,
                                 java.lang.String newName)
        Rename column
        Parameters:
        oldName - The old column name
        newName - The new column name
      • renameColumn

        public void renameColumn​(int colIdx,
                                 java.lang.String fieldName)
        Rename column
        Parameters:
        colIdx - The column index
        fieldName - The new column name
      • addRow

        public boolean addRow​(DataRow row)
                       throws java.lang.Exception
        Add a data row
        Parameters:
        row - The data row
        Returns:
        Boolean
        Throws:
        java.lang.Exception
      • addRow

        public DataRow addRow​()
                       throws java.lang.Exception
        Add data row
        Returns:
        Data row
        Throws:
        java.lang.Exception
      • addRows

        public void addRows​(java.util.List<DataRow> rows)
                     throws java.lang.Exception
        Add data rows
        Parameters:
        rows - Data rows
        Throws:
        java.lang.Exception
      • appendRow

        public boolean appendRow​(DataRow row)
        Append a data row
        Parameters:
        row - Data row
        Returns:
        Boolean
      • removeRow

        public void removeRow​(int rowIdx)
        Remove a row
        Parameters:
        rowIdx - Row index
      • removeRow

        public void removeRow​(DataRow row)
        Remove a row
        Parameters:
        row - The row will be removed
      • removeRows

        public void removeRows​(java.util.List<DataRow> rows)
        Remove rows
        Parameters:
        rows - The rows will be removed
      • setRows

        public void setRows​(java.util.List<DataRow> rows)
        Set data rows
        Parameters:
        rows - The data rows
      • setColumnData

        public void setColumnData​(DataColumn col,
                                  java.util.List<java.lang.Object> colData)
                           throws java.lang.Exception
        Add column data
        Parameters:
        col - The column
        colData - The column data
        Throws:
        java.lang.Exception
      • setColumnData

        public void setColumnData​(java.lang.String colName,
                                  java.util.List<java.lang.Object> colData)
                           throws java.lang.Exception
        Add column data
        Parameters:
        colName - Column name
        colData - The column data
        Throws:
        java.lang.Exception
      • addColumnData

        public void addColumnData​(ColumnData colData)
                           throws java.lang.Exception
        Add column data
        Parameters:
        colData - The column data
        Throws:
        java.lang.Exception
      • addColumnData

        public void addColumnData​(java.lang.String colName,
                                  DataTypes dataType,
                                  java.util.List<java.lang.Object> colData)
                           throws java.lang.Exception
        Add column data
        Parameters:
        colName - Column name
        dataType - Data type
        colData - The column data
        Throws:
        java.lang.Exception
      • addColumnData

        public void addColumnData​(int index,
                                  java.lang.String colName,
                                  DataTypes dataType,
                                  java.util.List<java.lang.Object> colData)
                           throws java.lang.Exception
        Add column data
        Parameters:
        index - Column index
        colName - Column name
        dataType - Data type
        colData - The column data
        Throws:
        java.lang.Exception
      • addColumnData

        public void addColumnData​(java.lang.String colName,
                                  java.lang.String dt,
                                  java.util.List<java.lang.Object> colData)
                           throws java.lang.Exception
        Add column data
        Parameters:
        colName - Column name
        dt - Data type string
        colData - The column data
        Throws:
        java.lang.Exception
      • getColumnData

        public ColumnData getColumnData​(java.lang.String colName)
        Get column data
        Parameters:
        colName - The column name
        Returns:
        Column data
      • getColumnData

        public ColumnData getColumnData​(DataColumn col)
        Get column data
        Parameters:
        col - The data column
        Returns:
        Column data
      • getColumnData

        public ColumnData getColumnData​(java.util.List<DataRow> rows,
                                        java.lang.String colName)
        Get column data
        Parameters:
        rows - The data row list
        colName - The data column name
        Returns:
        Column values
      • select

        public java.util.List<DataRow> select​(java.lang.String expression)
        Select data rows
        Parameters:
        expression - SQL expression
        Returns:
        Selected data rows
      • select

        public DataTable select​(java.lang.String expression,
                                DataColumn[] dataColumns)
        Select and form a new data table
        Parameters:
        expression - SQL expression
        dataColumns - Data columns
        Returns:
        Selected data table
      • select

        public DataTable select​(ucar.ma2.Range rowRange)
                         throws java.lang.Exception
        Get a new table by row range
        Parameters:
        rowRange - Row range
        Returns:
        Throws:
        java.lang.Exception
      • select

        public DataTable select​(int r_start,
                                int r_stop,
                                int r_step)
                         throws java.lang.Exception
        Get a new table by select rows
        Parameters:
        r_start - row start
        r_stop - row stop
        r_step - row step
        Returns:
        Result table
        Throws:
        java.lang.Exception
      • select

        public DataTable select​(java.util.List<java.lang.Integer> rowIndex)
                         throws java.lang.Exception
        Get a new table by row index
        Parameters:
        rowIndex - Row index
        Returns:
        Result table
        Throws:
        java.lang.Exception
      • select

        public DataTable select​(ucar.ma2.Range rowRange,
                                ucar.ma2.Range colRange)
                         throws java.lang.Exception
        Get a new table by row range and column range
        Parameters:
        rowRange - Row range
        colRange - Column range
        Returns:
        Result table
        Throws:
        java.lang.Exception
      • select

        public DataTable select​(int r_start,
                                int r_stop,
                                int r_step,
                                int c_start,
                                int c_stop,
                                int c_step)
                         throws java.lang.Exception
        Get a new table by select rows
        Parameters:
        r_start - Row start
        r_stop - Row stop
        r_step - Row step
        c_start - Column start
        c_stop - Column stop
        c_step - Column step
        Returns:
        Result table
        Throws:
        java.lang.Exception
      • select

        public DataTable select​(java.util.List<java.lang.Integer> rowIndex,
                                ucar.ma2.Range colRange)
                         throws java.lang.Exception
        Get a new table by row index and column range
        Parameters:
        rowIndex - Row index
        colRange - Column range
        Returns:
        Result table
        Throws:
        java.lang.Exception
      • select

        public DataTable select​(java.util.List<java.lang.Integer> rowIndex,
                                int c_start,
                                int c_stop,
                                int c_step)
                         throws java.lang.Exception
        Get a new table by row index and column slice
        Parameters:
        rowIndex - Row index
        c_start - Column start
        c_stop - Column stop
        c_step - Column step
        Returns:
        Result table
        Throws:
        java.lang.Exception
      • select

        public DataTable select​(ucar.ma2.Range rowRange,
                                java.util.List<DataColumn> cols)
                         throws java.lang.Exception
        Get a new table by row range and columns
        Parameters:
        rowRange - Row range
        cols - Columns
        Returns:
        Result table
        Throws:
        java.lang.Exception
      • select

        public DataTable select​(int r_start,
                                int r_stop,
                                int r_step,
                                java.util.List<DataColumn> cols)
                         throws java.lang.Exception
        Get a new table by select rows
        Parameters:
        r_start - Row start
        r_stop - Row stop
        r_step - Row step
        cols - Columns
        Returns:
        Result table
        Throws:
        java.lang.Exception
      • select

        public DataTable select​(java.util.List<java.lang.Integer> rowIndex,
                                java.util.List<DataColumn> cols)
                         throws java.lang.Exception
        Get a new table by row index and columns
        Parameters:
        rowIndex - Row index
        cols - Columns
        Returns:
        Result table
        Throws:
        java.lang.Exception
      • colSelect

        public DataTable colSelect​(java.util.List<DataColumn> cols)
                            throws java.lang.Exception
        Create a new data table using selected columns
        Parameters:
        cols - The columns
        Returns:
        Selected data table
        Throws:
        java.lang.Exception
      • sqlSelect

        public DataTable sqlSelect​(java.lang.String expression)
        Select and form a new data table
        Parameters:
        expression - SQL expression
        Returns:
        Selected data table
      • max

        public java.lang.Object max​(java.lang.String columns,
                                    java.lang.String filter)
      • min

        public java.lang.Object min​(java.lang.String columns,
                                    java.lang.String filter)
      • avg

        public java.lang.Object avg​(java.lang.String columns,
                                    java.lang.String filter)
      • max

        public java.lang.Object max​(java.lang.String columns,
                                    java.lang.String filter,
                                    java.lang.String groupBy)
      • min

        public java.lang.Object min​(java.lang.String columns,
                                    java.lang.String filter,
                                    java.lang.String groupBy)
      • avg

        public java.lang.Object avg​(java.lang.String columns,
                                    java.lang.String filter,
                                    java.lang.String groupBy)
      • clone

        public java.lang.Object clone​()
        Clone
        Overrides:
        clone in class java.lang.Object
        Returns:
        Cloned DataTable object
      • cloneTable_Field

        public DataTable cloneTable_Field​()
        Clone table - Vectorlayer with fields
        Returns:
        DataTable
      • head

        public java.lang.String head​(int n)
        Convert to string - head
        Parameters:
        n - Head row number
        Returns:
        The string
      • tail

        public java.lang.String tail​(int n)
        Convert to string - tail
        Parameters:
        n - Tail row number
        Returns:
        The string
      • toString

        public java.lang.String toString​()
        Convert to string
        Overrides:
        toString in class java.lang.Object
        Returns:
        The string
      • toString

        public java.lang.String toString​(java.lang.String dateFormat)
        Convert to string
        Parameters:
        dateFormat - Date format string
        Returns:
        The string
      • toString

        public java.lang.String toString​(int decimalNum)
        Convert to string
        Parameters:
        decimalNum - Decimal number
        Returns:
        The string
      • toString

        public java.lang.String toString​(java.lang.String dateFormat,
                                         int decimalNum)
        Convert to string
        Parameters:
        dateFormat - Date format string
        decimalNum - Decimal number
        Returns:
        The string
      • saveAsCSVFile

        public void saveAsCSVFile​(java.lang.String fileName)
                           throws java.io.IOException
        Save as csv file
        Parameters:
        fileName - File name
        Throws:
        java.io.IOException
      • saveAsCSVFile

        public void saveAsCSVFile​(java.lang.String fileName,
                                  java.lang.String format)
                           throws java.io.IOException
        Save as csv file
        Parameters:
        fileName - File name
        format - Format string
        Throws:
        java.io.IOException
      • saveAsASCIIFile

        public void saveAsASCIIFile​(java.lang.String fileName)
                             throws java.io.IOException
        Save as ASCII file
        Parameters:
        fileName - File name
        Throws:
        java.io.IOException
      • saveAsASCIIFile

        public void saveAsASCIIFile​(java.lang.String fileName,
                                    java.lang.String delimiter,
                                    java.lang.String dateFormat,
                                    java.lang.String floatFormat)
                             throws java.io.IOException
        Save as ASCII file
        Parameters:
        fileName - File name
        delimiter - Delimiter
        dateFormat - Date format string
        floatFormat - Float format string
        Throws:
        java.io.IOException
      • saveAsASCIIFile_format

        public void saveAsASCIIFile_format​(java.lang.String fileName,
                                           java.lang.String format)
                                    throws java.io.IOException
        Save as ASCII file
        Parameters:
        fileName - File name
        format - Format string
        Throws:
        java.io.IOException
      • join

        public void join​(DataTable dataTable,
                         java.lang.String colName)
        Join data table
        Parameters:
        dataTable - The input data table
        colName - The column name for join
      • join

        public void join​(DataTable dataTable,
                         java.lang.String colName,
                         boolean isUpdate)
        Join data table
        Parameters:
        dataTable - The input data table
        colName - The column name for join
        isUpdate - If update the existing values with same column name
      • join

        public void join​(DataTable dataTable,
                         java.lang.String colName_this,
                         java.lang.String colName_in,
                         boolean isUpdate)
        Join data table
        Parameters:
        dataTable - The input data table
        colName_this - The column name of this data table for join
        colName_in - The column name of the input data table for join
        isUpdate - If update the existing values with same column name
      • removeJoin

        public void removeJoin​()
        Remove joined data columns