aheinecke@6173: /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
aheinecke@6173: * Software engineering by Intevation GmbH
aheinecke@6173: *
aheinecke@6173: * This file is Free Software under the GNU AGPL (>=v3)
aheinecke@6173: * and comes with ABSOLUTELY NO WARRANTY! Check out the
aheinecke@6173: * documentation coming with Dive4Elements River for details.
aheinecke@6173: */
aheinecke@6173:
aheinecke@6173: package org.dive4elements.river.artifacts.model.sq;
aheinecke@6173:
aheinecke@6173: import java.util.ArrayList;
aheinecke@6173: import java.util.HashMap;
aheinecke@6173:
aheinecke@6173: import org.apache.log4j.Logger;
aheinecke@6173:
aheinecke@6173: import net.sf.jasperreports.engine.JRDataSource;
aheinecke@6173: import net.sf.jasperreports.engine.JRException;
aheinecke@6173: import net.sf.jasperreports.engine.JRField;
aheinecke@6173:
aheinecke@6173:
aheinecke@6173: /**
aheinecke@6239: * @author Andre Heinecke
aheinecke@6173: */
aheinecke@6173: public class SQRelationJRDataSource implements JRDataSource
aheinecke@6173: {
teichmann@8202: /** The log used in this exporter.*/
teichmann@8202: private static Logger log = Logger.getLogger(SQRelationJRDataSource.class);
aheinecke@6173:
aheinecke@6173: private ArrayList data;
aheinecke@6173: private HashMap metaData;
aheinecke@6173:
aheinecke@6173: private int index = -1;
aheinecke@6173:
aheinecke@6173: public SQRelationJRDataSource() {
aheinecke@6173: data = new ArrayList();
aheinecke@6173: metaData = new HashMap();
aheinecke@6173: }
aheinecke@6173:
aheinecke@6173: public void addData(String[] val) {
aheinecke@6173: data.add(val);
aheinecke@6173: }
aheinecke@6173:
aheinecke@6173: public void addMetaData(String key, String value) {
aheinecke@6173: metaData.put(key, value);
aheinecke@6173: }
aheinecke@6173:
aheinecke@6173: public boolean next() throws JRException {
aheinecke@6173: index++;
aheinecke@6173: return (index < data.size());
aheinecke@6173: }
aheinecke@6173:
aheinecke@6173: public Object getFieldValue(JRField field) throws JRException {
aheinecke@6173: Object value = "";
aheinecke@6173: String fieldName = field.getName();
aheinecke@6173: if ("river".equals(fieldName)) {
aheinecke@6173: value = metaData.get("river");
aheinecke@6173: }
aheinecke@6173: else if ("date".equals(fieldName)) {
aheinecke@6173: value = metaData.get("date");
aheinecke@6173: }
aheinecke@6173: else if ("calculation".equals(fieldName)) {
aheinecke@6173: value = metaData.get("calculation");
aheinecke@6173: }
aheinecke@6173: else if ("location".equals(fieldName)) {
aheinecke@6173: value = metaData.get("location");
aheinecke@6173: }
aheinecke@6173: else if ("outliers".equals(fieldName)) {
aheinecke@6173: value = metaData.get("outliers");
aheinecke@6173: }
aheinecke@6173: else if ("outliertest".equals(fieldName)) {
aheinecke@6173: value = metaData.get("outliertest");
aheinecke@6173: }
aheinecke@6173: else if ("periods".equals(fieldName)) {
aheinecke@6173: value = metaData.get("periods");
aheinecke@6173: }
aheinecke@6859: else if ("msName".equals(fieldName)) {
aheinecke@6859: value = metaData.get("msName");
aheinecke@6859: }
aheinecke@6859: else if ("msGauge".equals(fieldName)) {
aheinecke@6859: value = metaData.get("msGauge");
aheinecke@6859: }
aheinecke@6173: else if ("km".equals(fieldName)) {
aheinecke@6173: value = data.get(index)[0];
aheinecke@6173: }
aheinecke@6173: else if ("param".equals(fieldName)) {
aheinecke@6173: value = data.get(index)[1];
aheinecke@6173: }
aheinecke@6173: else if ("a".equals(fieldName)) {
aheinecke@6173: value = data.get(index)[2];
aheinecke@6173: }
aheinecke@6173: else if ("b".equals(fieldName)) {
aheinecke@6173: value = data.get(index)[3];
aheinecke@6173: }
aheinecke@6173: else if ("total".equals(fieldName)) {
aheinecke@6828: value = data.get(index)[7];
aheinecke@6173: }
aheinecke@6173: else if ("out".equals(fieldName)) {
aheinecke@6828: value = data.get(index)[8];
aheinecke@6828: }
aheinecke@6828: else if ("sd".equals(fieldName)) {
aheinecke@6828: value = data.get(index)[4];
aheinecke@6828: }
aheinecke@6828: else if ("qmax".equals(fieldName)) {
aheinecke@6173: value = data.get(index)[5];
aheinecke@6173: }
aheinecke@6828: else if ("cferg".equals(fieldName)) {
aheinecke@6828: value = data.get(index)[10];
aheinecke@6828: }
aheinecke@6828: else if ("cduan".equals(fieldName)) {
aheinecke@6828: value = data.get(index)[9];
aheinecke@6828: }
aheinecke@6828: else if ("r2".equals(fieldName)) {
aheinecke@6173: value = data.get(index)[6];
aheinecke@6173: }
aheinecke@6173: return value;
aheinecke@6173: }
aheinecke@6173: }
aheinecke@6173: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :