public ColumnTypeTransformerDataSetStrategy(DataSet dataSet, Map<String, ColumnTypeTransformer> columnTypeTransformers) { _dataSet = dataSet; _selectItems = dataSet.getSelectItems(); _columnTypeTransformers = columnTypeTransformers; }
public SelectItem[] getSelectItems() { return _dataSet.getSelectItems(); }
public DataSetTableModel(DataSet dataSet) { _dataSet = dataSet; _selectItems = dataSet.getSelectItems(); }
public SelectItem[] getSelectItems() { return _dataSet.getSelectItems(); }
public MatrixValue setDetailSource(DataSet detailDataSet) { if (detailDataSet != null) { _detailSelectItems = detailDataSet.getSelectItems(); _detailRows = detailDataSet.toObjectArrays(); } else { _detailSelectItems = null; _detailRows = null; } return this; }
/** * Performs a right join (aka right outer join) operation on two datasets. * * @param ds1 * the left dataset * @param ds2 * the right dataset * @param onConditions * the conditions to join by * @return the right joined result dataset */ public static DataSet getRightJoin(DataSet ds1, DataSet ds2, FilterItem[] onConditions) { SelectItem[] ds1selects = ds1.getSelectItems(); SelectItem[] ds2selects = ds2.getSelectItems(); SelectItem[] leftOrderedSelects = new SelectItem[ds1selects.length + ds2selects.length]; System.arraycopy(ds1selects, 0, leftOrderedSelects, 0, ds1selects.length); System.arraycopy(ds2selects, 0, leftOrderedSelects, ds1selects.length, ds2selects.length); // We will reuse the left join algorithm (but switch the datasets // around) DataSet dataSet = getLeftJoin(ds2, ds1, onConditions); dataSet = getSelection(leftOrderedSelects, dataSet); return dataSet; } }
List<SelectItem> selectItems = new ArrayList<SelectItem>(); for (DataSet dataSet : fromDataSets) { for (int i = 0; i < dataSet.getSelectItems().length; i++) { SelectItem item = dataSet.getSelectItems()[i]; selectItems.add(item); for (int fromDataSetIndex = 0; fromDataSetIndex < fromDataSets.length; fromDataSetIndex++) { DataSet fromDataSet = fromDataSets[fromDataSetIndex]; SelectItem[] fromSelectItems = fromDataSet.getSelectItems(); if (fromDataSetIndex == 0) { while (fromDataSet.next()) {
SelectItem[] si1 = ds1.getSelectItems(); SelectItem[] si2 = ds2.getSelectItems(); SelectItem[] selectItems = new SelectItem[si1.length + si2.length]; System.arraycopy(si1, 0, selectItems, 0, si1.length);
public static DataSet getFiltered(DataSet dataSet, FilterItem... filterItems) { List<Object[]> data = new ArrayList<Object[]>(); while (dataSet.next()) { Row row = dataSet.getRow(); boolean valid = true; for (FilterItem havingItem : filterItems) { if (!havingItem.evaluate(row)) { valid = false; break; } } if (valid) { data.add(row.getValues()); } } dataSet.close(); return new DataSet(dataSet.getSelectItems(), data); }
public void assertEquals(DataSet ds1, DataSet ds2) { assertEquals(ArrayUtils.toString(ds1.getSelectItems()), ArrayUtils .toString(ds2.getSelectItems())); boolean ds1next = true; while (ds1next) { ds1next = ds1.next(); boolean ds2next = ds2.next(); assertEquals("DataSet 1 next=" + ds1next, ds1next, ds2next); if (ds1next) { Row row1 = ds1.getRow(); Row row2 = ds2.getRow(); assertEquals(row1, row2); } } }
dataSet = new DataSet(dataSet.getSelectItems(), data);
public static DataSet getSelection(SelectItem[] selectItems, DataSet dataSet) { SelectItem[] dataSetSelectItems = dataSet.getSelectItems(); if (!ArrayUtils.isEquals(dataSetSelectItems, selectItems)) { List<Object[]> resultData = new ArrayList<Object[]>(); while (dataSet.next()) { Row row = dataSet.getRow(); Object[] resultRow = new Object[selectItems.length]; for (int i = 0; i < selectItems.length; i++) { SelectItem selectItem = selectItems[i]; if (selectItem.getSubQuerySelectItem() != null) { resultRow[i] = row.getValue(selectItem .getSubQuerySelectItem()); } else { resultRow[i] = row.getValue(selectItem); } } resultData.add(resultRow); } dataSet.close(); dataSet = new DataSet(selectItems, resultData); } return dataSet; }