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: }
tom@7916: else if ("kmheader".equals(fieldName)) {
tom@7916: value = metaData.get("kmheader");
tom@7916: }
tom@7916: else if ("diffpairheader".equals(fieldName)) {
tom@7916: value = metaData.get("diffpairheader");
tom@7916: }
tom@7916: else if ("diffheader".equals(fieldName)) {
tom@7916: value = metaData.get("diffheader");
tom@7916: }
tom@7916: else if ("morph1header".equals(fieldName)) {
tom@7916: value = metaData.get("morph1header");
tom@7916: }
tom@7916: else if ("morph2header".equals(fieldName)) {
tom@7916: value = metaData.get("morph2header");
teichmann@7909: }
aheinecke@6240: else if ("km".equals(fieldName)) {
aheinecke@6240: value = data.get(index)[0];
aheinecke@6240: }
tom@7916: else if ("diffpair".equals(fieldName)) {
aheinecke@6240: value = data.get(index)[1];
aheinecke@6240: }
tom@7916: else if ("diff".equals(fieldName)) {
teichmann@7915: value = data.get(index)[2];
teichmann@7915: }
tom@7916: else if ("morph1".equals(fieldName)) {
tom@7916: value = data.get(index)[3];
tom@7916: }
tom@7916: else if ("morph2".equals(fieldName)) {
tom@7916: value = data.get(index)[4];
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 :