Mercurial > dive4elements > river
view flys-artifacts/src/main/java/de/intevation/flys/artifacts/datacage/templating/ResultData.java @ 4740:fb135e1dfa35
Added 'type' attribute to <dc:variable/> element. If an optional 'type' attribute is given
the result of the XPATH expression is interpreted as this type.
Valid values are 'number', 'bool', 'node' and 'nodeset'. All other defaults
to 'string' which also is the default if nor type is given.
author | Sascha L. Teichmann <teichmann@intevation.de> |
---|---|
date | Wed, 02 Jan 2013 15:31:53 +0100 |
parents | 481ac6468016 |
children | e60f65540cc2 |
line wrap: on
line source
package de.intevation.flys.artifacts.datacage.templating; import java.io.Serializable; import java.sql.ResultSetMetaData; import java.sql.ResultSet; import java.sql.SQLException; import java.util.List; import java.util.ArrayList; import org.apache.log4j.Logger; /** Result Data from a DB/SQL query. */ public class ResultData implements Serializable { private static Logger log = Logger.getLogger(ResultData.class); protected String [] columns; protected List<Object []> rows; public ResultData() { rows = new ArrayList<Object []>(); } public ResultData(ResultSetMetaData meta) throws SQLException { this(); boolean debug = log.isDebugEnabled(); int N = meta.getColumnCount(); columns = new String[N]; if (debug) { log.debug("ResultSet column names:"); } for (int i = 1; i <= N; ++i) { columns[i-1] = meta.getColumnLabel(i).toUpperCase(); if (debug) { log.debug(" " + i + ": " + columns[i-1]); } } } public String [] getColumnLabels() { return columns; } public ResultData addAll(ResultSet result) throws SQLException { while (result.next()) { add(result); } return this; } public void add(ResultSet result) throws SQLException { Object [] row = new Object[columns.length]; for (int i = 0; i < columns.length; ++i) { row[i] = result.getObject(i+1); } rows.add(row); } public List<Object []> getRows() { return rows; } public boolean isEmpty() { return rows.isEmpty(); } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :