teichmann@5863: /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
teichmann@5863: * Software engineering by Intevation GmbH
teichmann@5863: *
teichmann@5994: * This file is Free Software under the GNU AGPL (>=v3)
teichmann@5863: * and comes with ABSOLUTELY NO WARRANTY! Check out the
teichmann@5994: * documentation coming with Dive4Elements River for details.
teichmann@5863: */
teichmann@5863:
teichmann@5831: package org.dive4elements.river.artifacts.model;
raimund@2176:
raimund@2176: import java.util.ArrayList;
raimund@2176: import java.util.HashMap;
raimund@2176:
raimund@2176: import org.apache.log4j.Logger;
raimund@2176:
raimund@2176: import net.sf.jasperreports.engine.JRDataSource;
raimund@2176: import net.sf.jasperreports.engine.JRException;
raimund@2176: import net.sf.jasperreports.engine.JRField;
raimund@2176:
raimund@2176:
raimund@2176: /**
raimund@2176: * @author Raimund Renkert
raimund@2176: */
raimund@2176: public class WKmsJRDataSource implements JRDataSource
raimund@2176: {
raimund@2176: /** The logger used in this exporter.*/
raimund@2176: private static Logger logger = Logger.getLogger(WKmsJRDataSource.class);
raimund@2176:
raimund@2176: /**
raimund@2176: *
raimund@2176: */
raimund@2176: private ArrayList data;
raimund@2176: private HashMap metaData;
raimund@2176:
raimund@2176: private int index = -1;
raimund@2176:
raimund@2176: /**
raimund@2176: *
raimund@2176: */
raimund@2176: public WKmsJRDataSource()
raimund@2176: {
raimund@2176: data = new ArrayList();
raimund@2176: metaData = new HashMap();
raimund@2176: }
raimund@2176:
raimund@2176:
raimund@2176: /**
raimund@2176: *
raimund@2176: */
raimund@2176: public void addData(String[] data) {
raimund@2176: this.data.add(data);
raimund@2176: }
raimund@2176:
raimund@2176:
raimund@2176: /**
raimund@2176: *
raimund@2176: */
raimund@2176: public void addMetaData(String key, String value) {
raimund@2176: this.metaData.put(key, value);
raimund@2176: }
raimund@2176:
raimund@2176:
raimund@2176: /**
raimund@2176: *
raimund@2176: */
raimund@2176: public boolean next() throws JRException
raimund@2176: {
raimund@2176: index++;
raimund@2176:
raimund@2176: return (index < data.size());
raimund@2176: }
raimund@2176:
raimund@2176:
raimund@2176: /**
raimund@2176: *
raimund@2176: */
raimund@2176: public Object getFieldValue(JRField field) throws JRException
raimund@2176: {
raimund@2176: Object value = "";
raimund@2176: String fieldName = field.getName();
raimund@2176: if ("river".equals(fieldName)) {
raimund@2176: value = metaData.get("river");
raimund@2176: }
sascha@3085: else if ("date".equals(fieldName)) {
raimund@2176: value = metaData.get("date");
raimund@2176: }
sascha@3085: else if ("range".equals(fieldName)) {
raimund@2176: value = metaData.get("range");
raimund@2176: }
sascha@3085: else if ("gauge".equals(fieldName)) {
raimund@2176: value = metaData.get("gauge");
raimund@2176: }
aheinecke@6305: else if ("datum".equals(fieldName)) {
aheinecke@6305: value = metaData.get("datum");
aheinecke@6305: }
sascha@3085: else if ("calculation".equals(fieldName)) {
raimund@2176: value = metaData.get("calculation");
raimund@2176: }
sascha@3085: else if ("differences".equals(fieldName)) {
raimund@2180: value = metaData.get("differences");
raimund@2180: }
aheinecke@6305: else if ("wUnit".equals(fieldName)) {
aheinecke@6305: value = metaData.get("wUnit");
aheinecke@6305: }
aheinecke@6317: else if ("valid_since".equals(fieldName)) {
aheinecke@6317: value = metaData.get("valid_since");
aheinecke@6317: }
sascha@3085: else if ("km".equals(fieldName)) {
raimund@2176: value = data.get(index)[0];
raimund@2176: }
sascha@3085: else if ("W".equals(fieldName)) {
raimund@2176: value = data.get(index)[1];
raimund@2176: }
sascha@3085: else if ("Q".equals(fieldName)) {
raimund@2176: value = data.get(index)[2];
raimund@2176: }
sascha@3085: else if ("description".equals(fieldName)) {
raimund@2176: value = data.get(index)[3];
raimund@2176: }
sascha@3085: else if ("location".equals(fieldName)) {
raimund@2176: value = data.get(index)[4];
raimund@2176: }
sascha@3085: else if ("gaugename".equals(fieldName)) {
raimund@2176: value = data.get(index)[5];
raimund@2176: }
sascha@3085: else if ("day".equals(fieldName)) {
raimund@2178: value = data.get(index)[6];
raimund@2178: }
raimund@2176: return value;
raimund@2176: }
raimund@2176: }
sascha@3083: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :