Package com.google.visualization.datasource.datatable

Examples of com.google.visualization.datasource.datatable.DataTable


    try {
      // Execute the sql query.
      stmt = con.createStatement();
      ResultSet rs = stmt.executeQuery(queryStringBuilder.toString());

      DataTable table = buildColumns(rs, columnIdsList);

      // Fill the data in the data table.
      buildRows(table, rs);
      return table;
    } catch (SQLException e) {
View Full Code Here


   *
   * @throws DataSourceException
   */
  public void testGenerateResponse() throws DataSourceException {
    // Check with simple data table and simple data source parameters.
    DataTable dataTable = new DataTable();
    dataTable.addColumn(new ColumnDescription("col1", ValueType.NUMBER, "column1"));
    dataTable.addColumn(new ColumnDescription("col2", ValueType.BOOLEAN, "column2"));
    dataTable.addColumn(new ColumnDescription("col3", ValueType.TEXT, "column3"));
    TableRow tableRow = new TableRow();
    tableRow.addCell(7);
    tableRow.addCell(false);
    tableRow.addCell("Why?");
    dataTable.addRow(tableRow);

    DataSourceRequest dataSourceRequest = new DataSourceRequest(
        new Query(),
        new DataSourceParameters(null),
        ULocale.UK);
View Full Code Here

   * @return The table description.
   *
   * @throws SQLException Thrown when the connection to the database failed.
   */
  static DataTable buildColumns(ResultSet rs, List<String> columnIdsList) throws SQLException {
    DataTable result = new DataTable();
    ResultSetMetaData metaData = rs.getMetaData();
    int numOfCols = metaData.getColumnCount();
    // For each column in the table, create the column description. SQL indexes
    // are 1-based.
    for (int i = 1; i <= numOfCols; i++) {
      String id = (columnIdsList == null) ? metaData.getColumnLabel(i) :
          columnIdsList.get(i - 1);
      ColumnDescription columnDescription =
          new ColumnDescription(id,
              sqlTypeToValueType(metaData.getColumnType(i)),
              metaData.getColumnLabel(i));
      result.addColumn(columnDescription);
    }
    return result;
  }
View Full Code Here

    DataSourceHelper.verifyAccessApproved(new DataSourceRequest(req));
    verify(req);
  }
 
  public void testParseQueryErrors() {
    DataTable dataTable = new DataTable();
    dataTable.addColumn(new ColumnDescription("A", ValueType.TEXT, "column1"));
    dataTable.addColumn(new ColumnDescription("B", ValueType.BOOLEAN, "column2"));
    dataTable.addColumn(new ColumnDescription("C", ValueType.NUMBER, "column3"));
    // Wrong column id
    checkQueryError("select D", dataTable, "Column [D] does not exist in table.");
    checkQueryError("where F > 1", dataTable, "Column [F] does not exist in table.");
    // aggregation sum and average only on numeric columns
    checkQueryError("select avg(A) group by B", dataTable,
View Full Code Here

   * @return The new TableDescription.
   */
  private static DataTable createDataTable(
      List<String> groupByColumnIds, SortedSet<ColumnTitle> columnTitles,
      DataTable original, List<ScalarFunctionColumnTitle> scalarFunctionColumnTitles) {
    DataTable result = new DataTable();
    for (String groupById : groupByColumnIds) {
      result.addColumn(original.getColumnDescription(groupById));
    }
    for (ColumnTitle colTitle : columnTitles) {
      result.addColumn(colTitle.createColumnDescription(original));
    }

    for (ScalarFunctionColumnTitle scalarFunctionColumnTitle : scalarFunctionColumnTitles) {
      result.addColumn(scalarFunctionColumnTitle.createColumnDescription(original));
    }
    return result;
  }
View Full Code Here

    for (int rowIndex = 0; rowIndex < numRows; rowIndex += rowSkipping) {
        relevantRows.add(table.getRows().get(rowIndex));
    }
   
    // Create a table out of the TableRow array
    DataTable newTable = new DataTable();
    newTable.addColumns(table.getColumnDescriptions());
    newTable.addRows(relevantRows);
   
    return newTable;
  }
View Full Code Here

    int numRows = table.getNumberOfRows();
    int fromIndex = Math.max(0, rowOffset);
    int toIndex = (rowLimit == -1) ? numRows : Math.min(numRows, rowOffset + rowLimit);

    List<TableRow> relevantRows = table.getRows().subList(fromIndex, toIndex);
    DataTable newTable = new DataTable();
    newTable.addColumns(table.getColumnDescriptions());
    newTable.addRows(relevantRows);

    if (toIndex < numRows) { // Data truncated
      Warning warning = new Warning(ReasonType.DATA_TRUNCATED, "Data has been truncated due to user"
          + "request (LIMIT in query)");
      newTable.addWarning(warning);
    }

    return newTable;
  }
View Full Code Here

      }
    }
    columnIndices = newColumnIndices;
    columnIndicesReference.set(columnIndices);

    DataTable result = new DataTable();
    result.addColumns(newColumnDescriptions);

    // Calculate the values in the data table rows.
    for (TableRow sourceRow : table.getRows()) {
      TableRow newRow = new TableRow();
      for (AbstractColumn col : selectedColumns) {
        boolean wasFound = false;
        Set<List<Value>> pivotValuesSet = columnLookups.keySet();
        for (List<Value> values : pivotValuesSet) {
          // If the current column-lookup contains the current column and it is
          // either a column that contains aggregations or a column that
          // contains only group-by columns and was not yet found, get its value
          // in the current row. Otherwise continue. If the column contains
          // only group-by columns it should appear only once, even though
          // it may appear in many column lookups.
          if (columnLookups.get(values).containsColumn(col)
              && ((col.getAllAggregationColumns().size() != 0) || !wasFound)) {
            wasFound = true;
            newRow.addCell(sourceRow.getCell(columnLookups.get(values).getColumnIndex(col)));
          }
        }
        // If the column was not found in any of the column lookups
        // calculate its value (e.g., scalar function column that was not
        // calculated in a previous stage).
        if (!wasFound) {
          DataTableColumnLookup lookup = new DataTableColumnLookup(table);
          newRow.addCell(col.getCell(lookup, sourceRow));
        }
      }
      result.addRow(newRow);
    }
    return result;
  }
