annotate artifacts/src/main/java/org/dive4elements/river/artifacts/states/minfo/BedQualityState.java @ 9390:f575ff573cbb

"Name der Peilung" columname minfo.
author gernotbelger
date Thu, 09 Aug 2018 15:22:31 +0200
parents 5e38e2924c07
children 0a5239a1e46e
rev   line source
5863
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
2 * Software engineering by Intevation GmbH
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
3 *
5994
af13ceeba52a Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 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;
8657
4054c7fce43e (issue1755) Add problem / report handling to BedQualityCalculation
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8653
diff changeset
25 import org.dive4elements.river.artifacts.model.Calculation;
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4825
diff changeset
26 import org.dive4elements.river.artifacts.model.DataFacet;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4825
diff changeset
27 import org.dive4elements.river.artifacts.model.DateRange;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4825
diff changeset
28 import org.dive4elements.river.artifacts.model.FacetTypes;
8657
4054c7fce43e (issue1755) Add problem / report handling to BedQualityCalculation
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8653
diff changeset
29 import org.dive4elements.river.artifacts.model.ReportFacet;
8587
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
30 import org.dive4elements.river.artifacts.model.minfo.BedQualityDataFacet;
8592
36faef4f8acb (issue1755) Add interpolated facets and update themes accordingly
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8587
diff changeset
31 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
32 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
33 import org.dive4elements.river.artifacts.model.minfo.BedloadDiameterDataFacet;
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4825
diff changeset
34 import org.dive4elements.river.artifacts.model.minfo.BedQualityCalculation;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4825
diff changeset
35 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
36 import org.dive4elements.river.artifacts.model.minfo.BedQualityResultValue;
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4825
diff changeset
37 import org.dive4elements.river.artifacts.resources.Resources;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4825
diff changeset
38 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
39
8587
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
40 /* 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
41 * obsolute the obfuscated index magic. */
3750
e560a9a10eb1 Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3749
diff changeset
42
3757
e8a90a5ce624 Added facets and chart generator for bed quality calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3750
diff changeset
43 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
44
e8a90a5ce624 Added facets and chart generator for bed quality calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3750
diff changeset
45 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
46
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7987
diff changeset
47 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
48 .getLogger(BedQualityState.class);
3750
e560a9a10eb1 Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3749
diff changeset
49
8587
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
50 /* The suffix to append to interpol facets. */
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8678
diff changeset
51 public static final String I18N_INTERPOL_SUFFIX =
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8678
diff changeset
52 "facet.bedquality.interpol.suffix";
8587
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
53
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8678
diff changeset
54 /* I18n is in the pattern base.<name>.<type> with optional suffix .data */
8587
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
55 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
56
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
57 /* Data Layers */
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8678
diff changeset
58 public static final String I18N_FACET_BEDLOAD_DIAMETER_DATA =
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8678
diff changeset
59 "facet.bedquality.bed.diameter.bedload.data";
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8678
diff changeset
60 public static final String I18N_FACET_BED_DIAMETER_DATA_TOPLAYER =
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8678
diff changeset
61 "facet.bedquality.bed.diameter.toplayer.data";
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8678
diff changeset
62 public static final String I18N_FACET_BED_DIAMETER_DATA_SUBLAYER =
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8678
diff changeset
63 "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
64 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
65 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
66
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
67 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
68 // 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
69 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
70 "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
71 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
72 @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
73 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
74 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
75 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
76 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
77 ) {
8592
36faef4f8acb (issue1755) Add interpolated facets and update themes accordingly
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8587
diff changeset
78 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
79 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
80 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
81 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
82 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
83 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
84 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
85 }
8274
b0d7b0d79d6e Set facet activity for bed quality.
"Tom Gottfried <tom@intevation.de>"
parents: 8202
diff changeset
86 if (name.equals(BED_QUALITY_POROSITY_TOPLAYER) ||
b0d7b0d79d6e Set facet activity for bed quality.
"Tom Gottfried <tom@intevation.de>"
parents: 8202
diff changeset
87 name.equals(BED_QUALITY_POROSITY_SUBLAYER) ||
b0d7b0d79d6e Set facet activity for bed quality.
"Tom Gottfried <tom@intevation.de>"
parents: 8202
diff changeset
88 name.equals(BED_QUALITY_BED_DIAMETER_TOPLAYER) ||
b0d7b0d79d6e Set facet activity for bed quality.
"Tom Gottfried <tom@intevation.de>"
parents: 8202
diff changeset
89 name.equals(BED_QUALITY_BED_DIAMETER_SUBLAYER) ||
b0d7b0d79d6e Set facet activity for bed quality.
"Tom Gottfried <tom@intevation.de>"
parents: 8202
diff changeset
90 name.equals(BED_QUALITY_BEDLOAD_DIAMETER)) {
b0d7b0d79d6e Set facet activity for bed quality.
"Tom Gottfried <tom@intevation.de>"
parents: 8202
diff changeset
91 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
92 }
8274
b0d7b0d79d6e Set facet activity for bed quality.
"Tom Gottfried <tom@intevation.de>"
parents: 8202
diff changeset
93 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
94 }
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
95 });
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
96 }
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
97
3749
3dcc4feff243 Created the initial structure for MINFO bed quality chart generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3629
diff changeset
98 @Override
5867
59ff03ff48f1 River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5863
diff changeset
99 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
100 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
101 log.debug("BedQualityState.computeAdvance");
3629
f3717e625b0a MINFO: Added states and config for bed quality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
102
3749
3dcc4feff243 Created the initial structure for MINFO bed quality chart generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3629
diff changeset
103 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
104
4825
f8217f1fef2e ExtremeAccess, RangeAccess and callers: Refactored, moved getStep to RangeAccess.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3785
diff changeset
105 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
106
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8678
diff changeset
107 CalculationResult res = old instanceof CalculationResult
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8678
diff changeset
108 ? (CalculationResult)old
3749
3dcc4feff243 Created the initial structure for MINFO bed quality chart generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3629
diff changeset
109 : 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
110
3dcc4feff243 Created the initial structure for MINFO bed quality chart generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3629
diff changeset
111 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
112 return res;
3dcc4feff243 Created the initial structure for MINFO bed quality chart generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3629
diff changeset
113 }
3dcc4feff243 Created the initial structure for MINFO bed quality chart generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3629
diff changeset
114
8657
4054c7fce43e (issue1755) Add problem / report handling to BedQualityCalculation
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8653
diff changeset
115 Calculation report = res.getReport();
4054c7fce43e (issue1755) Add problem / report handling to BedQualityCalculation
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8653
diff changeset
116
4054c7fce43e (issue1755) Add problem / report handling to BedQualityCalculation
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8653
diff changeset
117 if (report != null && report.hasProblems()) {
4054c7fce43e (issue1755) Add problem / report handling to BedQualityCalculation
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8653
diff changeset
118 facets.add(new ReportFacet(ComputeType.ADVANCE, hash, id));
4054c7fce43e (issue1755) Add problem / report handling to BedQualityCalculation
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8653
diff changeset
119 log.debug("Problems : " + report.problemsToString());
4054c7fce43e (issue1755) Add problem / report handling to BedQualityCalculation
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8653
diff changeset
120 }
4054c7fce43e (issue1755) Add problem / report handling to BedQualityCalculation
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8653
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 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
123
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
124 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
125 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
126 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
127 }
3757
e8a90a5ce624 Added facets and chart generator for bed quality calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3750
diff changeset
128
3767
b4ad8dafe584 Created i18n descriptions for facets in bed quality calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3766
diff changeset
129 generateFacets(context, newFacets, results, getID(), hash);
8660
7faf1dad15a6 (issue1755) Do not add empty data facets in BedQuality State
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8657
diff changeset
130 List<Facet> candidates = new ArrayList<Facet>();
7faf1dad15a6 (issue1755) Do not add empty data facets in BedQuality State
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8657
diff changeset
131 generateDataFacets(context, candidates, access, getID(), hash);
7faf1dad15a6 (issue1755) Do not add empty data facets in BedQuality State
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8657
diff changeset
132 /* Do not create empty facets */
7faf1dad15a6 (issue1755) Do not add empty data facets in BedQuality State
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8657
diff changeset
133 for (Facet f: candidates) {
7faf1dad15a6 (issue1755) Do not add empty data facets in BedQuality State
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8657
diff changeset
134 DataFacet candidate = (DataFacet)f;
7faf1dad15a6 (issue1755) Do not add empty data facets in BedQuality State
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8657
diff changeset
135 Object d = candidate.getData((Artifact)artifact, context);
7faf1dad15a6 (issue1755) Do not add empty data facets in BedQuality State
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8657
diff changeset
136 if (d != null) {
7faf1dad15a6 (issue1755) Do not add empty data facets in BedQuality State
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8657
diff changeset
137 double [][] data = (double[][]) d;
7faf1dad15a6 (issue1755) Do not add empty data facets in BedQuality State
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8657
diff changeset
138 if (data.length > 0 && data[0].length > 0) {
8667
0c241f03ebcd (issue1755) Only add facets / results when they do not consist exlcusively of NaN values.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8660
diff changeset
139 boolean onlyNaN = true;
8678
b743ed33c65d (issue1755) Add non empty measurement facets again
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8667
diff changeset
140 for (int i = 0; i < data[1].length; i++) {
8667
0c241f03ebcd (issue1755) Only add facets / results when they do not consist exlcusively of NaN values.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8660
diff changeset
141 if (!Double.isNaN(data[1][i])) {
0c241f03ebcd (issue1755) Only add facets / results when they do not consist exlcusively of NaN values.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8660
diff changeset
142 onlyNaN = false;
0c241f03ebcd (issue1755) Only add facets / results when they do not consist exlcusively of NaN values.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8660
diff changeset
143 break;
0c241f03ebcd (issue1755) Only add facets / results when they do not consist exlcusively of NaN values.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8660
diff changeset
144 }
0c241f03ebcd (issue1755) Only add facets / results when they do not consist exlcusively of NaN values.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8660
diff changeset
145 }
8678
b743ed33c65d (issue1755) Add non empty measurement facets again
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8667
diff changeset
146 if (!onlyNaN) {
b743ed33c65d (issue1755) Add non empty measurement facets again
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8667
diff changeset
147 newFacets.add(candidate);
b743ed33c65d (issue1755) Add non empty measurement facets again
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8667
diff changeset
148 } else {
b743ed33c65d (issue1755) Add non empty measurement facets again
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8667
diff changeset
149 log.debug("Not adding measurement facet " +
b743ed33c65d (issue1755) Add non empty measurement facets again
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8667
diff changeset
150 "because it only contains NaN values");
b743ed33c65d (issue1755) Add non empty measurement facets again
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8667
diff changeset
151 }
b743ed33c65d (issue1755) Add non empty measurement facets again
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8667
diff changeset
152 // else adding a problem would be nice
8660
7faf1dad15a6 (issue1755) Do not add empty data facets in BedQuality State
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8657
diff changeset
153 }
7faf1dad15a6 (issue1755) Do not add empty data facets in BedQuality State
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8657
diff changeset
154 }
7faf1dad15a6 (issue1755) Do not add empty data facets in BedQuality State
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8657
diff changeset
155 }
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7987
diff changeset
156 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
157 facets.addAll(newFacets);
3dcc4feff243 Created the initial structure for MINFO bed quality chart generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3629
diff changeset
158
3dcc4feff243 Created the initial structure for MINFO bed quality chart generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3629
diff changeset
159 return res;
3dcc4feff243 Created the initial structure for MINFO bed quality chart generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3629
diff changeset
160 }
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
161
8587
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
162 private int generateIndex(String diameter) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
163 int d = 0;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
164 if(diameter.equals("d10")) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
165 d = 1;
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("d16")) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
168 d = 2;
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("d20")) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
171 d = 3;
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 else if (diameter.equals("d25")) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
174 d = 4;
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 else if (diameter.equals("d30")) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
177 d = 5;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
178 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
179 else if (diameter.equals("d40")) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
180 d = 6;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
181 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
182 else if (diameter.equals("d50")) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
183 d = 7;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
184 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
185 else if (diameter.equals("d60")) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
186 d = 8;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
187 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
188 else if (diameter.equals("d70")) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
189 d = 9;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
190 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
191 else if (diameter.equals("d75")) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
192 d = 10;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
193 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
194 else if (diameter.equals("d80")) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
195 d = 11;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
196 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
197 else if (diameter.equals("d84")) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
198 d = 12;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
199 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
200 else if (diameter.equals("d90")) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
201 d = 13;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
202 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
203 else if (diameter.equals("dmin")) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
204 d = 14;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
205 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
206 else if (diameter.equals("dmax")) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
207 d = 15;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
208 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
209 else if (diameter.equals("dm")) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
210 d = 16;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
211 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
212 int ndx = d << 1;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
213 return ndx;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
214 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
215
6252
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
216 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
217 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
218 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
219 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
220 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
221 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
222 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
223 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
224 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
225 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
226 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
227 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
228 int ndxTop = generateIndex(diameter);
8587
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
229 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
230 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
231 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
232 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
233 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
234 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
235 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
236 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
237 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
238 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
239 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
240 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
241 //toplayer
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
242 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
243 ndxTop,
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
244 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
245 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
246 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
247 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
248 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
249 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
250 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
251 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
252 stateId,
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
253 hash));
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
254 //sublayer
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
255 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
256 ndxSub,
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
257 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
258 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
259 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
260 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
261 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
262 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
263 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
264 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
265 stateId,
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
266 hash));
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
267 }
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
268 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
269 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
270 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
271 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
272 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
273 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
274 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
275 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
276 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
277 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
278 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
279 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
280 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
281 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
282 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
283 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
284 }
6252
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
285 }
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
286 }
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
287
8587
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
288
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
289 protected String getFacetName(BedQualityResultValue value) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
290 /* basename + name or "diameter" + .type */
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
291 return BED_QUALITY_DATA_FACET + "." +
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
292 (value.isDiameterResult() ? "diameter" : value.getName()) + "." +
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
293 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
294 }
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
295
3767
b4ad8dafe584 Created i18n descriptions for facets in bed quality calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3766
diff changeset
296 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
297 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
298 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
299
3767
b4ad8dafe584 Created i18n descriptions for facets in bed quality calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3766
diff changeset
300 CallMeta meta = context.getMeta();
b4ad8dafe584 Created i18n descriptions for facets in bed quality calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3766
diff changeset
301
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8678
diff changeset
302 newFacets.add(
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8678
diff changeset
303 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
304 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
305 BedQualityResult result = results[idx];
3784
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3772
diff changeset
306 DateRange range = result.getDateRange();
8587
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
307 int i = 0;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
308 for (BedQualityResultValue value: result.getValues()) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
309 newFacets.add(new BedQualityDataFacet((idx << 8) + i++,
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
310 getFacetName(value),
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
311 getFacetDescription(meta, range, value),
3784
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3772
diff changeset
312 ComputeType.ADVANCE,
8587
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
313 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
314 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
315 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
316 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
317 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
318 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
319 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
320 }
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
321 }
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
322 }
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
323 }
3767
b4ad8dafe584 Created i18n descriptions for facets in bed quality calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3766
diff changeset
324
8592
36faef4f8acb (issue1755) Add interpolated facets and update themes accordingly
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8587
diff changeset
325 protected String getFacetInterpolDescription(CallMeta meta,
36faef4f8acb (issue1755) Add interpolated facets and update themes accordingly
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8587
diff changeset
326 DateRange range,
36faef4f8acb (issue1755) Add interpolated facets and update themes accordingly
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8587
diff changeset
327 BedQualityResultValue value) {
36faef4f8acb (issue1755) Add interpolated facets and update themes accordingly
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8587
diff changeset
328 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
329 /* 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
330 return part1 + " " + Resources.getMsg(meta,
36faef4f8acb (issue1755) Add interpolated facets and update themes accordingly
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8587
diff changeset
331 I18N_INTERPOL_SUFFIX,
36faef4f8acb (issue1755) Add interpolated facets and update themes accordingly
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8587
diff changeset
332 I18N_INTERPOL_SUFFIX,
36faef4f8acb (issue1755) Add interpolated facets and update themes accordingly
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8587
diff changeset
333 new Object[] {});
36faef4f8acb (issue1755) Add interpolated facets and update themes accordingly
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8587
diff changeset
334 }
36faef4f8acb (issue1755) Add interpolated facets and update themes accordingly
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8587
diff changeset
335
36faef4f8acb (issue1755) Add interpolated facets and update themes accordingly
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8587
diff changeset
336
8587
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
337 protected String getFacetDescription(CallMeta meta,
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
338 DateRange range,
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
339 BedQualityResultValue value) {
3767
b4ad8dafe584 Created i18n descriptions for facets in bed quality calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3766
diff changeset
340 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
341 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
342
8587
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
343 final String layerSuffix =
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
344 Resources.getMsg(meta, "bedquality." + value.getType(), "");
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
345
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
346 /* 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
347 final String i18n = I18N_FACET_BED_BASE + "." +
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
348 (value.isDiameterResult() ? "diameter" : value.getName()) + "." +
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
349 value.getType();
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
350
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
351 if (value.isDiameterResult()) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
352 /* Include the diameter in the description */
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
353 return Resources.getMsg(meta, i18n, i18n, new Object[] {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
354 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
355 } else {
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8678
diff changeset
356 return Resources.getMsg(meta, i18n, i18n, new Object[] {
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8678
diff changeset
357 from, to, layerSuffix });
8585
e9343e4c9ae0 Reduce duplicated functions to obtain layer descritpions for bedquality
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8274
diff changeset
358 }
3767
b4ad8dafe584 Created i18n descriptions for facets in bed quality calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3766
diff changeset
359 }
3629
f3717e625b0a MINFO: Added states and config for bed quality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
360 }

http://dive4elements.wald.intevation.org