List values = new LinkedList();
Row row = new Row();
public RowSet query(final SqlQuery query) {
if (query == null)
throw new IllegalArgumentException("SqlQuery cannot be null");
<<<<<<< HEAD
final List rows = new LinkedList();
final RowSet rowSet = new RowSet();
=======
final List headers = new LinkedList();
final List nonMetadataColumnIndicies = new LinkedList();
final Map modeledColumns = Maps.newHashMap();
// Get the rows for this query from the database.
NamedParameterJdbcTemplate namedTemplate = new NamedParameterJdbcTemplate(this.template);
List rows = namedTemplate.query(query.getOutputSQL(), new MapSqlParameterSource(query.getParameters()), new RowMapper() {
@Override
public Row mapRow(ResultSet rs, int rowNum) throws SQLException {
ResultSetMetaData metadata = rs.getMetaData();
if (headers.isEmpty()) {
// Read the headers from the result set
populateHeadersFromResultsSet(headers, nonMetadataColumnIndicies, query, modeledColumns, metadata);
}
// Read the results into a new list
row.setValues(values);
if (!query.isAggregatedResult()) {
// Non-aggregate queries include two extra columns,
// row id and row version.
row.setRowId(rs.getLong(ROW_ID));
row.setVersionNumber(rs.getLong(ROW_VERSION));
}
// fill the value list
for (Integer index : nonMetadataColumnIndicies) {
String value = rs.getString(index);
ColumnModel columnModel = modeledColumns.get(index);
if (columnModel != null) {
if (columnModel.getColumnType() == ColumnType.BOOLEAN) {
if ("0".equals(value)) {
value = "false";
} else if ("1".equals(value)) {
value = "true";
}
}
}
values.add(value);
}
return row;
}
});
RowSet rowSet = new RowSet();
rowSet.setHeaders(headers);
>>>>>>> 432753135e0a3c57c3481899309549bfb4b22369
rowSet.setRows(rows);
// Stream over the results and save the results in a a list
queryAsStream(query, new RowAndHeaderHandler() { |