View Full Code Here

  public void testGetValue() {
    ScalarFunction scalarFunction = TimeComponentExtractor.getInstance(
        TimeComponentExtractor.TimeComponent.YEAR);

    DataTable table = new DataTable();
    table.addColumn(new ColumnDescription("dateCol", ValueType.DATE, "dateCol"));
    table.addColumn(new ColumnDescription("numberCol", ValueType.NUMBER, "numberCol"));
    table.addColumn(new ColumnDescription("timeOfDayCol", ValueType.TIMEOFDAY, "timeOfDayCol"));
    table.addColumn(new ColumnDescription("dateTimeCol", ValueType.DATETIME, "dateTimeCol"));

    TableRow row = new TableRow();
    row.addCell(new TableCell(new DateValue(2008, 5, 3)));
    row.addCell(new TableCell(new NumberValue(23)));
    row.addCell(new TableCell(new TimeOfDayValue(13, 12, 11)));
View Full Code Here

  }

  public void testGetValueType() {
    ScalarFunction scalarFunction = TimeComponentExtractor.getInstance(
        TimeComponentExtractor.TimeComponent.YEAR);
    DataTable table = new DataTable();
    table.addColumn(new ColumnDescription("dateCol", ValueType.DATE, "dateCol"));
     List<AbstractColumn> columns =
        Lists.newArrayList((AbstractColumn) new SimpleColumn("dateCol"));
     ScalarFunctionColumn sfc = new ScalarFunctionColumn(columns, scalarFunction);
    ValueType valueType = sfc.getValueType(table);
    assertEquals(ValueType.NUMBER, valueType);
View Full Code Here

TOP

Related Classes of com.google.visualization.datasource.datatable.DataTable

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.