teichmann@5863: /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde teichmann@5863: * Software engineering by Intevation GmbH teichmann@5863: * teichmann@5863: * This file is Free Software under the GNU AGPL (>=v3) teichmann@5863: * and comes with ABSOLUTELY NO WARRANTY! Check out the teichmann@5863: * documentation coming with Dive4Elements River for details. teichmann@5863: */ teichmann@5863: teichmann@5831: package org.dive4elements.river.artifacts.datacage.templating; sascha@998: sascha@998: import java.io.Serializable; sascha@998: sascha@998: import java.sql.ResultSetMetaData; sascha@998: import java.sql.ResultSet; sascha@998: import java.sql.SQLException; sascha@998: sascha@998: import java.util.List; sascha@998: import java.util.ArrayList; sascha@998: sascha@1716: import org.apache.log4j.Logger; sascha@1716: felix@4677: felix@4677: /** Result Data from a DB/SQL query. */ sascha@998: public class ResultData sascha@998: implements Serializable sascha@998: { sascha@1716: private static Logger log = Logger.getLogger(ResultData.class); sascha@1716: sascha@998: protected String [] columns; sascha@998: sascha@998: protected List rows; sascha@998: sascha@998: public ResultData() { sascha@998: rows = new ArrayList(); sascha@998: } teichmann@5314: rrenkert@5305: public ResultData(String [] columns, List rows) { rrenkert@5305: this.columns = columns; rrenkert@5305: this.rows = rows; rrenkert@5305: } sascha@998: sascha@998: public ResultData(ResultSetMetaData meta) sascha@998: throws SQLException sascha@998: { sascha@998: this(); sascha@998: sascha@1716: boolean debug = log.isDebugEnabled(); sascha@1716: sascha@998: int N = meta.getColumnCount(); sascha@998: sascha@998: columns = new String[N]; sascha@998: sascha@1716: if (debug) { sascha@1716: log.debug("ResultSet column names:"); sascha@1716: } sascha@1716: sascha@998: for (int i = 1; i <= N; ++i) { sascha@1716: columns[i-1] = meta.getColumnLabel(i).toUpperCase(); sascha@1716: if (debug) { sascha@1716: log.debug(" " + i + ": " + columns[i-1]); sascha@1716: } sascha@998: } sascha@998: } sascha@998: sascha@998: public String [] getColumnLabels() { sascha@998: return columns; sascha@998: } sascha@998: sascha@998: public ResultData addAll(ResultSet result) throws SQLException { sascha@998: while (result.next()) { sascha@998: add(result); sascha@998: } sascha@998: return this; sascha@998: } sascha@998: sascha@998: public void add(ResultSet result) throws SQLException { sascha@998: Object [] row = new Object[columns.length]; sascha@998: for (int i = 0; i < columns.length; ++i) { sascha@998: row[i] = result.getObject(i+1); sascha@998: } sascha@998: rows.add(row); sascha@998: } sascha@998: sascha@998: public List getRows() { sascha@998: return rows; sascha@998: } sascha@1023: sascha@1023: public boolean isEmpty() { sascha@1023: return rows.isEmpty(); sascha@1023: } sascha@998: } sascha@998: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :