Mercurial > dive4elements > river
annotate artifacts/src/main/java/org/dive4elements/river/exports/process/MiddleBedHeightProcessor.java @ 8472:3f505fba522f
(issue1772) Use 0.001km tolarance instead of 0.1 to find matching km.
There is no sense to use a define here. I will not write
static final double NULLPOINTNULLNULLONE=0.001 if i just want to use that
value and not any other value which may make sense in some other place.
Using hardcoded values can have its merits and makes the code easier to
read.
author | Andre Heinecke <andre.heinecke@intevation.de> |
---|---|
date | Tue, 18 Nov 2014 15:24:40 +0100 |
parents | 9ab967eb2c51 |
children | 1cc7653ca84f 0a5239a1e46e |
rev | line source |
---|---|
7126
05d442db4ca6
Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1 /* Copyright (C) 2013 by Bundesanstalt für Gewässerkunde |
05d442db4ca6
Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
2 * Software engineering by Intevation GmbH |
05d442db4ca6
Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
3 * |
05d442db4ca6
Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
4 * This file is Free Software under the GNU AGPL (>=v3) |
05d442db4ca6
Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the |
05d442db4ca6
Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
6 * documentation coming with Dive4Elements River for details. |
05d442db4ca6
Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
7 */ |
05d442db4ca6
Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
8 |
05d442db4ca6
Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
9 package org.dive4elements.river.exports.process; |
05d442db4ca6
Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
10 |
7892
e844be34a606
Add metadata to chart series and datasets.
Raimund Renkert <rrenkert@intevation.de>
parents:
7540
diff
changeset
|
11 import java.util.Map; |
e844be34a606
Add metadata to chart series and datasets.
Raimund Renkert <rrenkert@intevation.de>
parents:
7540
diff
changeset
|
12 |
7126
05d442db4ca6
Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
13 import org.apache.log4j.Logger; |
05d442db4ca6
Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
14 |
05d442db4ca6
Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
15 import org.dive4elements.artifactdatabase.state.ArtifactAndFacet; |
05d442db4ca6
Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
16 import org.dive4elements.artifacts.CallContext; |
05d442db4ca6
Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
17 |
05d442db4ca6
Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
18 import org.dive4elements.river.artifacts.D4EArtifact; |
8002
4366ec0d8f8f
Removed unused imports and avoid using RiverUtils.
Raimund Renkert <rrenkert@intevation.de>
parents:
8001
diff
changeset
|
19 import org.dive4elements.river.artifacts.access.RiverAccess; |
7126
05d442db4ca6
Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
20 import org.dive4elements.river.artifacts.model.FacetTypes; |
05d442db4ca6
Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
21 import org.dive4elements.river.themes.ThemeDocument; |
05d442db4ca6
Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
22 import org.dive4elements.river.exports.DiagramGenerator; |
05d442db4ca6
Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
23 import org.dive4elements.river.exports.StyledSeriesBuilder; |
05d442db4ca6
Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
24 import org.dive4elements.river.jfree.StyledXYSeries; |
05d442db4ca6
Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
25 |
05d442db4ca6
Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
26 public class MiddleBedHeightProcessor extends DefaultProcessor { |
05d442db4ca6
Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
27 |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8002
diff
changeset
|
28 /** Private log. */ |
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8002
diff
changeset
|
29 private static final Logger log = |
7540
9344aa0fb021
Fixed logger instantiations that were done with wrong class.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7126
diff
changeset
|
30 Logger.getLogger(MiddleBedHeightProcessor.class); |
7126
05d442db4ca6
Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
31 |
05d442db4ca6
Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
32 public static final String I18N_AXIS_LABEL = |
05d442db4ca6
Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
33 "chart.bedheight_middle.section.yaxis.label"; |
05d442db4ca6
Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
34 |
05d442db4ca6
Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
35 public static final String I18N_AXIS_LABEL_DEFAULT = |
05d442db4ca6
Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
36 "mittlere Sohlhöhen [müNN]"; |
05d442db4ca6
Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
37 |
7892
e844be34a606
Add metadata to chart series and datasets.
Raimund Renkert <rrenkert@intevation.de>
parents:
7540
diff
changeset
|
38 protected String yAxisLabel; |
e844be34a606
Add metadata to chart series and datasets.
Raimund Renkert <rrenkert@intevation.de>
parents:
7540
diff
changeset
|
39 |
7126
05d442db4ca6
Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
40 @Override |
05d442db4ca6
Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
41 public void doOut( |
05d442db4ca6
Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
42 DiagramGenerator generator, |
05d442db4ca6
Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
43 ArtifactAndFacet bundle, |
05d442db4ca6
Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
44 ThemeDocument theme, |
05d442db4ca6
Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
45 boolean visible) { |
05d442db4ca6
Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
46 CallContext context = generator.getCallContext(); |
7892
e844be34a606
Add metadata to chart series and datasets.
Raimund Renkert <rrenkert@intevation.de>
parents:
7540
diff
changeset
|
47 Map<String, String> metaData = bundle.getFacet().getMetaData(); |
e844be34a606
Add metadata to chart series and datasets.
Raimund Renkert <rrenkert@intevation.de>
parents:
7540
diff
changeset
|
48 yAxisLabel = metaData.get("Y"); |
7126
05d442db4ca6
Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
49 |
7983
62befca02480
Moved MiddleBedHeight classes to minfo package. Facet now returns double[][] data.
Raimund Renkert <rrenkert@intevation.de>
parents:
7892
diff
changeset
|
50 Object raw = bundle.getData(context); |
8001
5277483044d9
Fixed NPE when loading folders from datacage.
Raimund Renkert <rrenkert@intevation.de>
parents:
7983
diff
changeset
|
51 if (raw == null) { |
5277483044d9
Fixed NPE when loading folders from datacage.
Raimund Renkert <rrenkert@intevation.de>
parents:
7983
diff
changeset
|
52 return; |
5277483044d9
Fixed NPE when loading folders from datacage.
Raimund Renkert <rrenkert@intevation.de>
parents:
7983
diff
changeset
|
53 } |
7983
62befca02480
Moved MiddleBedHeight classes to minfo package. Facet now returns double[][] data.
Raimund Renkert <rrenkert@intevation.de>
parents:
7892
diff
changeset
|
54 if (!(raw instanceof double[][])) { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8002
diff
changeset
|
55 log.error("Unkonwn data type: " + raw.getClass().getName()); |
7983
62befca02480
Moved MiddleBedHeight classes to minfo package. Facet now returns double[][] data.
Raimund Renkert <rrenkert@intevation.de>
parents:
7892
diff
changeset
|
56 return; |
62befca02480
Moved MiddleBedHeight classes to minfo package. Facet now returns double[][] data.
Raimund Renkert <rrenkert@intevation.de>
parents:
7892
diff
changeset
|
57 } |
62befca02480
Moved MiddleBedHeight classes to minfo package. Facet now returns double[][] data.
Raimund Renkert <rrenkert@intevation.de>
parents:
7892
diff
changeset
|
58 |
62befca02480
Moved MiddleBedHeight classes to minfo package. Facet now returns double[][] data.
Raimund Renkert <rrenkert@intevation.de>
parents:
7892
diff
changeset
|
59 double[][] data = (double[][])raw; |
7892
e844be34a606
Add metadata to chart series and datasets.
Raimund Renkert <rrenkert@intevation.de>
parents:
7540
diff
changeset
|
60 StyledXYSeries series = new StyledXYSeries(bundle.getFacetDescription(), |
7126
05d442db4ca6
Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
61 theme); |
7892
e844be34a606
Add metadata to chart series and datasets.
Raimund Renkert <rrenkert@intevation.de>
parents:
7540
diff
changeset
|
62 series.putMetaData(metaData, bundle.getArtifact(), context); |
7126
05d442db4ca6
Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
63 |
7983
62befca02480
Moved MiddleBedHeight classes to minfo package. Facet now returns double[][] data.
Raimund Renkert <rrenkert@intevation.de>
parents:
7892
diff
changeset
|
64 StyledSeriesBuilder.addPoints(series, data, |
7126
05d442db4ca6
Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
65 false, 0.110d); |
05d442db4ca6
Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
66 |
05d442db4ca6
Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
67 generator.addAxisSeries(series, axisName, visible); |
05d442db4ca6
Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
68 } |
05d442db4ca6
Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
69 |
05d442db4ca6
Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
70 @Override |
05d442db4ca6
Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
71 public String getAxisLabel(DiagramGenerator generator) { |
05d442db4ca6
Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
72 D4EArtifact flys = (D4EArtifact) generator.getMaster(); |
05d442db4ca6
Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
73 |
8002
4366ec0d8f8f
Removed unused imports and avoid using RiverUtils.
Raimund Renkert <rrenkert@intevation.de>
parents:
8001
diff
changeset
|
74 RiverAccess access = new RiverAccess(flys); |
4366ec0d8f8f
Removed unused imports and avoid using RiverUtils.
Raimund Renkert <rrenkert@intevation.de>
parents:
8001
diff
changeset
|
75 String unit = access.getRiver().getWstUnit().getName(); |
7126
05d442db4ca6
Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
76 |
7892
e844be34a606
Add metadata to chart series and datasets.
Raimund Renkert <rrenkert@intevation.de>
parents:
7540
diff
changeset
|
77 if (yAxisLabel != null && !yAxisLabel.isEmpty()) { |
e844be34a606
Add metadata to chart series and datasets.
Raimund Renkert <rrenkert@intevation.de>
parents:
7540
diff
changeset
|
78 return generator.msg( |
e844be34a606
Add metadata to chart series and datasets.
Raimund Renkert <rrenkert@intevation.de>
parents:
7540
diff
changeset
|
79 yAxisLabel, |
e844be34a606
Add metadata to chart series and datasets.
Raimund Renkert <rrenkert@intevation.de>
parents:
7540
diff
changeset
|
80 I18N_AXIS_LABEL_DEFAULT, |
e844be34a606
Add metadata to chart series and datasets.
Raimund Renkert <rrenkert@intevation.de>
parents:
7540
diff
changeset
|
81 new Object[] { unit }); |
e844be34a606
Add metadata to chart series and datasets.
Raimund Renkert <rrenkert@intevation.de>
parents:
7540
diff
changeset
|
82 } |
7126
05d442db4ca6
Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
83 return generator.msg( |
05d442db4ca6
Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
84 I18N_AXIS_LABEL, |
05d442db4ca6
Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
85 I18N_AXIS_LABEL_DEFAULT, |
05d442db4ca6
Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
86 new Object[] { unit }); |
05d442db4ca6
Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
87 } |
05d442db4ca6
Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
88 |
05d442db4ca6
Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
89 @Override |
05d442db4ca6
Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
90 public boolean canHandle(String facetType) { |
05d442db4ca6
Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
91 if (facetType == null) { |
05d442db4ca6
Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
92 return false; |
05d442db4ca6
Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
93 } |
8295
9ab967eb2c51
At least since rev eb052d759fcc, there are no bed height epochs anymore.
"Tom Gottfried <tom@intevation.de>"
parents:
8202
diff
changeset
|
94 return facetType.equals(FacetTypes.MIDDLE_BED_HEIGHT_SINGLE); |
7126
05d442db4ca6
Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
95 } |
05d442db4ca6
Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
96 } |