annotate artifacts/src/main/java/org/dive4elements/river/exports/process/BedQualityDiameterProcessor.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 48d4921665e3
children 36faef4f8acb
rev   line source
7148
cde7db30847f Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
1 /* Copyright (C) 2013 by Bundesanstalt für Gewässerkunde
cde7db30847f Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
2 * Software engineering by Intevation GmbH
cde7db30847f Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
3 *
cde7db30847f Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
4 * This file is Free Software under the GNU AGPL (>=v3)
cde7db30847f Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the
cde7db30847f Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
6 * documentation coming with Dive4Elements River for details.
cde7db30847f Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
7 */
cde7db30847f Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
8
cde7db30847f Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
9 package org.dive4elements.river.exports.process;
cde7db30847f Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
10
7892
e844be34a606 Add metadata to chart series and datasets.
Raimund Renkert <rrenkert@intevation.de>
parents: 7159
diff changeset
11 import java.util.Map;
e844be34a606 Add metadata to chart series and datasets.
Raimund Renkert <rrenkert@intevation.de>
parents: 7159
diff changeset
12
7148
cde7db30847f Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
13 import org.apache.log4j.Logger;
cde7db30847f Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
14 import org.dive4elements.artifactdatabase.state.ArtifactAndFacet;
cde7db30847f Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
15 import org.dive4elements.artifacts.CallContext;
8260
48d4921665e3 Making i18n work was just easier using less wrappers in this case (issue1631).
Tom Gottfried <tom@intevation.de>
parents: 8202
diff changeset
16 import org.dive4elements.artifacts.CallMeta;
48d4921665e3 Making i18n work was just easier using less wrappers in this case (issue1631).
Tom Gottfried <tom@intevation.de>
parents: 8202
diff changeset
17
48d4921665e3 Making i18n work was just easier using less wrappers in this case (issue1631).
Tom Gottfried <tom@intevation.de>
parents: 8202
diff changeset
18 import org.dive4elements.river.artifacts.resources.Resources;
7148
cde7db30847f Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
19 import org.dive4elements.river.artifacts.model.FacetTypes;
cde7db30847f Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
20 import org.dive4elements.river.exports.DiagramGenerator;
cde7db30847f Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
21 import org.dive4elements.river.exports.StyledSeriesBuilder;
cde7db30847f Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
22 import org.dive4elements.river.jfree.StyledXYSeries;
cde7db30847f Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
23 import org.dive4elements.river.themes.ThemeDocument;
cde7db30847f Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
24
cde7db30847f Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
25 public class BedQualityDiameterProcessor extends DefaultProcessor {
cde7db30847f Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
26
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8001
diff changeset
27 private final static Logger log =
7148
cde7db30847f Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
28 Logger.getLogger(BedQualityDiameterProcessor.class);
cde7db30847f Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
29
cde7db30847f Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
30 public static final String I18N_AXIS_LABEL =
cde7db30847f Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
31 "chart.bedquality.yaxis.label.diameter";
cde7db30847f Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
32
7892
e844be34a606 Add metadata to chart series and datasets.
Raimund Renkert <rrenkert@intevation.de>
parents: 7159
diff changeset
33 protected String yAxisLabel;
7148
cde7db30847f Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
34 @Override
cde7db30847f Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
35 public void doOut(
cde7db30847f Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
36 DiagramGenerator generator,
cde7db30847f Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
37 ArtifactAndFacet bundle,
cde7db30847f Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
38 ThemeDocument theme,
cde7db30847f Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
39 boolean visible) {
cde7db30847f Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
40 CallContext context = generator.getCallContext();
7892
e844be34a606 Add metadata to chart series and datasets.
Raimund Renkert <rrenkert@intevation.de>
parents: 7159
diff changeset
41 Map<String, String> metaData = bundle.getFacet().getMetaData();
e844be34a606 Add metadata to chart series and datasets.
Raimund Renkert <rrenkert@intevation.de>
parents: 7159
diff changeset
42 StyledXYSeries series = new StyledXYSeries(bundle.getFacetDescription(),
7148
cde7db30847f Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
43 theme);
7892
e844be34a606 Add metadata to chart series and datasets.
Raimund Renkert <rrenkert@intevation.de>
parents: 7159
diff changeset
44 series.putMetaData(metaData, bundle.getArtifact(), context);
e844be34a606 Add metadata to chart series and datasets.
Raimund Renkert <rrenkert@intevation.de>
parents: 7159
diff changeset
45 yAxisLabel = metaData.get("Y");
7148
cde7db30847f Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
46 Object data = bundle.getData(context);
8001
5277483044d9 Fixed NPE when loading folders from datacage.
Raimund Renkert <rrenkert@intevation.de>
parents: 7987
diff changeset
47 if (data == null) {
5277483044d9 Fixed NPE when loading folders from datacage.
Raimund Renkert <rrenkert@intevation.de>
parents: 7987
diff changeset
48 return;
5277483044d9 Fixed NPE when loading folders from datacage.
Raimund Renkert <rrenkert@intevation.de>
parents: 7987
diff changeset
49 }
7987
98ca61cb58fb Split bed quality facets and updated processors and state.
Raimund Renkert <rrenkert@intevation.de>
parents: 7892
diff changeset
50 if (!(data instanceof double[][])) {
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8001
diff changeset
51 log.error("Unknown data type: " + data.getClass().getName());
7148
cde7db30847f Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
52 return;
cde7db30847f Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
53 }
7987
98ca61cb58fb Split bed quality facets and updated processors and state.
Raimund Renkert <rrenkert@intevation.de>
parents: 7892
diff changeset
54 double[][] values = (double[][])data;
98ca61cb58fb Split bed quality facets and updated processors and state.
Raimund Renkert <rrenkert@intevation.de>
parents: 7892
diff changeset
55 StyledSeriesBuilder.addPoints(series, values, true);
7148
cde7db30847f Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
56
cde7db30847f Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
57 generator.addAxisSeries(series, axisName, visible);
cde7db30847f Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
58 }
cde7db30847f Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
59
cde7db30847f Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
60 @Override
cde7db30847f Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
61 public boolean canHandle(String facettype) {
cde7db30847f Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
62 return facettype.equals(FacetTypes.BED_QUALITY_BED_DIAMETER_TOPLAYER) ||
cde7db30847f Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
63 facettype.equals(FacetTypes.BED_QUALITY_BED_DIAMETER_SUBLAYER) ||
cde7db30847f Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
64 facettype.equals(FacetTypes.BED_QUALITY_BEDLOAD_DIAMETER) ||
cde7db30847f Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
65 facettype.equals(FacetTypes.BED_DIAMETER_DATA_TOP) ||
cde7db30847f Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
66 facettype.equals(FacetTypes.BED_DIAMETER_DATA_SUB) ||
cde7db30847f Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
67 facettype.equals(FacetTypes.BEDLOAD_DIAMETER_DATA);
cde7db30847f Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
68 }
cde7db30847f Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
69
cde7db30847f Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
70 @Override
cde7db30847f Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
71 public String getAxisLabel(DiagramGenerator generator) {
8260
48d4921665e3 Making i18n work was just easier using less wrappers in this case (issue1631).
Tom Gottfried <tom@intevation.de>
parents: 8202
diff changeset
72
48d4921665e3 Making i18n work was just easier using less wrappers in this case (issue1631).
Tom Gottfried <tom@intevation.de>
parents: 8202
diff changeset
73 CallMeta meta = generator.getCallContext().getMeta();
48d4921665e3 Making i18n work was just easier using less wrappers in this case (issue1631).
Tom Gottfried <tom@intevation.de>
parents: 8202
diff changeset
74
7892
e844be34a606 Add metadata to chart series and datasets.
Raimund Renkert <rrenkert@intevation.de>
parents: 7159
diff changeset
75 if (yAxisLabel != null && !yAxisLabel.isEmpty()) {
8260
48d4921665e3 Making i18n work was just easier using less wrappers in this case (issue1631).
Tom Gottfried <tom@intevation.de>
parents: 8202
diff changeset
76 return Resources.getMsg(meta, yAxisLabel);
7892
e844be34a606 Add metadata to chart series and datasets.
Raimund Renkert <rrenkert@intevation.de>
parents: 7159
diff changeset
77 }
8260
48d4921665e3 Making i18n work was just easier using less wrappers in this case (issue1631).
Tom Gottfried <tom@intevation.de>
parents: 8202
diff changeset
78 return Resources.getMsg(meta, I18N_AXIS_LABEL);
7148
cde7db30847f Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
79 }
cde7db30847f Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
80 }
cde7db30847f Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
81

http://dive4elements.wald.intevation.org