aheinecke@6240: /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
aheinecke@6240: * Software engineering by Intevation GmbH
aheinecke@6240: *
aheinecke@6240: * This file is Free Software under the GNU AGPL (>=v3)
aheinecke@6240: * and comes with ABSOLUTELY NO WARRANTY! Check out the
aheinecke@6240: * documentation coming with Dive4Elements River for details.
aheinecke@6240: */
aheinecke@6240:
aheinecke@6240: package org.dive4elements.river.artifacts.model.minfo;
aheinecke@6240:
aheinecke@6240: import java.util.ArrayList;
aheinecke@6240: import java.util.HashMap;
aheinecke@6240:
aheinecke@6240: import net.sf.jasperreports.engine.JRDataSource;
aheinecke@6240: import net.sf.jasperreports.engine.JRException;
aheinecke@6240: import net.sf.jasperreports.engine.JRField;
aheinecke@6240:
aheinecke@6240:
aheinecke@6240: /**
aheinecke@6240: * @author Andre Heinecke
aheinecke@6240: */
aheinecke@6240: public class BedDifferenceJRDataSource implements JRDataSource
aheinecke@6240: {
aheinecke@6240: private ArrayList data;
aheinecke@6240: private HashMap metaData;
aheinecke@6240:
aheinecke@6240: private int index = -1;
aheinecke@6240:
aheinecke@6240: public BedDifferenceJRDataSource() {
aheinecke@6240: data = new ArrayList();
aheinecke@6240: metaData = new HashMap();
aheinecke@6240: }
aheinecke@6240:
aheinecke@6240: public void addData(String[] val) {
aheinecke@6240: data.add(val);
aheinecke@6240: }
aheinecke@6240:
aheinecke@6240: public void addMetaData(String key, String value) {
aheinecke@6240: metaData.put(key, value);
aheinecke@6240: }
aheinecke@6240:
aheinecke@6240: public boolean next() throws JRException {
aheinecke@6240: index++;
aheinecke@6240: return (index < data.size());
aheinecke@6240: }
aheinecke@6240:
aheinecke@6240: public Object getFieldValue(JRField field) throws JRException {
aheinecke@6240: Object value = "";
aheinecke@6240: String fieldName = field.getName();
aheinecke@6240: if ("river".equals(fieldName)) {
aheinecke@6240: value = metaData.get("river");
aheinecke@6240: }
aheinecke@6240: else if ("calculation".equals(fieldName)) {
aheinecke@6240: value = metaData.get("calculation");
aheinecke@6240: }
aheinecke@6240: else if ("ye_mode".equals(fieldName)) {
aheinecke@6240: value = metaData.get("ye_mode");
aheinecke@6240: }
aheinecke@6240: else if ("date".equals(fieldName)) {
aheinecke@6240: value = metaData.get("date");
aheinecke@6240: }
aheinecke@6240: else if ("differences".equals(fieldName)) {
aheinecke@6240: value = metaData.get("differences");
aheinecke@6240: }
teichmann@7909: else if ("unit".equals(fieldName)) {
teichmann@7909: value = metaData.get("unit");
teichmann@7909: }
aheinecke@6240: else if ("km".equals(fieldName)) {
aheinecke@6240: value = data.get(index)[0];
aheinecke@6240: }
aheinecke@6240: else if ("meter".equals(fieldName)) {
aheinecke@6240: value = data.get(index)[1];
aheinecke@6240: }
teichmann@7915: else if ("diffpair".equals(fieldName)) {
teichmann@7915: value = data.get(index)[2];
teichmann@7915: }
teichmann@7915: else if ("diffpairheader".equals(fieldName)) {
teichmann@7915: value = metaData.get("diffpairheader");
teichmann@7915: }
aheinecke@6240: return value;
aheinecke@6240: }
aheinecke@6240: }
aheinecke@6240: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :