Package org.meteoinfo.table
Class DataTable
- java.lang.Object
-
- org.meteoinfo.table.DataTable
-
- Direct Known Subclasses:
TableData
public class DataTable extends java.lang.Object
-
-
Field Summary
Fields Modifier and Type Field Description protected DataColumnCollectioncolumnsprotected intnextRowIndexprotected booleanreadOnlyprotected DataRowCollectionrowsprotected java.lang.StringtableNameprotected java.lang.Objecttag
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description DataColumnaddColumn(int index, java.lang.String columnName, DataTypes dataType)Add a data columnvoidaddColumn(int index, DataColumn column)Add a data column by indexDataColumnaddColumn(java.lang.String columnName, DataTypes dataType)Add a data columnvoidaddColumn(DataColumn column)Add a data columnvoidaddColumnData(int index, java.lang.String colName, DataTypes dataType, java.util.List<java.lang.Object> colData)Add column datavoidaddColumnData(java.lang.String colName, java.lang.String dt, java.util.List<java.lang.Object> colData)Add column datavoidaddColumnData(java.lang.String colName, DataTypes dataType, java.util.List<java.lang.Object> colData)Add column datavoidaddColumnData(ColumnData colData)Add column dataDataRowaddRow()Add data rowbooleanaddRow(DataRow row)Add a data rowvoidaddRows(java.util.List<DataRow> rows)Add data rowsbooleanappendRow(DataRow row)Append a data rowjava.lang.Objectavg(java.lang.String columns, java.lang.String filter)java.lang.Objectavg(java.lang.String columns, java.lang.String filter, java.lang.String groupBy)java.lang.Objectclone()CloneDataTablecloneTable_Field()Clone table - Vectorlayer with fieldsDataTablecolSelect(java.util.List<DataColumn> cols)Create a new data table using selected columnsDataColumnfindColumn(java.lang.String colName)Find column by namejava.util.List<DataColumn>findColumns(java.util.List<java.lang.String> colNames)Get data columns by namesjava.util.List<DataColumn>findColumns_Index(java.util.List<java.lang.Integer> colIndex)Get data columns by indexintgetColumnCount()Get column countColumnDatagetColumnData(java.lang.String colName)Get column dataColumnDatagetColumnData(java.util.List<DataRow> rows, java.lang.String colName)Get column dataColumnDatagetColumnData(DataColumn col)Get column datajava.util.List<java.lang.String>getColumnNames()Get column namesDataColumnCollectiongetColumns()Get data columnsintgetRowCount()Get row countDataRowCollectiongetRows()Get data rowsDataRowCollectiongetRows(java.util.List<java.lang.Integer> idx)Get data rowsDataRowCollectiongetRows(ucar.ma2.Range range)Get data rowsjava.lang.StringgetTableName()Get table namejava.lang.ObjectgetTag()Get tagintgetTotalCount()Get total row countjava.lang.ObjectgetValue(int row, int col)Get the value by row and column indexjava.lang.ObjectgetValue(int row, java.lang.String colName)Get the value by row index and column namebooleanhasTimeColumn()Check if the table has time columnjava.lang.Stringhead(int n)Convert to string - headbooleanisReadOnly()Get if is read onlyvoidjoin(DataTable dataTable, java.lang.String colName)Join data tablevoidjoin(DataTable dataTable, java.lang.String colName, boolean isUpdate)Join data tablevoidjoin(DataTable dataTable, java.lang.String colName_this, java.lang.String colName_in, boolean isUpdate)Join data tablejava.lang.Objectmax(java.lang.String columns, java.lang.String filter)java.lang.Objectmax(java.lang.String columns, java.lang.String filter, java.lang.String groupBy)java.lang.Objectmin(java.lang.String columns, java.lang.String filter)java.lang.Objectmin(java.lang.String columns, java.lang.String filter, java.lang.String groupBy)DataRownewRow()Create a new data rowvoidremoveColumn(DataColumn column)Remove a data columnvoidremoveJoin()Remove joined data columnsvoidremoveRow(int rowIdx)Remove a rowvoidremoveRow(DataRow row)Remove a rowvoidremoveRows(java.util.List<DataRow> rows)Remove rowsvoidrenameColumn(int colIdx, java.lang.String fieldName)Rename columnvoidrenameColumn(java.lang.String oldName, java.lang.String newName)Rename columnvoidrenameColumn(DataColumn column, java.lang.String fieldName)Rename columnvoidsaveAsASCIIFile(java.lang.String fileName)Save as ASCII filevoidsaveAsASCIIFile(java.lang.String fileName, java.lang.String delimiter, java.lang.String dateFormat, java.lang.String floatFormat)Save as ASCII filevoidsaveAsASCIIFile_format(java.lang.String fileName, java.lang.String format)Save as ASCII filevoidsaveAsCSVFile(java.lang.String fileName)Save as csv filevoidsaveAsCSVFile(java.lang.String fileName, java.lang.String format)Save as csv fileDataTableselect(int r_start, int r_stop, int r_step)Get a new table by select rowsDataTableselect(int r_start, int r_stop, int r_step, int c_start, int c_stop, int c_step)Get a new table by select rowsDataTableselect(int r_start, int r_stop, int r_step, java.util.List<DataColumn> cols)Get a new table by select rowsjava.util.List<DataRow>select(java.lang.String expression)Select data rowsDataTableselect(java.lang.String expression, DataColumn[] dataColumns)Select and form a new data tableDataTableselect(java.util.List<java.lang.Integer> rowIndex)Get a new table by row indexDataTableselect(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 sliceDataTableselect(java.util.List<java.lang.Integer> rowIndex, java.util.List<DataColumn> cols)Get a new table by row index and columnsDataTableselect(java.util.List<java.lang.Integer> rowIndex, ucar.ma2.Range colRange)Get a new table by row index and column rangeDataTableselect(ucar.ma2.Range rowRange)Get a new table by row rangeDataTableselect(ucar.ma2.Range rowRange, java.util.List<DataColumn> cols)Get a new table by row range and columnsDataTableselect(ucar.ma2.Range rowRange, ucar.ma2.Range colRange)Get a new table by row range and column rangevoidsetColumnData(java.lang.String colName, java.util.List<java.lang.Object> colData)Add column datavoidsetColumnData(DataColumn col, java.util.List<java.lang.Object> colData)Add column datavoidsetReadOnly(boolean readOnly)Set if is read onlyvoidsetRows(java.util.List<DataRow> rows)Set data rowsvoidsetTableName(java.lang.String tableName)Set tabel namevoidsetTag(java.lang.Object tag)Set tagvoidsetValue(int row, int col, java.lang.Object value)Set a vlaue by row and column indexvoidsetValue(int row, java.lang.String colName, java.lang.Object value)Set a valuevoidsetValues(java.lang.String colName, java.util.List<java.lang.Object> values)Set valuesDataTablesqlSelect(java.lang.String expression)Select and form a new data tablejava.lang.Stringtail(int n)Convert to string - tailjava.lang.StringtoString()Convert to stringjava.lang.StringtoString(int decimalNum)Convert to stringjava.lang.StringtoString(java.lang.String dateFormat)Convert to stringjava.lang.StringtoString(java.lang.String dateFormat, int decimalNum)Convert to string
-
-
-
Field Detail
-
rows
protected DataRowCollection rows
-
columns
protected DataColumnCollection columns
-
tableName
protected java.lang.String tableName
-
readOnly
protected boolean readOnly
-
nextRowIndex
protected int nextRowIndex
-
tag
protected java.lang.Object tag
-
-
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 indexcolName- 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 indexcol- 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 indexcol- Column indexvalue- The value
-
setValue
public void setValue(int row, java.lang.String colName, java.lang.Object value)Set a value- Parameters:
row- Row indexcolName- Column namevalue- The value
-
setValues
public void setValues(java.lang.String colName, java.util.List<java.lang.Object> values)Set values- Parameters:
colName- Column namevalues- 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 namedataType- 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 indexcolumnName- Data column namedataType- 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 indexcolumn- 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 columnfieldName- The new column name
-
renameColumn
public void renameColumn(java.lang.String oldName, java.lang.String newName)Rename column- Parameters:
oldName- The old column namenewName- The new column name
-
renameColumn
public void renameColumn(int colIdx, java.lang.String fieldName)Rename column- Parameters:
colIdx- The column indexfieldName- 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 columncolData- 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.ExceptionAdd column data- Parameters:
colName- Column namecolData- 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.ExceptionAdd column data- Parameters:
colName- Column namedataType- Data typecolData- 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.ExceptionAdd column data- Parameters:
index- Column indexcolName- Column namedataType- Data typecolData- 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.ExceptionAdd column data- Parameters:
colName- Column namedt- Data type stringcolData- 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 listcolName- 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 expressiondataColumns- 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 startr_stop- row stopr_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 rangecolRange- 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 startr_stop- Row stopr_step- Row stepc_start- Column startc_stop- Column stopc_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 indexcolRange- 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 indexc_start- Column startc_stop- Column stopc_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 rangecols- 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 startr_stop- Row stopr_step- Row stepcols- 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 indexcols- 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:
clonein classjava.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:
toStringin classjava.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 stringdecimalNum- Decimal number- Returns:
- The string
-
saveAsCSVFile
public void saveAsCSVFile(java.lang.String fileName) throws java.io.IOExceptionSave 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.IOExceptionSave as csv file- Parameters:
fileName- File nameformat- Format string- Throws:
java.io.IOException
-
saveAsASCIIFile
public void saveAsASCIIFile(java.lang.String fileName) throws java.io.IOExceptionSave 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.IOExceptionSave as ASCII file- Parameters:
fileName- File namedelimiter- DelimiterdateFormat- Date format stringfloatFormat- Float format string- Throws:
java.io.IOException
-
saveAsASCIIFile_format
public void saveAsASCIIFile_format(java.lang.String fileName, java.lang.String format) throws java.io.IOExceptionSave as ASCII file- Parameters:
fileName- File nameformat- Format string- Throws:
java.io.IOException
-
join
public void join(DataTable dataTable, java.lang.String colName)
Join data table- Parameters:
dataTable- The input data tablecolName- 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 tablecolName- The column name for joinisUpdate- 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 tablecolName_this- The column name of this data table for joincolName_in- The column name of the input data table for joinisUpdate- If update the existing values with same column name
-
removeJoin
public void removeJoin()
Remove joined data columns
-
-