annotate artifacts/src/main/java/org/dive4elements/river/artifacts/states/minfo/BedQualityDistanceSelect.java @ 8856:5e38e2924c07 3.2.x

Fix code style.
author Tom Gottfried <tom@intevation.de>
date Thu, 18 Jan 2018 20:12:01 +0100
parents 5855f919cbd6
children 0071702ba03f
rev   line source
8613
39ce099a6551 (issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
1 /* Copyright (C) 2011, 2012, 2013, 2015 by Bundesanstalt für Gewässerkunde
39ce099a6551 (issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
2 * Software engineering by Intevation GmbH
39ce099a6551 (issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
3 *
39ce099a6551 (issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
4 * This file is Free Software under the GNU AGPL (>=v3)
39ce099a6551 (issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the
39ce099a6551 (issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
6 * documentation coming with Dive4Elements River for details.
39ce099a6551 (issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
7 */
39ce099a6551 (issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
8
39ce099a6551 (issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
9 package org.dive4elements.river.artifacts.states.minfo;
39ce099a6551 (issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
10
39ce099a6551 (issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
11 import java.util.Date;
39ce099a6551 (issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
12 import java.util.List;
39ce099a6551 (issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
13
39ce099a6551 (issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
14 import org.w3c.dom.Element;
39ce099a6551 (issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
15
39ce099a6551 (issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
16 import org.apache.log4j.Logger;
39ce099a6551 (issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
17
39ce099a6551 (issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
18 import org.dive4elements.river.artifacts.D4EArtifact;
39ce099a6551 (issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
19 import org.dive4elements.river.artifacts.access.RiverAccess;
39ce099a6551 (issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
20 import org.dive4elements.river.artifacts.states.DistanceSelect;
39ce099a6551 (issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
21
8784
6714e07e18c2 Issue1854: Use the real data.
Tom Gottfried <tom@intevation.de>
parents: 8776
diff changeset
22 import org.dive4elements.river.artifacts.model.minfo.QualityMeasurementFactory;
8613
39ce099a6551 (issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
23
39ce099a6551 (issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
24 import org.dive4elements.artifacts.common.utils.XMLUtils;
39ce099a6551 (issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
25 import org.dive4elements.artifacts.Artifact;
39ce099a6551 (issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
26 import org.dive4elements.artifacts.CallContext;
39ce099a6551 (issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
27
39ce099a6551 (issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
28 import org.dive4elements.artifactdatabase.data.StateData;
39ce099a6551 (issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
29
39ce099a6551 (issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
30 /** Extended Distance Select with default values appropiate for BedQuality */
39ce099a6551 (issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
31 public class BedQualityDistanceSelect extends DistanceSelect {
39ce099a6551 (issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
32
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8787
diff changeset
33 private static Logger log = Logger.getLogger(
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8787
diff changeset
34 BedQualityDistanceSelect.class);
8613
39ce099a6551 (issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
35
39ce099a6551 (issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
36 /**
39ce099a6551 (issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
37 * The default constructor that initializes an empty State object.
39ce099a6551 (issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
38 */
39ce099a6551 (issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
39 public BedQualityDistanceSelect() {
39ce099a6551 (issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
40 }
39ce099a6551 (issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
41
39ce099a6551 (issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
42 @Override
39ce099a6551 (issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
43 protected Element createData(
39ce099a6551 (issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
44 XMLUtils.ElementCreator cr,
39ce099a6551 (issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
45 Artifact artifact,
39ce099a6551 (issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
46 StateData data,
39ce099a6551 (issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
47 CallContext context)
39ce099a6551 (issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
48 {
39ce099a6551 (issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
49 Element ele = super.createData(cr, artifact, data, context);
8776
1116079e6624 Tidied.
Tom Gottfried <tom@intevation.de>
parents: 8682
diff changeset
50 if (!data.getName().equals("ld_from")
1116079e6624 Tidied.
Tom Gottfried <tom@intevation.de>
parents: 8682
diff changeset
51 && !data.getName().equals("ld_to")) {
8613
39ce099a6551 (issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
52 return ele;
39ce099a6551 (issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
53 }
39ce099a6551 (issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
54
8784
6714e07e18c2 Issue1854: Use the real data.
Tom Gottfried <tom@intevation.de>
parents: 8776
diff changeset
55 RiverAccess access = new RiverAccess((D4EArtifact)artifact);
6714e07e18c2 Issue1854: Use the real data.
Tom Gottfried <tom@intevation.de>
parents: 8776
diff changeset
56 String river = access.getRiverName();
6714e07e18c2 Issue1854: Use the real data.
Tom Gottfried <tom@intevation.de>
parents: 8776
diff changeset
57 double [] minMax = access.getRiver().determineMinMaxDistance();
8613
39ce099a6551 (issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
58
8784
6714e07e18c2 Issue1854: Use the real data.
Tom Gottfried <tom@intevation.de>
parents: 8776
diff changeset
59 List<Double> bKms = QualityMeasurementFactory.getBedMeasurements(
6714e07e18c2 Issue1854: Use the real data.
Tom Gottfried <tom@intevation.de>
parents: 8776
diff changeset
60 river,
6714e07e18c2 Issue1854: Use the real data.
Tom Gottfried <tom@intevation.de>
parents: 8776
diff changeset
61 minMax[0],
8787
5855f919cbd6 Issue1854: Avoid assumptions about limits of SQL datetime.
Tom Gottfried <tom@intevation.de>
parents: 8785
diff changeset
62 minMax[1]
8784
6714e07e18c2 Issue1854: Use the real data.
Tom Gottfried <tom@intevation.de>
parents: 8776
diff changeset
63 ).getKms();
8613
39ce099a6551 (issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
64
8784
6714e07e18c2 Issue1854: Use the real data.
Tom Gottfried <tom@intevation.de>
parents: 8776
diff changeset
65 List<Double> blKms = QualityMeasurementFactory.getBedloadMeasurements(
6714e07e18c2 Issue1854: Use the real data.
Tom Gottfried <tom@intevation.de>
parents: 8776
diff changeset
66 river,
6714e07e18c2 Issue1854: Use the real data.
Tom Gottfried <tom@intevation.de>
parents: 8776
diff changeset
67 minMax[0],
8787
5855f919cbd6 Issue1854: Avoid assumptions about limits of SQL datetime.
Tom Gottfried <tom@intevation.de>
parents: 8785
diff changeset
68 minMax[1]
8784
6714e07e18c2 Issue1854: Use the real data.
Tom Gottfried <tom@intevation.de>
parents: 8776
diff changeset
69 ).getKms();
6714e07e18c2 Issue1854: Use the real data.
Tom Gottfried <tom@intevation.de>
parents: 8776
diff changeset
70
6714e07e18c2 Issue1854: Use the real data.
Tom Gottfried <tom@intevation.de>
parents: 8776
diff changeset
71 if (bKms.isEmpty() || blKms.isEmpty()) {
6714e07e18c2 Issue1854: Use the real data.
Tom Gottfried <tom@intevation.de>
parents: 8776
diff changeset
72 log.warn("Not all data found for river '" + river + "'");
8613
39ce099a6551 (issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
73 return ele;
39ce099a6551 (issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
74 }
39ce099a6551 (issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
75
8784
6714e07e18c2 Issue1854: Use the real data.
Tom Gottfried <tom@intevation.de>
parents: 8776
diff changeset
76 double start = Math.min(bKms.get(0), blKms.get(0));
6714e07e18c2 Issue1854: Use the real data.
Tom Gottfried <tom@intevation.de>
parents: 8776
diff changeset
77 double end = Math.max(
6714e07e18c2 Issue1854: Use the real data.
Tom Gottfried <tom@intevation.de>
parents: 8776
diff changeset
78 bKms.get(bKms.size()-1), blKms.get(blKms.size()-1));
8613
39ce099a6551 (issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
79
39ce099a6551 (issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
80 if (data.getName().equals("ld_from")) {
39ce099a6551 (issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
81 cr.addAttr(ele, "defaultLabel", data.getName(), true);
8784
6714e07e18c2 Issue1854: Use the real data.
Tom Gottfried <tom@intevation.de>
parents: 8776
diff changeset
82 cr.addAttr(ele, "defaultValue", Double.toString(start), true);
8613
39ce099a6551 (issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
83 } else if (data.getName().equals("ld_to")) {
39ce099a6551 (issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
84 cr.addAttr(ele, "defaultLabel", data.getName(), true);
8784
6714e07e18c2 Issue1854: Use the real data.
Tom Gottfried <tom@intevation.de>
parents: 8776
diff changeset
85 cr.addAttr(ele, "defaultValue", Double.toString(end), true);
8613
39ce099a6551 (issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
86 }
39ce099a6551 (issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
87
39ce099a6551 (issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
88 return ele;
39ce099a6551 (issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
89 }
39ce099a6551 (issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
90 }

http://dive4elements.wald.intevation.org