Mercurial > dive4elements > river
annotate artifacts/src/main/java/org/dive4elements/river/exports/process/BedheightProcessor.java @ 6883:3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
author | Felix Wolfsteller <felix.wolfsteller@intevation.de> |
---|---|
date | Wed, 21 Aug 2013 11:11:56 +0200 |
parents | af13ceeba52a |
children | 1b35b2ddfc28 |
rev | line source |
---|---|
5863
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde |
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
2 * Software engineering by Intevation GmbH |
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
3 * |
5994
af13ceeba52a
Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
4 * This file is Free Software under the GNU AGPL (>=v3) |
5863
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the |
5994
af13ceeba52a
Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
6 * documentation coming with Dive4Elements River for details. |
5863
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
7 */ |
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
8 |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4551
diff
changeset
|
9 package org.dive4elements.river.exports.process; |
4536
ce4ff444f215
Implement a BedheightProcessor to generate charts from bed height data
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
10 |
ce4ff444f215
Implement a BedheightProcessor to generate charts from bed height data
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
11 import java.util.List; |
ce4ff444f215
Implement a BedheightProcessor to generate charts from bed height data
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
12 |
ce4ff444f215
Implement a BedheightProcessor to generate charts from bed height data
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
13 import org.apache.log4j.Logger; |
ce4ff444f215
Implement a BedheightProcessor to generate charts from bed height data
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
14 import org.jfree.data.xy.XYSeries; |
ce4ff444f215
Implement a BedheightProcessor to generate charts from bed height data
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
15 import org.w3c.dom.Document; |
ce4ff444f215
Implement a BedheightProcessor to generate charts from bed height data
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
16 |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4551
diff
changeset
|
17 import org.dive4elements.artifactdatabase.state.ArtifactAndFacet; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4551
diff
changeset
|
18 import org.dive4elements.artifacts.CallContext; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4551
diff
changeset
|
19 import org.dive4elements.river.artifacts.model.minfo.BedHeightSingle; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4551
diff
changeset
|
20 import org.dive4elements.river.exports.XYChartGenerator; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4551
diff
changeset
|
21 import org.dive4elements.river.jfree.StyledXYSeries; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4551
diff
changeset
|
22 import org.dive4elements.river.model.BedHeightSingleValue; |
4536
ce4ff444f215
Implement a BedheightProcessor to generate charts from bed height data
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
23 |
ce4ff444f215
Implement a BedheightProcessor to generate charts from bed height data
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
24 public class BedheightProcessor implements Processor { |
ce4ff444f215
Implement a BedheightProcessor to generate charts from bed height data
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
25 |
ce4ff444f215
Implement a BedheightProcessor to generate charts from bed height data
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
26 private final static Logger logger = |
ce4ff444f215
Implement a BedheightProcessor to generate charts from bed height data
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
27 Logger.getLogger(BedheightProcessor.class); |
ce4ff444f215
Implement a BedheightProcessor to generate charts from bed height data
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
28 |
ce4ff444f215
Implement a BedheightProcessor to generate charts from bed height data
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
29 private final static String BEDHEIGHT = "bedheight"; |
ce4ff444f215
Implement a BedheightProcessor to generate charts from bed height data
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
30 |
ce4ff444f215
Implement a BedheightProcessor to generate charts from bed height data
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
31 @Override |
4551
2fadc6c5cdad
Removed obsolete imports.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4536
diff
changeset
|
32 public void doOut( |
2fadc6c5cdad
Removed obsolete imports.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4536
diff
changeset
|
33 XYChartGenerator generator, |
2fadc6c5cdad
Removed obsolete imports.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4536
diff
changeset
|
34 ArtifactAndFacet aandf, |
2fadc6c5cdad
Removed obsolete imports.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4536
diff
changeset
|
35 Document theme, |
2fadc6c5cdad
Removed obsolete imports.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4536
diff
changeset
|
36 boolean visible, |
2fadc6c5cdad
Removed obsolete imports.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4536
diff
changeset
|
37 int index |
2fadc6c5cdad
Removed obsolete imports.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4536
diff
changeset
|
38 ) { |
4536
ce4ff444f215
Implement a BedheightProcessor to generate charts from bed height data
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
39 CallContext context = generator.getCallContext(); |
ce4ff444f215
Implement a BedheightProcessor to generate charts from bed height data
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
40 Object data = aandf.getData(context); |
ce4ff444f215
Implement a BedheightProcessor to generate charts from bed height data
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
41 if (data instanceof BedHeightSingle) { |
ce4ff444f215
Implement a BedheightProcessor to generate charts from bed height data
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
42 doBedheightSingleOut(generator, aandf, theme, index, visible, |
ce4ff444f215
Implement a BedheightProcessor to generate charts from bed height data
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
43 (BedHeightSingle)data); |
ce4ff444f215
Implement a BedheightProcessor to generate charts from bed height data
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
44 } |
ce4ff444f215
Implement a BedheightProcessor to generate charts from bed height data
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
45 else if (data instanceof List<?>) { |
ce4ff444f215
Implement a BedheightProcessor to generate charts from bed height data
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
46 doBedheightSingeValuesOut(generator, aandf, theme, index, visible, |
ce4ff444f215
Implement a BedheightProcessor to generate charts from bed height data
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
47 (List<BedHeightSingleValue>)data); |
ce4ff444f215
Implement a BedheightProcessor to generate charts from bed height data
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
48 } |
ce4ff444f215
Implement a BedheightProcessor to generate charts from bed height data
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
49 logger.error("Can't process " + data.getClass().getName() + " objects"); |
ce4ff444f215
Implement a BedheightProcessor to generate charts from bed height data
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
50 } |
ce4ff444f215
Implement a BedheightProcessor to generate charts from bed height data
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
51 |
ce4ff444f215
Implement a BedheightProcessor to generate charts from bed height data
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
52 private void doBedheightSingeValuesOut(XYChartGenerator generator, |
ce4ff444f215
Implement a BedheightProcessor to generate charts from bed height data
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
53 ArtifactAndFacet aandf, Document theme, int index, boolean visible, |
ce4ff444f215
Implement a BedheightProcessor to generate charts from bed height data
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
54 List<BedHeightSingleValue> data) { |
ce4ff444f215
Implement a BedheightProcessor to generate charts from bed height data
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
55 logger.debug("doBedheightSingleOut"); |
ce4ff444f215
Implement a BedheightProcessor to generate charts from bed height data
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
56 |
ce4ff444f215
Implement a BedheightProcessor to generate charts from bed height data
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
57 XYSeries series = new StyledXYSeries(aandf.getFacetDescription(), |
ce4ff444f215
Implement a BedheightProcessor to generate charts from bed height data
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
58 theme); |
ce4ff444f215
Implement a BedheightProcessor to generate charts from bed height data
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
59 for(BedHeightSingleValue bvalue: data) { |
ce4ff444f215
Implement a BedheightProcessor to generate charts from bed height data
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
60 series.add(bvalue.getStation(), bvalue.getSoundingWidth()); |
ce4ff444f215
Implement a BedheightProcessor to generate charts from bed height data
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
61 } |
ce4ff444f215
Implement a BedheightProcessor to generate charts from bed height data
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
62 generator.addAxisSeries(series, index, visible); |
ce4ff444f215
Implement a BedheightProcessor to generate charts from bed height data
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
63 } |
ce4ff444f215
Implement a BedheightProcessor to generate charts from bed height data
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
64 |
ce4ff444f215
Implement a BedheightProcessor to generate charts from bed height data
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
65 @Override |
ce4ff444f215
Implement a BedheightProcessor to generate charts from bed height data
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
66 public boolean canHandle(String facettype) { |
ce4ff444f215
Implement a BedheightProcessor to generate charts from bed height data
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
67 return BEDHEIGHT.equals(facettype); |
ce4ff444f215
Implement a BedheightProcessor to generate charts from bed height data
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
68 } |
ce4ff444f215
Implement a BedheightProcessor to generate charts from bed height data
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
69 |
ce4ff444f215
Implement a BedheightProcessor to generate charts from bed height data
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
70 public void doBedheightSingleOut(XYChartGenerator generator, |
ce4ff444f215
Implement a BedheightProcessor to generate charts from bed height data
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
71 ArtifactAndFacet aandf, Document theme, int index, boolean visible, |
ce4ff444f215
Implement a BedheightProcessor to generate charts from bed height data
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
72 BedHeightSingle data) { |
ce4ff444f215
Implement a BedheightProcessor to generate charts from bed height data
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
73 double[] width = data.getMorphWidths(); |
ce4ff444f215
Implement a BedheightProcessor to generate charts from bed height data
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
74 double[] stations = data.getStations().toNativeArray(); |
ce4ff444f215
Implement a BedheightProcessor to generate charts from bed height data
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
75 |
ce4ff444f215
Implement a BedheightProcessor to generate charts from bed height data
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
76 logger.debug("doBedheightSingleOut"); |
ce4ff444f215
Implement a BedheightProcessor to generate charts from bed height data
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
77 |
ce4ff444f215
Implement a BedheightProcessor to generate charts from bed height data
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
78 XYSeries series = new StyledXYSeries(aandf.getFacetDescription(), |
ce4ff444f215
Implement a BedheightProcessor to generate charts from bed height data
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
79 theme); |
ce4ff444f215
Implement a BedheightProcessor to generate charts from bed height data
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
80 |
ce4ff444f215
Implement a BedheightProcessor to generate charts from bed height data
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
81 for (int i = 0; i < width.length; i++) { |
ce4ff444f215
Implement a BedheightProcessor to generate charts from bed height data
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
82 series.add(stations[i], width[i], false); |
ce4ff444f215
Implement a BedheightProcessor to generate charts from bed height data
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
83 } |
ce4ff444f215
Implement a BedheightProcessor to generate charts from bed height data
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
84 |
ce4ff444f215
Implement a BedheightProcessor to generate charts from bed height data
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
85 generator.addAxisSeries(series, index, visible); |
ce4ff444f215
Implement a BedheightProcessor to generate charts from bed height data
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
86 } |
ce4ff444f215
Implement a BedheightProcessor to generate charts from bed height data
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
87 } |