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 }

http://dive4elements.wald.intevation.org