annotate artifacts/src/main/java/org/dive4elements/river/artifacts/states/minfo/BedQualityState.java @ 8592:36faef4f8acb

(issue1755) Add interpolated facets and update themes accordingly
author Andre Heinecke <andre.heinecke@intevation.de>
date Thu, 19 Mar 2015 13:36:38 +0100
parents 07c9ac22f611
children dbec49147f54
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;
8592
36faef4f8acb (issue1755) Add interpolated facets and update themes accordingly
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8587
diff changeset
29 import org.dive4elements.river.artifacts.model.minfo.BedQualityInterpolFacet;
6252
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
30 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
31 import org.dive4elements.river.artifacts.model.minfo.BedloadDiameterDataFacet;
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4825
diff changeset
32 import org.dive4elements.river.artifacts.model.minfo.BedQualityCalculation;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4825
diff changeset
33 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
34 import org.dive4elements.river.artifacts.model.minfo.BedQualityResultValue;
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4825
diff changeset
35 import org.dive4elements.river.artifacts.resources.Resources;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4825
diff changeset
36 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
37
8587
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
38 /* 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
39 * obsolute the obfuscated index magic. */
3750
e560a9a10eb1 Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3749
diff changeset
40
3757
e8a90a5ce624 Added facets and chart generator for bed quality calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3750
diff changeset
41 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
42
e8a90a5ce624 Added facets and chart generator for bed quality calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3750
diff changeset
43 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
44
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7987
diff changeset
45 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
46 .getLogger(BedQualityState.class);
3750
e560a9a10eb1 Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3749
diff changeset
47
8587
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
48 /* The suffix to append to interpol facets. */
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
49 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
50
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
51 /* 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
52 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
53
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
54 /* Data Layers */
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
55 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
56 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
57 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
58 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
59 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
60
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
61 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
62 // 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
63 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
64 "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
65 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
66 @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
67 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
68 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
69 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
70 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
71 ) {
8592
36faef4f8acb (issue1755) Add interpolated facets and update themes accordingly
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8587
diff changeset
72 String name = facet.getName().replace(".interpol","");
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
73 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
74 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
75 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
76 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
77 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
78 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
79 }
8274
b0d7b0d79d6e Set facet activity for bed quality.
"Tom Gottfried <tom@intevation.de>"
parents: 8202
diff changeset
80 if (name.equals(BED_QUALITY_POROSITY_TOPLAYER) ||
b0d7b0d79d6e Set facet activity for bed quality.
"Tom Gottfried <tom@intevation.de>"
parents: 8202
diff changeset
81 name.equals(BED_QUALITY_POROSITY_SUBLAYER) ||
b0d7b0d79d6e Set facet activity for bed quality.
"Tom Gottfried <tom@intevation.de>"
parents: 8202
diff changeset
82 name.equals(BED_QUALITY_BED_DIAMETER_TOPLAYER) ||
b0d7b0d79d6e Set facet activity for bed quality.
"Tom Gottfried <tom@intevation.de>"
parents: 8202
diff changeset
83 name.equals(BED_QUALITY_BED_DIAMETER_SUBLAYER) ||
b0d7b0d79d6e Set facet activity for bed quality.
"Tom Gottfried <tom@intevation.de>"
parents: 8202
diff changeset
84 name.equals(BED_QUALITY_BEDLOAD_DIAMETER)) {
b0d7b0d79d6e Set facet activity for bed quality.
"Tom Gottfried <tom@intevation.de>"
parents: 8202
diff changeset
85 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
86 }
8274
b0d7b0d79d6e Set facet activity for bed quality.
"Tom Gottfried <tom@intevation.de>"
parents: 8202
diff changeset
87 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
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 }
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
91
3749
3dcc4feff243 Created the initial structure for MINFO bed quality chart generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3629
diff changeset
92 @Override
5867
59ff03ff48f1 River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5863
diff changeset
93 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
94 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
95 log.debug("BedQualityState.computeAdvance");
3629
f3717e625b0a MINFO: Added states and config for bed quality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
96
3749
3dcc4feff243 Created the initial structure for MINFO bed quality chart generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3629
diff changeset
97 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
98
4825
f8217f1fef2e ExtremeAccess, RangeAccess and callers: Refactored, moved getStep to RangeAccess.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3785
diff changeset
99 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
100
3757
e8a90a5ce624 Added facets and chart generator for bed quality calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3750
diff changeset
101 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
102 : 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
103
3dcc4feff243 Created the initial structure for MINFO bed quality chart generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3629
diff changeset
104 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
105 return res;
3dcc4feff243 Created the initial structure for MINFO bed quality chart generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3629
diff changeset
106 }
3dcc4feff243 Created the initial structure for MINFO bed quality chart generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3629
diff changeset
107
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
108 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
109
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
110 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
111 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
112 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
113 }
3757
e8a90a5ce624 Added facets and chart generator for bed quality calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3750
diff changeset
114
3767
b4ad8dafe584 Created i18n descriptions for facets in bed quality calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3766
diff changeset
115 generateFacets(context, newFacets, results, getID(), hash);
8587
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
116 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
117 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
118 facets.addAll(newFacets);
3dcc4feff243 Created the initial structure for MINFO bed quality chart generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3629
diff changeset
119
3dcc4feff243 Created the initial structure for MINFO bed quality chart generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3629
diff changeset
120 return res;
3dcc4feff243 Created the initial structure for MINFO bed quality chart generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3629
diff changeset
121 }
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
122
8587
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
123 private int generateIndex(String diameter) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
124 int d = 0;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
125 if(diameter.equals("d10")) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
126 d = 1;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
127 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
128 else if (diameter.equals("d16")) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
129 d = 2;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
130 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
131 else if (diameter.equals("d20")) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
132 d = 3;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
133 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
134 else if (diameter.equals("d25")) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
135 d = 4;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
136 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
137 else if (diameter.equals("d30")) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
138 d = 5;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
139 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
140 else if (diameter.equals("d40")) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
141 d = 6;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
142 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
143 else if (diameter.equals("d50")) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
144 d = 7;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
145 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
146 else if (diameter.equals("d60")) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
147 d = 8;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
148 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
149 else if (diameter.equals("d70")) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
150 d = 9;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
151 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
152 else if (diameter.equals("d75")) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
153 d = 10;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
154 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
155 else if (diameter.equals("d80")) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
156 d = 11;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
157 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
158 else if (diameter.equals("d84")) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
159 d = 12;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
160 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
161 else if (diameter.equals("d90")) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
162 d = 13;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
163 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
164 else if (diameter.equals("dmin")) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
165 d = 14;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
166 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
167 else if (diameter.equals("dmax")) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
168 d = 15;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
169 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
170 else if (diameter.equals("dm")) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
171 d = 16;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
172 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
173 int ndx = d << 1;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
174 return ndx;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
175 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
176
6252
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
177 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
178 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
179 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
180 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
181 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
182 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
183 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
184 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
185 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
186 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
187 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
188 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
189 int ndxTop = generateIndex(diameter);
8587
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
190 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
191 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
192 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
193 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
194 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
195 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
196 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
197 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
198 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
199 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
200 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
201 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
202 //toplayer
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
203 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
204 ndxTop,
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
205 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
206 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
207 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
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 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
210 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
211 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
212 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
213 stateId,
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
214 hash));
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
215 //sublayer
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
216 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
217 ndxSub,
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
218 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
219 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
220 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
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 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
223 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
224 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
225 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
226 stateId,
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
227 hash));
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
228 }
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
229 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
230 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
231 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
232 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
233 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
234 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
235 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
236 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
237 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
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 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
240 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
241 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
242 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
243 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
244 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
245 }
6252
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 }
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
248
8587
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
249
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
250 protected String getFacetName(BedQualityResultValue value) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
251 /* basename + name or "diameter" + .type */
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
252 return BED_QUALITY_DATA_FACET + "." +
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
253 (value.isDiameterResult() ? "diameter" : value.getName()) + "." +
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
254 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
255 }
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
256
3767
b4ad8dafe584 Created i18n descriptions for facets in bed quality calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3766
diff changeset
257 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
258 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
259 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
260
3767
b4ad8dafe584 Created i18n descriptions for facets in bed quality calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3766
diff changeset
261 CallMeta meta = context.getMeta();
b4ad8dafe584 Created i18n descriptions for facets in bed quality calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3766
diff changeset
262
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
263 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
264 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
265 BedQualityResult result = results[idx];
3784
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3772
diff changeset
266 DateRange range = result.getDateRange();
8587
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
267 int i = 0;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
268 for (BedQualityResultValue value: result.getValues()) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
269 newFacets.add(new BedQualityDataFacet((idx << 8) + i++,
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
270 getFacetName(value),
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
271 getFacetDescription(meta, range, value),
3784
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3772
diff changeset
272 ComputeType.ADVANCE,
8587
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
273 stateId, hash, value.getName(), value.getType()));
8592
36faef4f8acb (issue1755) Add interpolated facets and update themes accordingly
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8587
diff changeset
274 newFacets.add(new BedQualityInterpolFacet((idx << 8) + i++,
36faef4f8acb (issue1755) Add interpolated facets and update themes accordingly
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8587
diff changeset
275 getFacetName(value) + ".interpol",
36faef4f8acb (issue1755) Add interpolated facets and update themes accordingly
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8587
diff changeset
276 getFacetInterpolDescription(meta, range, value),
36faef4f8acb (issue1755) Add interpolated facets and update themes accordingly
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8587
diff changeset
277 ComputeType.ADVANCE,
36faef4f8acb (issue1755) Add interpolated facets and update themes accordingly
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8587
diff changeset
278 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
279 }
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
280 }
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
281 }
3767
b4ad8dafe584 Created i18n descriptions for facets in bed quality calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3766
diff changeset
282
8592
36faef4f8acb (issue1755) Add interpolated facets and update themes accordingly
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8587
diff changeset
283 protected String getFacetInterpolDescription(CallMeta meta,
36faef4f8acb (issue1755) Add interpolated facets and update themes accordingly
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8587
diff changeset
284 DateRange range,
36faef4f8acb (issue1755) Add interpolated facets and update themes accordingly
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8587
diff changeset
285 BedQualityResultValue value) {
36faef4f8acb (issue1755) Add interpolated facets and update themes accordingly
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8587
diff changeset
286 String part1 = getFacetDescription(meta, range, value);
36faef4f8acb (issue1755) Add interpolated facets and update themes accordingly
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8587
diff changeset
287 /* We could add a step description here */
36faef4f8acb (issue1755) Add interpolated facets and update themes accordingly
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8587
diff changeset
288 return part1 + " " + Resources.getMsg(meta,
36faef4f8acb (issue1755) Add interpolated facets and update themes accordingly
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8587
diff changeset
289 I18N_INTERPOL_SUFFIX,
36faef4f8acb (issue1755) Add interpolated facets and update themes accordingly
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8587
diff changeset
290 I18N_INTERPOL_SUFFIX,
36faef4f8acb (issue1755) Add interpolated facets and update themes accordingly
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8587
diff changeset
291 new Object[] {});
36faef4f8acb (issue1755) Add interpolated facets and update themes accordingly
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8587
diff changeset
292 }
36faef4f8acb (issue1755) Add interpolated facets and update themes accordingly
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8587
diff changeset
293
36faef4f8acb (issue1755) Add interpolated facets and update themes accordingly
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8587
diff changeset
294
8587
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
295 protected String getFacetDescription(CallMeta meta,
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
296 DateRange range,
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
297 BedQualityResultValue value) {
3767
b4ad8dafe584 Created i18n descriptions for facets in bed quality calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3766
diff changeset
298 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
299 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
300
8587
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
301 final String layerSuffix =
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
302 Resources.getMsg(meta, "bedquality." + value.getType(), "");
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
303
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
304 /* 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
305 final String i18n = I18N_FACET_BED_BASE + "." +
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
306 (value.isDiameterResult() ? "diameter" : value.getName()) + "." +
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
307 value.getType();
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
308
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
309 if (value.isDiameterResult()) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
310 /* Include the diameter in the description */
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
311 return Resources.getMsg(meta, i18n, i18n, new Object[] {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
312 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
313 } else {
8587
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
314 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
315 }
3767
b4ad8dafe584 Created i18n descriptions for facets in bed quality calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3766
diff changeset
316 }
3629
f3717e625b0a MINFO: Added states and config for bed quality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
317 }

http://dive4elements.wald.intevation.org