annotate artifacts/src/main/java/org/dive4elements/river/artifacts/states/minfo/BedQualityState.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 e9343e4c9ae0
children 36faef4f8acb
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: 5867
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: 5867
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: 4825
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
3749
3dcc4feff243 Created the initial structure for MINFO bed quality chart generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3629
diff changeset
11 import java.util.ArrayList;
3767
b4ad8dafe584 Created i18n descriptions for facets in bed quality calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3766
diff changeset
12 import java.util.Date;
3749
3dcc4feff243 Created the initial structure for MINFO bed quality chart generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3629
diff changeset
13 import java.util.List;
3dcc4feff243 Created the initial structure for MINFO bed quality chart generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3629
diff changeset
14
3dcc4feff243 Created the initial structure for MINFO bed quality chart generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3629
diff changeset
15 import org.apache.log4j.Logger;
3dcc4feff243 Created the initial structure for MINFO bed quality chart generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3629
diff changeset
16
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4825
diff changeset
17 import org.dive4elements.artifactdatabase.state.Facet;
6262
ea6225010871 Set facet activity, have the correct facet order and added new facet to bed quality.
Raimund Renkert <rrenkert@intevation.de>
parents: 6252
diff changeset
18 import org.dive4elements.artifactdatabase.state.FacetActivity;
ea6225010871 Set facet activity, have the correct facet order and added new facet to bed quality.
Raimund Renkert <rrenkert@intevation.de>
parents: 6252
diff changeset
19 import org.dive4elements.artifacts.Artifact;
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4825
diff changeset
20 import org.dive4elements.artifacts.CallContext;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4825
diff changeset
21 import org.dive4elements.artifacts.CallMeta;
5867
59ff03ff48f1 River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5863
diff changeset
22 import org.dive4elements.river.artifacts.D4EArtifact;
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4825
diff changeset
23 import org.dive4elements.river.artifacts.access.BedQualityAccess;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4825
diff changeset
24 import org.dive4elements.river.artifacts.model.CalculationResult;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4825
diff changeset
25 import org.dive4elements.river.artifacts.model.DataFacet;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4825
diff changeset
26 import org.dive4elements.river.artifacts.model.DateRange;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4825
diff changeset
27 import org.dive4elements.river.artifacts.model.FacetTypes;
8587
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
28 import org.dive4elements.river.artifacts.model.minfo.BedQualityDataFacet;
6252
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
29 import org.dive4elements.river.artifacts.model.minfo.BedDiameterDataFacet;
8587
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
30 import org.dive4elements.river.artifacts.model.minfo.BedloadDiameterDataFacet;
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4825
diff changeset
31 import org.dive4elements.river.artifacts.model.minfo.BedQualityCalculation;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4825
diff changeset
32 import org.dive4elements.river.artifacts.model.minfo.BedQualityResult;
8587
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
33 import org.dive4elements.river.artifacts.model.minfo.BedQualityResultValue;
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4825
diff changeset
34 import org.dive4elements.river.artifacts.resources.Resources;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4825
diff changeset
35 import org.dive4elements.river.artifacts.states.DefaultState;
3629
f3717e625b0a MINFO: Added states and config for bed quality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
36
8587
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
37 /* TODO: Change data facets to live in the generalized data scheme and
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
38 * obsolute the obfuscated index magic. */
3750
e560a9a10eb1 Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3749
diff changeset
39
3757
e8a90a5ce624 Added facets and chart generator for bed quality calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3750
diff changeset
40 public class BedQualityState extends DefaultState implements FacetTypes {
e8a90a5ce624 Added facets and chart generator for bed quality calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3750
diff changeset
41
e8a90a5ce624 Added facets and chart generator for bed quality calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3750
diff changeset
42 private static final long serialVersionUID = 1L;
e8a90a5ce624 Added facets and chart generator for bed quality calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3750
diff changeset
43
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7987
diff changeset
44 private static final Logger log = Logger
3757
e8a90a5ce624 Added facets and chart generator for bed quality calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3750
diff changeset
45 .getLogger(BedQualityState.class);
3750
e560a9a10eb1 Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3749
diff changeset
46
8587
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
47 /* The suffix to append to interpol facets. */
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
48 public static final String I18N_INTERPOL_SUFFIX = "facet.bedquality.interpol.suffix";
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
49
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
50 /* I18n is in the pattern base.<name>.<type> with the optional suffix .data */
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
51 public static final String I18N_FACET_BED_BASE = "facet.bedquality.bed";
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
52
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
53 /* Data Layers */
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
54 public static final String I18N_FACET_BEDLOAD_DIAMETER_DATA = "facet.bedquality.bed.diameter.bedload.data";
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
55 public static final String I18N_FACET_BED_DIAMETER_DATA_TOPLAYER = "facet.bedquality.bed.diameter.toplayer.data";
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
56 public static final String I18N_FACET_BED_DIAMETER_DATA_SUBLAYER = "facet.bedquality.bed.diameter.sublayer.data";
3767
b4ad8dafe584 Created i18n descriptions for facets in bed quality calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3766
diff changeset
57 public static final String I18N_TOPLAYER = "bedquality.toplayer";
b4ad8dafe584 Created i18n descriptions for facets in bed quality calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3766
diff changeset
58 public static final String I18N_SUBLAYER = "bedquality.sublayer";
b4ad8dafe584 Created i18n descriptions for facets in bed quality calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3766
diff changeset
59
6262
ea6225010871 Set facet activity, have the correct facet order and added new facet to bed quality.
Raimund Renkert <rrenkert@intevation.de>
parents: 6252
diff changeset
60 static {
ea6225010871 Set facet activity, have the correct facet order and added new facet to bed quality.
Raimund Renkert <rrenkert@intevation.de>
parents: 6252
diff changeset
61 // Active/deactivate facets.
ea6225010871 Set facet activity, have the correct facet order and added new facet to bed quality.
Raimund Renkert <rrenkert@intevation.de>
parents: 6252
diff changeset
62 FacetActivity.Registry.getInstance().register(
ea6225010871 Set facet activity, have the correct facet order and added new facet to bed quality.
Raimund Renkert <rrenkert@intevation.de>
parents: 6252
diff changeset
63 "minfo",
ea6225010871 Set facet activity, have the correct facet order and added new facet to bed quality.
Raimund Renkert <rrenkert@intevation.de>
parents: 6252
diff changeset
64 new FacetActivity() {
ea6225010871 Set facet activity, have the correct facet order and added new facet to bed quality.
Raimund Renkert <rrenkert@intevation.de>
parents: 6252
diff changeset
65 @Override
ea6225010871 Set facet activity, have the correct facet order and added new facet to bed quality.
Raimund Renkert <rrenkert@intevation.de>
parents: 6252
diff changeset
66 public Boolean isInitialActive(
ea6225010871 Set facet activity, have the correct facet order and added new facet to bed quality.
Raimund Renkert <rrenkert@intevation.de>
parents: 6252
diff changeset
67 Artifact artifact,
ea6225010871 Set facet activity, have the correct facet order and added new facet to bed quality.
Raimund Renkert <rrenkert@intevation.de>
parents: 6252
diff changeset
68 Facet facet,
ea6225010871 Set facet activity, have the correct facet order and added new facet to bed quality.
Raimund Renkert <rrenkert@intevation.de>
parents: 6252
diff changeset
69 String output
ea6225010871 Set facet activity, have the correct facet order and added new facet to bed quality.
Raimund Renkert <rrenkert@intevation.de>
parents: 6252
diff changeset
70 ) {
ea6225010871 Set facet activity, have the correct facet order and added new facet to bed quality.
Raimund Renkert <rrenkert@intevation.de>
parents: 6252
diff changeset
71 String name = facet.getName();
ea6225010871 Set facet activity, have the correct facet order and added new facet to bed quality.
Raimund Renkert <rrenkert@intevation.de>
parents: 6252
diff changeset
72 if (name.equals(BED_QUALITY_SEDIMENT_DENSITY_TOPLAYER) ||
ea6225010871 Set facet activity, have the correct facet order and added new facet to bed quality.
Raimund Renkert <rrenkert@intevation.de>
parents: 6252
diff changeset
73 name.equals(BED_QUALITY_SEDIMENT_DENSITY_SUBLAYER) ||
ea6225010871 Set facet activity, have the correct facet order and added new facet to bed quality.
Raimund Renkert <rrenkert@intevation.de>
parents: 6252
diff changeset
74 name.equals(BED_DIAMETER_DATA_TOP) ||
ea6225010871 Set facet activity, have the correct facet order and added new facet to bed quality.
Raimund Renkert <rrenkert@intevation.de>
parents: 6252
diff changeset
75 name.equals(BED_DIAMETER_DATA_SUB) ||
ea6225010871 Set facet activity, have the correct facet order and added new facet to bed quality.
Raimund Renkert <rrenkert@intevation.de>
parents: 6252
diff changeset
76 name.equals(BEDLOAD_DIAMETER_DATA)){
ea6225010871 Set facet activity, have the correct facet order and added new facet to bed quality.
Raimund Renkert <rrenkert@intevation.de>
parents: 6252
diff changeset
77 return Boolean.FALSE;
ea6225010871 Set facet activity, have the correct facet order and added new facet to bed quality.
Raimund Renkert <rrenkert@intevation.de>
parents: 6252
diff changeset
78 }
8274
b0d7b0d79d6e Set facet activity for bed quality.
"Tom Gottfried <tom@intevation.de>"
parents: 8202
diff changeset
79 if (name.equals(BED_QUALITY_POROSITY_TOPLAYER) ||
b0d7b0d79d6e Set facet activity for bed quality.
"Tom Gottfried <tom@intevation.de>"
parents: 8202
diff changeset
80 name.equals(BED_QUALITY_POROSITY_SUBLAYER) ||
b0d7b0d79d6e Set facet activity for bed quality.
"Tom Gottfried <tom@intevation.de>"
parents: 8202
diff changeset
81 name.equals(BED_QUALITY_BED_DIAMETER_TOPLAYER) ||
b0d7b0d79d6e Set facet activity for bed quality.
"Tom Gottfried <tom@intevation.de>"
parents: 8202
diff changeset
82 name.equals(BED_QUALITY_BED_DIAMETER_SUBLAYER) ||
b0d7b0d79d6e Set facet activity for bed quality.
"Tom Gottfried <tom@intevation.de>"
parents: 8202
diff changeset
83 name.equals(BED_QUALITY_BEDLOAD_DIAMETER)) {
b0d7b0d79d6e Set facet activity for bed quality.
"Tom Gottfried <tom@intevation.de>"
parents: 8202
diff changeset
84 return Boolean.TRUE;
6262
ea6225010871 Set facet activity, have the correct facet order and added new facet to bed quality.
Raimund Renkert <rrenkert@intevation.de>
parents: 6252
diff changeset
85 }
8274
b0d7b0d79d6e Set facet activity for bed quality.
"Tom Gottfried <tom@intevation.de>"
parents: 8202
diff changeset
86 return null;
6262
ea6225010871 Set facet activity, have the correct facet order and added new facet to bed quality.
Raimund Renkert <rrenkert@intevation.de>
parents: 6252
diff changeset
87 }
ea6225010871 Set facet activity, have the correct facet order and added new facet to bed quality.
Raimund Renkert <rrenkert@intevation.de>
parents: 6252
diff changeset
88 });
ea6225010871 Set facet activity, have the correct facet order and added new facet to bed quality.
Raimund Renkert <rrenkert@intevation.de>
parents: 6252
diff changeset
89 }
ea6225010871 Set facet activity, have the correct facet order and added new facet to bed quality.
Raimund Renkert <rrenkert@intevation.de>
parents: 6252
diff changeset
90
3749
3dcc4feff243 Created the initial structure for MINFO bed quality chart generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3629
diff changeset
91 @Override
5867
59ff03ff48f1 River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5863
diff changeset
92 public Object computeAdvance(D4EArtifact artifact, String hash,
3757
e8a90a5ce624 Added facets and chart generator for bed quality calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3750
diff changeset
93 CallContext context, List<Facet> facets, Object old) {
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7987
diff changeset
94 log.debug("BedQualityState.computeAdvance");
3629
f3717e625b0a MINFO: Added states and config for bed quality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
95
3749
3dcc4feff243 Created the initial structure for MINFO bed quality chart generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3629
diff changeset
96 List<Facet> newFacets = new ArrayList<Facet>();
3dcc4feff243 Created the initial structure for MINFO bed quality chart generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3629
diff changeset
97
4825
f8217f1fef2e ExtremeAccess, RangeAccess and callers: Refactored, moved getStep to RangeAccess.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3785
diff changeset
98 BedQualityAccess access = new BedQualityAccess(artifact, context);
3749
3dcc4feff243 Created the initial structure for MINFO bed quality chart generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3629
diff changeset
99
3757
e8a90a5ce624 Added facets and chart generator for bed quality calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3750
diff changeset
100 CalculationResult res = old instanceof CalculationResult ? (CalculationResult) old
3749
3dcc4feff243 Created the initial structure for MINFO bed quality chart generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3629
diff changeset
101 : new BedQualityCalculation().calculate(access);
3dcc4feff243 Created the initial structure for MINFO bed quality chart generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3629
diff changeset
102
3dcc4feff243 Created the initial structure for MINFO bed quality chart generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3629
diff changeset
103 if (facets == null || res == null) {
3dcc4feff243 Created the initial structure for MINFO bed quality chart generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3629
diff changeset
104 return res;
3dcc4feff243 Created the initial structure for MINFO bed quality chart generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3629
diff changeset
105 }
3dcc4feff243 Created the initial structure for MINFO bed quality chart generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3629
diff changeset
106
3762
0c978a80726a Splitted up facets for porosity and density into two facets: a toplayer and a sublayer facet for each. BedQualityState will now create facets based on the calculation result.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3761
diff changeset
107 BedQualityResult[] results = (BedQualityResult[]) res.getData();
3757
e8a90a5ce624 Added facets and chart generator for bed quality calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3750
diff changeset
108
3762
0c978a80726a Splitted up facets for porosity and density into two facets: a toplayer and a sublayer facet for each. BedQualityState will now create facets based on the calculation result.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3761
diff changeset
109 if (results == null || results.length == 0) {
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7987
diff changeset
110 log.warn("Calculation computed no results!");
3762
0c978a80726a Splitted up facets for porosity and density into two facets: a toplayer and a sublayer facet for each. BedQualityState will now create facets based on the calculation result.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3761
diff changeset
111 return res;
0c978a80726a Splitted up facets for porosity and density into two facets: a toplayer and a sublayer facet for each. BedQualityState will now create facets based on the calculation result.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3761
diff changeset
112 }
3757
e8a90a5ce624 Added facets and chart generator for bed quality calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3750
diff changeset
113
3767
b4ad8dafe584 Created i18n descriptions for facets in bed quality calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3766
diff changeset
114 generateFacets(context, newFacets, results, getID(), hash);
8587
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
115 generateDataFacets(context, newFacets, access, getID(), hash);
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7987
diff changeset
116 log.debug("Created " + newFacets.size() + " new Facets.");
3749
3dcc4feff243 Created the initial structure for MINFO bed quality chart generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3629
diff changeset
117 facets.addAll(newFacets);
3dcc4feff243 Created the initial structure for MINFO bed quality chart generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3629
diff changeset
118
3dcc4feff243 Created the initial structure for MINFO bed quality chart generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3629
diff changeset
119 return res;
3dcc4feff243 Created the initial structure for MINFO bed quality chart generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3629
diff changeset
120 }
3762
0c978a80726a Splitted up facets for porosity and density into two facets: a toplayer and a sublayer facet for each. BedQualityState will now create facets based on the calculation result.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3761
diff changeset
121
8587
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
122 private int generateIndex(String diameter) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
123 int d = 0;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
124 if(diameter.equals("d10")) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
125 d = 1;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
126 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
127 else if (diameter.equals("d16")) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
128 d = 2;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
129 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
130 else if (diameter.equals("d20")) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
131 d = 3;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
132 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
133 else if (diameter.equals("d25")) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
134 d = 4;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
135 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
136 else if (diameter.equals("d30")) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
137 d = 5;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
138 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
139 else if (diameter.equals("d40")) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
140 d = 6;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
141 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
142 else if (diameter.equals("d50")) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
143 d = 7;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
144 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
145 else if (diameter.equals("d60")) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
146 d = 8;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
147 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
148 else if (diameter.equals("d70")) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
149 d = 9;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
150 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
151 else if (diameter.equals("d75")) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
152 d = 10;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
153 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
154 else if (diameter.equals("d80")) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
155 d = 11;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
156 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
157 else if (diameter.equals("d84")) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
158 d = 12;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
159 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
160 else if (diameter.equals("d90")) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
161 d = 13;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
162 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
163 else if (diameter.equals("dmin")) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
164 d = 14;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
165 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
166 else if (diameter.equals("dmax")) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
167 d = 15;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
168 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
169 else if (diameter.equals("dm")) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
170 d = 16;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
171 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
172 int ndx = d << 1;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
173 return ndx;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
174 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
175
6252
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
176 private void generateDataFacets(
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
177 CallContext context,
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
178 List<Facet> newFacets,
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
179 BedQualityAccess access,
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
180 String stateId,
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
181 String hash) {
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
182 List<String> diameters = access.getBedDiameter();
6262
ea6225010871 Set facet activity, have the correct facet order and added new facet to bed quality.
Raimund Renkert <rrenkert@intevation.de>
parents: 6252
diff changeset
183 List<String> loadDiameters = access.getBedloadDiameter();
6252
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
184 List<DateRange> ranges = access.getDateRanges();
7254
fe32a7f9655e Reduce usage of careless 'for (int i = 0; i < x.size(); i++)' pattern.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6262
diff changeset
185 for (int i = 0, R = ranges.size(); i < R; i++) {
6252
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
186 DateRange range = ranges.get(i);
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
187 for (String diameter: diameters) {
6262
ea6225010871 Set facet activity, have the correct facet order and added new facet to bed quality.
Raimund Renkert <rrenkert@intevation.de>
parents: 6252
diff changeset
188 int ndxTop = generateIndex(diameter);
8587
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
189 int ndxSub = ndxTop;
6262
ea6225010871 Set facet activity, have the correct facet order and added new facet to bed quality.
Raimund Renkert <rrenkert@intevation.de>
parents: 6252
diff changeset
190 ndxTop += 1;
ea6225010871 Set facet activity, have the correct facet order and added new facet to bed quality.
Raimund Renkert <rrenkert@intevation.de>
parents: 6252
diff changeset
191 ndxTop = ndxTop << 3;
ea6225010871 Set facet activity, have the correct facet order and added new facet to bed quality.
Raimund Renkert <rrenkert@intevation.de>
parents: 6252
diff changeset
192 ndxSub = ndxSub << 3;
ea6225010871 Set facet activity, have the correct facet order and added new facet to bed quality.
Raimund Renkert <rrenkert@intevation.de>
parents: 6252
diff changeset
193 ndxTop += i;
ea6225010871 Set facet activity, have the correct facet order and added new facet to bed quality.
Raimund Renkert <rrenkert@intevation.de>
parents: 6252
diff changeset
194 ndxSub += i;
6252
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
195 String toplayer =
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
196 Resources.getMsg(
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
197 context.getMeta(), I18N_TOPLAYER, I18N_TOPLAYER);
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
198 String sublayer =
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
199 Resources.getMsg(
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
200 context.getMeta(), I18N_SUBLAYER, I18N_SUBLAYER);
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
201 //toplayer
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
202 newFacets.add(new BedDiameterDataFacet(
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
203 ndxTop,
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
204 BED_DIAMETER_DATA_TOP,
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
205 Resources.getMsg(
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
206 context.getMeta(),
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
207 I18N_FACET_BED_DIAMETER_DATA_TOPLAYER,
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
208 I18N_FACET_BED_DIAMETER_DATA_TOPLAYER,
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
209 new Object[] { diameter.toUpperCase(),
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
210 range.getFrom(), range.getTo(), toplayer}),
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
211 ComputeType.ADVANCE,
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
212 stateId,
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
213 hash));
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
214 //sublayer
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
215 newFacets.add(new BedDiameterDataFacet(
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
216 ndxSub,
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
217 BED_DIAMETER_DATA_SUB,
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
218 Resources.getMsg(
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
219 context.getMeta(),
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
220 I18N_FACET_BED_DIAMETER_DATA_TOPLAYER,
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
221 I18N_FACET_BED_DIAMETER_DATA_TOPLAYER,
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
222 new Object[] { diameter.toUpperCase(),
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
223 range.getFrom(), range.getTo(), sublayer}),
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
224 ComputeType.ADVANCE,
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
225 stateId,
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
226 hash));
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
227 }
6262
ea6225010871 Set facet activity, have the correct facet order and added new facet to bed quality.
Raimund Renkert <rrenkert@intevation.de>
parents: 6252
diff changeset
228 for (String loadDiameter: loadDiameters) {
ea6225010871 Set facet activity, have the correct facet order and added new facet to bed quality.
Raimund Renkert <rrenkert@intevation.de>
parents: 6252
diff changeset
229 int ndx = generateIndex(loadDiameter);
ea6225010871 Set facet activity, have the correct facet order and added new facet to bed quality.
Raimund Renkert <rrenkert@intevation.de>
parents: 6252
diff changeset
230 ndx = ndx << 3;
ea6225010871 Set facet activity, have the correct facet order and added new facet to bed quality.
Raimund Renkert <rrenkert@intevation.de>
parents: 6252
diff changeset
231 ndx += i;
ea6225010871 Set facet activity, have the correct facet order and added new facet to bed quality.
Raimund Renkert <rrenkert@intevation.de>
parents: 6252
diff changeset
232 newFacets.add(new BedloadDiameterDataFacet(
ea6225010871 Set facet activity, have the correct facet order and added new facet to bed quality.
Raimund Renkert <rrenkert@intevation.de>
parents: 6252
diff changeset
233 ndx,
ea6225010871 Set facet activity, have the correct facet order and added new facet to bed quality.
Raimund Renkert <rrenkert@intevation.de>
parents: 6252
diff changeset
234 BEDLOAD_DIAMETER_DATA,
ea6225010871 Set facet activity, have the correct facet order and added new facet to bed quality.
Raimund Renkert <rrenkert@intevation.de>
parents: 6252
diff changeset
235 Resources.getMsg(
ea6225010871 Set facet activity, have the correct facet order and added new facet to bed quality.
Raimund Renkert <rrenkert@intevation.de>
parents: 6252
diff changeset
236 context.getMeta(),
ea6225010871 Set facet activity, have the correct facet order and added new facet to bed quality.
Raimund Renkert <rrenkert@intevation.de>
parents: 6252
diff changeset
237 I18N_FACET_BEDLOAD_DIAMETER_DATA,
ea6225010871 Set facet activity, have the correct facet order and added new facet to bed quality.
Raimund Renkert <rrenkert@intevation.de>
parents: 6252
diff changeset
238 I18N_FACET_BEDLOAD_DIAMETER_DATA,
ea6225010871 Set facet activity, have the correct facet order and added new facet to bed quality.
Raimund Renkert <rrenkert@intevation.de>
parents: 6252
diff changeset
239 new Object[] { loadDiameter.toUpperCase(),
ea6225010871 Set facet activity, have the correct facet order and added new facet to bed quality.
Raimund Renkert <rrenkert@intevation.de>
parents: 6252
diff changeset
240 range.getFrom(), range.getTo()}),
ea6225010871 Set facet activity, have the correct facet order and added new facet to bed quality.
Raimund Renkert <rrenkert@intevation.de>
parents: 6252
diff changeset
241 ComputeType.ADVANCE,
ea6225010871 Set facet activity, have the correct facet order and added new facet to bed quality.
Raimund Renkert <rrenkert@intevation.de>
parents: 6252
diff changeset
242 stateId,
ea6225010871 Set facet activity, have the correct facet order and added new facet to bed quality.
Raimund Renkert <rrenkert@intevation.de>
parents: 6252
diff changeset
243 hash));
ea6225010871 Set facet activity, have the correct facet order and added new facet to bed quality.
Raimund Renkert <rrenkert@intevation.de>
parents: 6252
diff changeset
244 }
6252
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
245 }
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
246 }
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
247
8587
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
248
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
249 protected String getFacetName(BedQualityResultValue value) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
250 /* basename + name or "diameter" + .type */
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
251 return BED_QUALITY_DATA_FACET + "." +
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
252 (value.isDiameterResult() ? "diameter" : value.getName()) + "." +
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
253 value.getType();
6252
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
254 }
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
255
3767
b4ad8dafe584 Created i18n descriptions for facets in bed quality calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3766
diff changeset
256 protected void generateFacets(CallContext context, List<Facet> newFacets,
3762
0c978a80726a Splitted up facets for porosity and density into two facets: a toplayer and a sublayer facet for each. BedQualityState will now create facets based on the calculation result.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3761
diff changeset
257 BedQualityResult[] results, String stateId, String hash) {
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7987
diff changeset
258 log.debug("BedQualityState.generateFacets");
3762
0c978a80726a Splitted up facets for porosity and density into two facets: a toplayer and a sublayer facet for each. BedQualityState will now create facets based on the calculation result.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3761
diff changeset
259
3767
b4ad8dafe584 Created i18n descriptions for facets in bed quality calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3766
diff changeset
260 CallMeta meta = context.getMeta();
b4ad8dafe584 Created i18n descriptions for facets in bed quality calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3766
diff changeset
261
3785
a5f65e8983be Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3784
diff changeset
262 newFacets.add(new DataFacet(CSV, "CSV data", ComputeType.ADVANCE, hash, id));
3762
0c978a80726a Splitted up facets for porosity and density into two facets: a toplayer and a sublayer facet for each. BedQualityState will now create facets based on the calculation result.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3761
diff changeset
263 for (int idx = 0; idx < results.length; idx++) {
0c978a80726a Splitted up facets for porosity and density into two facets: a toplayer and a sublayer facet for each. BedQualityState will now create facets based on the calculation result.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3761
diff changeset
264 BedQualityResult result = results[idx];
3784
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3772
diff changeset
265 DateRange range = result.getDateRange();
8587
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
266 int i = 0;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
267 for (BedQualityResultValue value: result.getValues()) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
268 newFacets.add(new BedQualityDataFacet((idx << 8) + i++,
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
269 getFacetName(value),
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
270 getFacetDescription(meta, range, value),
3784
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3772
diff changeset
271 ComputeType.ADVANCE,
8587
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
272 stateId, hash, value.getName(), value.getType()));
3762
0c978a80726a Splitted up facets for porosity and density into two facets: a toplayer and a sublayer facet for each. BedQualityState will now create facets based on the calculation result.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3761
diff changeset
273 }
0c978a80726a Splitted up facets for porosity and density into two facets: a toplayer and a sublayer facet for each. BedQualityState will now create facets based on the calculation result.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3761
diff changeset
274 }
0c978a80726a Splitted up facets for porosity and density into two facets: a toplayer and a sublayer facet for each. BedQualityState will now create facets based on the calculation result.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3761
diff changeset
275 }
3767
b4ad8dafe584 Created i18n descriptions for facets in bed quality calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3766
diff changeset
276
8587
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
277 protected String getFacetDescription(CallMeta meta,
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
278 DateRange range,
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
279 BedQualityResultValue value) {
3767
b4ad8dafe584 Created i18n descriptions for facets in bed quality calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3766
diff changeset
280 Date from = range != null ? range.getFrom() : new Date();
b4ad8dafe584 Created i18n descriptions for facets in bed quality calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3766
diff changeset
281 Date to = range != null ? range.getTo() : new Date();
3772
5a8f8fd5310c The usual wipe after for ill configured Eclipses.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3767
diff changeset
282
8587
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
283 final String layerSuffix =
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
284 Resources.getMsg(meta, "bedquality." + value.getType(), "");
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
285
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
286 /* This could probably be unified with the facet name */
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
287 final String i18n = I18N_FACET_BED_BASE + "." +
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
288 (value.isDiameterResult() ? "diameter" : value.getName()) + "." +
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
289 value.getType();
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
290
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
291 if (value.isDiameterResult()) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
292 /* Include the diameter in the description */
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
293 return Resources.getMsg(meta, i18n, i18n, new Object[] {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
294 value.getName().toUpperCase(), from, to, layerSuffix });
8585
e9343e4c9ae0 Reduce duplicated functions to obtain layer descritpions for bedquality
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8274
diff changeset
295 } else {
8587
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
296 return Resources.getMsg(meta, i18n, i18n, new Object[] { from, to, layerSuffix });
8585
e9343e4c9ae0 Reduce duplicated functions to obtain layer descritpions for bedquality
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8274
diff changeset
297 }
3767
b4ad8dafe584 Created i18n descriptions for facets in bed quality calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3766
diff changeset
298 }
3629
f3717e625b0a MINFO: Added states and config for bed quality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
299 }

http://dive4elements.wald.intevation.org