annotate artifacts/src/main/java/org/dive4elements/river/artifacts/states/minfo/BedQualityState.java @ 8653:dbec49147f54

(issue1755) Do not create interpolated themes and disable export of non interpolatable data. Due to the fact that data can contain NaN's which will be filtered out before creating the interpolator this requires the actual check for interpolatable data when data is set in the ResultValue
author Andre Heinecke <andre.heinecke@intevation.de>
date Wed, 01 Apr 2015 17:10:03 +0200
parents 36faef4f8acb
children 4054c7fce43e
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()));
8653
dbec49147f54 (issue1755) Do not create interpolated themes and disable export of non interpolatable data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8592
diff changeset
274 if (value.isInterpolateable()) {
dbec49147f54 (issue1755) Do not create interpolated themes and disable export of non interpolatable data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8592
diff changeset
275 newFacets.add(new BedQualityInterpolFacet((idx << 8) + i++,
dbec49147f54 (issue1755) Do not create interpolated themes and disable export of non interpolatable data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8592
diff changeset
276 getFacetName(value) + ".interpol",
dbec49147f54 (issue1755) Do not create interpolated themes and disable export of non interpolatable data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8592
diff changeset
277 getFacetInterpolDescription(meta, range, value),
dbec49147f54 (issue1755) Do not create interpolated themes and disable export of non interpolatable data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8592
diff changeset
278 ComputeType.ADVANCE,
dbec49147f54 (issue1755) Do not create interpolated themes and disable export of non interpolatable data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8592
diff changeset
279 stateId, hash, value.getName(), value.getType()));
dbec49147f54 (issue1755) Do not create interpolated themes and disable export of non interpolatable data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8592
diff changeset
280 }
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
281 }
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
282 }
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
283 }
3767
b4ad8dafe584 Created i18n descriptions for facets in bed quality calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3766
diff changeset
284
8592
36faef4f8acb (issue1755) Add interpolated facets and update themes accordingly
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8587
diff changeset
285 protected String getFacetInterpolDescription(CallMeta meta,
36faef4f8acb (issue1755) Add interpolated facets and update themes accordingly
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8587
diff changeset
286 DateRange range,
36faef4f8acb (issue1755) Add interpolated facets and update themes accordingly
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8587
diff changeset
287 BedQualityResultValue value) {
36faef4f8acb (issue1755) Add interpolated facets and update themes accordingly
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8587
diff changeset
288 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
289 /* 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
290 return part1 + " " + Resources.getMsg(meta,
36faef4f8acb (issue1755) Add interpolated facets and update themes accordingly
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8587
diff changeset
291 I18N_INTERPOL_SUFFIX,
36faef4f8acb (issue1755) Add interpolated facets and update themes accordingly
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8587
diff changeset
292 I18N_INTERPOL_SUFFIX,
36faef4f8acb (issue1755) Add interpolated facets and update themes accordingly
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8587
diff changeset
293 new Object[] {});
36faef4f8acb (issue1755) Add interpolated facets and update themes accordingly
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8587
diff changeset
294 }
36faef4f8acb (issue1755) Add interpolated facets and update themes accordingly
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8587
diff changeset
295
36faef4f8acb (issue1755) Add interpolated facets and update themes accordingly
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8587
diff changeset
296
8587
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
297 protected String getFacetDescription(CallMeta meta,
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
298 DateRange range,
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
299 BedQualityResultValue value) {
3767
b4ad8dafe584 Created i18n descriptions for facets in bed quality calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3766
diff changeset
300 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
301 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
302
8587
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
303 final String layerSuffix =
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
304 Resources.getMsg(meta, "bedquality." + value.getType(), "");
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
305
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
306 /* 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
307 final String i18n = I18N_FACET_BED_BASE + "." +
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
308 (value.isDiameterResult() ? "diameter" : value.getName()) + "." +
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
309 value.getType();
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
310
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
311 if (value.isDiameterResult()) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
312 /* Include the diameter in the description */
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
313 return Resources.getMsg(meta, i18n, i18n, new Object[] {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
314 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
315 } else {
8587
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
316 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
317 }
3767
b4ad8dafe584 Created i18n descriptions for facets in bed quality calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3766
diff changeset
318 }
3629
f3717e625b0a MINFO: Added states and config for bed quality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
319 }

http://dive4elements.wald.intevation.org