Mercurial > dive4elements > river
comparison artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/util/MetaAndTableJRDataSource.java @ 8946:5d5d482da3e9
Implementing SINFO - FlowDepthMinMax calculation
author | gernotbelger |
---|---|
date | Tue, 13 Mar 2018 18:49:33 +0100 |
parents | 7bbfb24e6eec |
children |
comparison
equal
deleted
inserted
replaced
8945:4a6b6a3c279c | 8946:5d5d482da3e9 |
---|---|
1 /* Copyright (C) 2017 by Bundesanstalt für Gewässerkunde | 1 /* Copyright (C) 2017 by Bundesanstalt für Gewässerkunde |
2 * Software engineering by | 2 * Software engineering by |
3 * Björnsen Beratende Ingenieure GmbH | 3 * Björnsen Beratende Ingenieure GmbH |
4 * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt | 4 * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt |
5 * | 5 * |
6 * This file is Free Software under the GNU AGPL (>=v3) | 6 * This file is Free Software under the GNU AGPL (>=v3) |
7 * and comes with ABSOLUTELY NO WARRANTY! Check out the | 7 * and comes with ABSOLUTELY NO WARRANTY! Check out the |
8 * documentation coming with Dive4Elements River for details. | 8 * documentation coming with Dive4Elements River for details. |
19 import net.sf.jasperreports.engine.JRField; | 19 import net.sf.jasperreports.engine.JRField; |
20 | 20 |
21 /** | 21 /** |
22 * @author <a href="mailto:raimund.renkert@intevation.de">Raimund Renkert</a> | 22 * @author <a href="mailto:raimund.renkert@intevation.de">Raimund Renkert</a> |
23 */ | 23 */ |
24 public final class MetaAndTableJRDataSource implements JRDataSource | 24 public final class MetaAndTableJRDataSource implements JRDataSource { |
25 { | |
26 private List<String[]> data = new ArrayList<>(); | |
27 | 25 |
28 private Map<String, String> metaData = new HashMap<>(); | 26 private final List<String[]> data = new ArrayList<>(); |
27 | |
28 private final Map<String, String> metaData = new HashMap<>(); | |
29 | 29 |
30 private int index = -1; | 30 private int index = -1; |
31 | 31 |
32 public void addData(final String[] data) { | 32 public void addData(final String[] row) { |
33 this.data.add(data); | 33 this.data.add(row); |
34 } | 34 } |
35 | 35 |
36 public void addMetaData(final String key, final String value) { | 36 public void addMetaData(final String key, final String value) { |
37 this.metaData.put(key, value); | 37 this.metaData.put(key, value); |
38 } | 38 } |
39 | 39 |
40 @Override | 40 @Override |
41 public boolean next() throws JRException | 41 public boolean next() throws JRException { |
42 { | 42 this.index++; |
43 index++; | |
44 | 43 |
45 return index < data.size(); | 44 return this.index < this.data.size(); |
46 } | 45 } |
47 | 46 |
48 @Override | 47 @Override |
49 public Object getFieldValue(final JRField field) throws JRException | 48 public Object getFieldValue(final JRField field) throws JRException { |
50 { | |
51 final String fieldName = field.getName(); | 49 final String fieldName = field.getName(); |
52 | |
53 if( fieldName.startsWith("meta:")) | |
54 return metaData.get(fieldName.substring("meta:".length())); | |
55 | 50 |
56 if( fieldName.startsWith("data:")) | 51 if (fieldName.startsWith("meta:")) |
57 { | 52 return this.metaData.get(fieldName.substring("meta:".length())); |
58 int column = Integer.valueOf(fieldName.substring("data:".length())); | 53 |
59 return data.get(index)[column]; | 54 if (fieldName.startsWith("data:")) { |
55 final int column = Integer.valueOf(fieldName.substring("data:".length())); | |
56 return this.data.get(this.index)[column]; | |
60 } | 57 } |
61 | 58 |
62 return null; | 59 return null; |
63 } | 60 } |
64 } | 61 } |