Mercurial > dive4elements > river
annotate artifacts/src/main/java/org/dive4elements/river/artifacts/states/minfo/BedQualityDistanceSelect.java @ 8857:0071702ba03f 3.2.x
Fix diverse coding issues.
author | Tom Gottfried <tom@intevation.de> |
---|---|
date | Thu, 18 Jan 2018 20:37:25 +0100 |
parents | 5e38e2924c07 |
children | 0a5239a1e46e |
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.List; |
39ce099a6551
(issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff
changeset
|
12 |
39ce099a6551
(issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff
changeset
|
13 import org.w3c.dom.Element; |
39ce099a6551
(issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff
changeset
|
14 |
39ce099a6551
(issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff
changeset
|
15 import org.apache.log4j.Logger; |
39ce099a6551
(issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff
changeset
|
16 |
39ce099a6551
(issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff
changeset
|
17 import org.dive4elements.river.artifacts.D4EArtifact; |
39ce099a6551
(issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff
changeset
|
18 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
|
19 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
|
20 |
8784
6714e07e18c2
Issue1854: Use the real data.
Tom Gottfried <tom@intevation.de>
parents:
8776
diff
changeset
|
21 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
|
22 |
39ce099a6551
(issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff
changeset
|
23 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
|
24 import org.dive4elements.artifacts.Artifact; |
39ce099a6551
(issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff
changeset
|
25 import org.dive4elements.artifacts.CallContext; |
39ce099a6551
(issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff
changeset
|
26 |
39ce099a6551
(issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff
changeset
|
27 import org.dive4elements.artifactdatabase.data.StateData; |
39ce099a6551
(issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff
changeset
|
28 |
39ce099a6551
(issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff
changeset
|
29 /** 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
|
30 public class BedQualityDistanceSelect extends DistanceSelect { |
39ce099a6551
(issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff
changeset
|
31 |
8856 | 32 private static Logger log = Logger.getLogger( |
33 BedQualityDistanceSelect.class); | |
8613
39ce099a6551
(issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff
changeset
|
34 |
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 * 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
|
37 */ |
39ce099a6551
(issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff
changeset
|
38 public BedQualityDistanceSelect() { |
39ce099a6551
(issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff
changeset
|
39 } |
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 @Override |
39ce099a6551
(issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff
changeset
|
42 protected Element createData( |
39ce099a6551
(issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff
changeset
|
43 XMLUtils.ElementCreator cr, |
39ce099a6551
(issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff
changeset
|
44 Artifact artifact, |
39ce099a6551
(issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff
changeset
|
45 StateData data, |
39ce099a6551
(issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff
changeset
|
46 CallContext context) |
39ce099a6551
(issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff
changeset
|
47 { |
39ce099a6551
(issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff
changeset
|
48 Element ele = super.createData(cr, artifact, data, context); |
8776 | 49 if (!data.getName().equals("ld_from") |
50 && !data.getName().equals("ld_to")) { | |
8613
39ce099a6551
(issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff
changeset
|
51 return ele; |
39ce099a6551
(issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff
changeset
|
52 } |
39ce099a6551
(issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff
changeset
|
53 |
8784
6714e07e18c2
Issue1854: Use the real data.
Tom Gottfried <tom@intevation.de>
parents:
8776
diff
changeset
|
54 RiverAccess access = new RiverAccess((D4EArtifact)artifact); |
6714e07e18c2
Issue1854: Use the real data.
Tom Gottfried <tom@intevation.de>
parents:
8776
diff
changeset
|
55 String river = access.getRiverName(); |
6714e07e18c2
Issue1854: Use the real data.
Tom Gottfried <tom@intevation.de>
parents:
8776
diff
changeset
|
56 double [] minMax = access.getRiver().determineMinMaxDistance(); |
8613
39ce099a6551
(issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff
changeset
|
57 |
8784
6714e07e18c2
Issue1854: Use the real data.
Tom Gottfried <tom@intevation.de>
parents:
8776
diff
changeset
|
58 List<Double> bKms = QualityMeasurementFactory.getBedMeasurements( |
6714e07e18c2
Issue1854: Use the real data.
Tom Gottfried <tom@intevation.de>
parents:
8776
diff
changeset
|
59 river, |
6714e07e18c2
Issue1854: Use the real data.
Tom Gottfried <tom@intevation.de>
parents:
8776
diff
changeset
|
60 minMax[0], |
8787
5855f919cbd6
Issue1854: Avoid assumptions about limits of SQL datetime.
Tom Gottfried <tom@intevation.de>
parents:
8785
diff
changeset
|
61 minMax[1] |
8784
6714e07e18c2
Issue1854: Use the real data.
Tom Gottfried <tom@intevation.de>
parents:
8776
diff
changeset
|
62 ).getKms(); |
8613
39ce099a6551
(issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff
changeset
|
63 |
8784
6714e07e18c2
Issue1854: Use the real data.
Tom Gottfried <tom@intevation.de>
parents:
8776
diff
changeset
|
64 List<Double> blKms = QualityMeasurementFactory.getBedloadMeasurements( |
6714e07e18c2
Issue1854: Use the real data.
Tom Gottfried <tom@intevation.de>
parents:
8776
diff
changeset
|
65 river, |
6714e07e18c2
Issue1854: Use the real data.
Tom Gottfried <tom@intevation.de>
parents:
8776
diff
changeset
|
66 minMax[0], |
8787
5855f919cbd6
Issue1854: Avoid assumptions about limits of SQL datetime.
Tom Gottfried <tom@intevation.de>
parents:
8785
diff
changeset
|
67 minMax[1] |
8784
6714e07e18c2
Issue1854: Use the real data.
Tom Gottfried <tom@intevation.de>
parents:
8776
diff
changeset
|
68 ).getKms(); |
6714e07e18c2
Issue1854: Use the real data.
Tom Gottfried <tom@intevation.de>
parents:
8776
diff
changeset
|
69 |
6714e07e18c2
Issue1854: Use the real data.
Tom Gottfried <tom@intevation.de>
parents:
8776
diff
changeset
|
70 if (bKms.isEmpty() || blKms.isEmpty()) { |
6714e07e18c2
Issue1854: Use the real data.
Tom Gottfried <tom@intevation.de>
parents:
8776
diff
changeset
|
71 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
|
72 return ele; |
39ce099a6551
(issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff
changeset
|
73 } |
39ce099a6551
(issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff
changeset
|
74 |
8784
6714e07e18c2
Issue1854: Use the real data.
Tom Gottfried <tom@intevation.de>
parents:
8776
diff
changeset
|
75 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
|
76 double end = Math.max( |
6714e07e18c2
Issue1854: Use the real data.
Tom Gottfried <tom@intevation.de>
parents:
8776
diff
changeset
|
77 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
|
78 |
39ce099a6551
(issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff
changeset
|
79 if (data.getName().equals("ld_from")) { |
39ce099a6551
(issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff
changeset
|
80 cr.addAttr(ele, "defaultLabel", data.getName(), true); |
8784
6714e07e18c2
Issue1854: Use the real data.
Tom Gottfried <tom@intevation.de>
parents:
8776
diff
changeset
|
81 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
|
82 } 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
|
83 cr.addAttr(ele, "defaultLabel", data.getName(), true); |
8784
6714e07e18c2
Issue1854: Use the real data.
Tom Gottfried <tom@intevation.de>
parents:
8776
diff
changeset
|
84 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
|
85 } |
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 return ele; |
39ce099a6551
(issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff
changeset
|
88 } |
39ce099a6551
(issue1755) Add good defaults for bedquality distance selection
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff
changeset
|
89 } |