
water.api.TwoDimTableBase Maven / Gradle / Ivy
package water.api;
import water.AutoBuffer;
import water.H2O;
import water.Iced;
import water.IcedWrapper;
import water.util.TwoDimTable;
/**
* Client-facing Schema of a TwoDimTable
* Notes:
* 1) We embed the rowHeaders into the table, extending it by 1 column
* 2) We store all the data in column-major order
* 3) We store all the data in String format
*
*/
public class TwoDimTableBase extends Schema> {
public static class ColumnSpecsBase extends Schema {
@API(help="Column Name", direction=API.Direction.OUTPUT)
String name;
@API(help="Column Type", direction=API.Direction.OUTPUT)
String type;
@API(help="Column Format (printf)", direction=API.Direction.OUTPUT)
String format;
@API(help="Column Description", direction=API.Direction.OUTPUT)
String description;
}
@API(help="Table Name", direction=API.Direction.OUTPUT)
public String name;
@API(help="Table Description", direction=API.Direction.OUTPUT)
public String description;
@API(help="Column Specification", direction=API.Direction.OUTPUT)
public ColumnSpecsBase[] columns;
@API(help="Number of Rows", direction=API.Direction.OUTPUT)
public int rowcount;
@API(help="Table Data (col-major)", direction=API.Direction.OUTPUT)
public IcedWrapper[][] data;
/**
* Fill a TwoDimTable Schema from a TwoDimTable
* @param t TwoDimTable
* @return TwoDimTableSchema
*/
@Override public TwoDimTableBase fillFromImpl(TwoDimTable t) {
name = t.getTableHeader();
description = t.getTableDescription();
final int rows = t.getRowDim();
rowcount = rows;
boolean have_row_header_cols = t.getColHeaderForRowHeaders() != null;
for (int r=0; r " + newString);
// }
return newString;
}
/**
* Fill a TwoDimTable from this Schema
* @param impl
* @return
*/
public TwoDimTable fillImpl(TwoDimTable impl) {
final int rows = data[0].length;
assert(rows == rowcount);
final int cols = data.length+1;
String tableHeader = name;
String tableDescription = description;
String colHeaderForRowHeaders = columns[0].name;
String[] rowHeaders = new String[rows];
for (int r=0; r
© 2015 - 2025 Weber Informatics LLC | Privacy Policy