annotate artifacts/src/main/java/org/dive4elements/river/artifacts/states/minfo/CharDiameter.java @ 8587:07c9ac22f611

(issue1755) Generalise BedQuality result handling The bedquality calculation now produces a result for each time period which has BedQualityResultValues for each specific result type. Formally this was split up in density, porosity and diameter classes with some bedload diameter classes mixed in for extra fun. The intent of this commit is to allow more shared code and generic access patterns to the BedQuality results.
author Andre Heinecke <andre.heinecke@intevation.de>
date Wed, 18 Mar 2015 18:42:08 +0100
parents e4606eae8ea5
children f575ff573cbb 0a5239a1e46e
rev   line source
5863
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
2 * Software engineering by Intevation GmbH
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
3 *
5994
af13ceeba52a Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5863
diff changeset
4 * This file is Free Software under the GNU AGPL (>=v3)
5863
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the
5994
af13ceeba52a Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5863
diff changeset
6 * documentation coming with Dive4Elements River for details.
5863
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
7 */
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
8
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3785
diff changeset
9 package org.dive4elements.river.artifacts.states.minfo;
3629
f3717e625b0a MINFO: Added states and config for bed quality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
10
3649
33bfc01410fb Merged revisions 5375,5379,5382 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3629
diff changeset
11 import java.util.ArrayList;
33bfc01410fb Merged revisions 5375,5379,5382 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3629
diff changeset
12 import java.util.List;
33bfc01410fb Merged revisions 5375,5379,5382 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3629
diff changeset
13
33bfc01410fb Merged revisions 5375,5379,5382 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3629
diff changeset
14 import org.apache.log4j.Logger;
3629
f3717e625b0a MINFO: Added states and config for bed quality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
15
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3785
diff changeset
16 import org.dive4elements.artifacts.Artifact;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3785
diff changeset
17 import org.dive4elements.artifacts.CallContext;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3785
diff changeset
18 import org.dive4elements.artifacts.CallMeta;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3785
diff changeset
19 import org.dive4elements.artifacts.common.model.KVP;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3785
diff changeset
20 import org.dive4elements.river.artifacts.resources.Resources;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3785
diff changeset
21 import org.dive4elements.river.artifacts.states.MultiStringArrayState;
3629
f3717e625b0a MINFO: Added states and config for bed quality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
22
3649
33bfc01410fb Merged revisions 5375,5379,5382 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3629
diff changeset
23 public class CharDiameter extends MultiStringArrayState {
3629
f3717e625b0a MINFO: Added states and config for bed quality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
24
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7631
diff changeset
25 private static final Logger log = Logger.getLogger(CharDiameter.class);
3649
33bfc01410fb Merged revisions 5375,5379,5382 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3629
diff changeset
26
33bfc01410fb Merged revisions 5375,5379,5382 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3629
diff changeset
27 public static final String UI_PROVIDER = "parameter-matrix";
3629
f3717e625b0a MINFO: Added states and config for bed quality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
28
f3717e625b0a MINFO: Added states and config for bed quality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
29 private static final String CHAR_DIAMETER_MIN = "calc.bed.dmin";
f3717e625b0a MINFO: Added states and config for bed quality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
30 private static final String CHAR_DIAMETER_MAX = "calc.bed.dmax";
f3717e625b0a MINFO: Added states and config for bed quality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
31 private static final String CHAR_DIAMETER_90 = "calc.bed.d90";
f3717e625b0a MINFO: Added states and config for bed quality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
32 private static final String CHAR_DIAMETER_84 = "calc.bed.d84";
f3717e625b0a MINFO: Added states and config for bed quality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
33 private static final String CHAR_DIAMETER_80 = "calc.bed.d80";
f3717e625b0a MINFO: Added states and config for bed quality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
34 private static final String CHAR_DIAMETER_75 = "calc.bed.d75";
f3717e625b0a MINFO: Added states and config for bed quality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
35 private static final String CHAR_DIAMETER_70 = "calc.bed.d70";
f3717e625b0a MINFO: Added states and config for bed quality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
36 private static final String CHAR_DIAMETER_60 = "calc.bed.d60";
f3717e625b0a MINFO: Added states and config for bed quality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
37 private static final String CHAR_DIAMETER_50 = "calc.bed.d50";
f3717e625b0a MINFO: Added states and config for bed quality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
38 private static final String CHAR_DIAMETER_40 = "calc.bed.d40";
f3717e625b0a MINFO: Added states and config for bed quality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
39 private static final String CHAR_DIAMETER_30 = "calc.bed.d30";
f3717e625b0a MINFO: Added states and config for bed quality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
40 private static final String CHAR_DIAMETER_25 = "calc.bed.d25";
f3717e625b0a MINFO: Added states and config for bed quality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
41 private static final String CHAR_DIAMETER_20 = "calc.bed.d20";
f3717e625b0a MINFO: Added states and config for bed quality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
42 private static final String CHAR_DIAMETER_16 = "calc.bed.d16";
f3717e625b0a MINFO: Added states and config for bed quality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
43 private static final String CHAR_DIAMETER_10 = "calc.bed.d10";
7631
5d172bda6770 issue1043: Add 'dm' type.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
44 private static final String CHAR_DIAMETER_DM = "calc.bed.dm";
3629
f3717e625b0a MINFO: Added states and config for bed quality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
45
f3717e625b0a MINFO: Added states and config for bed quality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
46 public static final String[] CHAR_DIAMETER = {
7631
5d172bda6770 issue1043: Add 'dm' type.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
47 CHAR_DIAMETER_DM,
3629
f3717e625b0a MINFO: Added states and config for bed quality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
48 CHAR_DIAMETER_10,
f3717e625b0a MINFO: Added states and config for bed quality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
49 CHAR_DIAMETER_16,
f3717e625b0a MINFO: Added states and config for bed quality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
50 CHAR_DIAMETER_20,
f3717e625b0a MINFO: Added states and config for bed quality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
51 CHAR_DIAMETER_25,
f3717e625b0a MINFO: Added states and config for bed quality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
52 CHAR_DIAMETER_30,
f3717e625b0a MINFO: Added states and config for bed quality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
53 CHAR_DIAMETER_40,
f3717e625b0a MINFO: Added states and config for bed quality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
54 CHAR_DIAMETER_50,
f3717e625b0a MINFO: Added states and config for bed quality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
55 CHAR_DIAMETER_60,
f3717e625b0a MINFO: Added states and config for bed quality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
56 CHAR_DIAMETER_70,
f3717e625b0a MINFO: Added states and config for bed quality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
57 CHAR_DIAMETER_75,
f3717e625b0a MINFO: Added states and config for bed quality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
58 CHAR_DIAMETER_80,
f3717e625b0a MINFO: Added states and config for bed quality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
59 CHAR_DIAMETER_84,
f3717e625b0a MINFO: Added states and config for bed quality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
60 CHAR_DIAMETER_90,
f3717e625b0a MINFO: Added states and config for bed quality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
61 CHAR_DIAMETER_MAX,
f3717e625b0a MINFO: Added states and config for bed quality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
62 CHAR_DIAMETER_MIN
f3717e625b0a MINFO: Added states and config for bed quality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
63 };
f3717e625b0a MINFO: Added states and config for bed quality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
64
f3717e625b0a MINFO: Added states and config for bed quality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
65 @Override
f3717e625b0a MINFO: Added states and config for bed quality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
66 public String getUIProvider() {
f3717e625b0a MINFO: Added states and config for bed quality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
67 return UI_PROVIDER;
f3717e625b0a MINFO: Added states and config for bed quality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
68 }
f3717e625b0a MINFO: Added states and config for bed quality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
69
f3717e625b0a MINFO: Added states and config for bed quality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
70 @Override
3649
33bfc01410fb Merged revisions 5375,5379,5382 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3629
diff changeset
71 protected KVP<String, String>[] getOptions(
33bfc01410fb Merged revisions 5375,5379,5382 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3629
diff changeset
72 Artifact artifact,
33bfc01410fb Merged revisions 5375,5379,5382 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3629
diff changeset
73 String parameterName,
33bfc01410fb Merged revisions 5375,5379,5382 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3629
diff changeset
74 CallContext context
33bfc01410fb Merged revisions 5375,5379,5382 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3629
diff changeset
75 )
33bfc01410fb Merged revisions 5375,5379,5382 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3629
diff changeset
76 throws IllegalArgumentException
3629
f3717e625b0a MINFO: Added states and config for bed quality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
77 {
f3717e625b0a MINFO: Added states and config for bed quality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
78 CallMeta meta = context.getMeta();
f3717e625b0a MINFO: Added states and config for bed quality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
79
3649
33bfc01410fb Merged revisions 5375,5379,5382 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3629
diff changeset
80 List<KVP<String, String>> rows = new ArrayList<KVP<String, String>>();
33bfc01410fb Merged revisions 5375,5379,5382 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3629
diff changeset
81 String key = parameterName;
3629
f3717e625b0a MINFO: Added states and config for bed quality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
82 for (int i = 0; i < CHAR_DIAMETER.length; ++i) {
f3717e625b0a MINFO: Added states and config for bed quality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
83 String calc = CHAR_DIAMETER[i];
3649
33bfc01410fb Merged revisions 5375,5379,5382 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3629
diff changeset
84 rows.add(new KVP (calc,
33bfc01410fb Merged revisions 5375,5379,5382 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3629
diff changeset
85 Resources.getMsg(meta, calc, calc)));
3629
f3717e625b0a MINFO: Added states and config for bed quality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
86 }
f3717e625b0a MINFO: Added states and config for bed quality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
87
3649
33bfc01410fb Merged revisions 5375,5379,5382 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3629
diff changeset
88 return rows.toArray(new KVP[rows.size()]);
33bfc01410fb Merged revisions 5375,5379,5382 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3629
diff changeset
89 }
33bfc01410fb Merged revisions 5375,5379,5382 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3629
diff changeset
90
33bfc01410fb Merged revisions 5375,5379,5382 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3629
diff changeset
91 @Override
33bfc01410fb Merged revisions 5375,5379,5382 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3629
diff changeset
92 protected String getLabelFor(CallContext cc, String parameterName,
33bfc01410fb Merged revisions 5375,5379,5382 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3629
diff changeset
93 String value) throws IllegalArgumentException {
33bfc01410fb Merged revisions 5375,5379,5382 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3629
diff changeset
94
33bfc01410fb Merged revisions 5375,5379,5382 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3629
diff changeset
95 return Resources.getMsg(cc.getMeta(), value, value);
3629
f3717e625b0a MINFO: Added states and config for bed quality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
96 }
f3717e625b0a MINFO: Added states and config for bed quality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
97
f3717e625b0a MINFO: Added states and config for bed quality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
98 }

http://dive4elements.wald.intevation.org