annotate artifacts/src/main/java/org/dive4elements/river/artifacts/states/minfo/BedQualityState.java @ 8667:0c241f03ebcd

(issue1755) Only add facets / results when they do not consist exlcusively of NaN values.
author Andre Heinecke <andre.heinecke@intevation.de>
date Wed, 08 Apr 2015 19:09:38 +0200
parents 7faf1dad15a6
children b743ed33c65d
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. */
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
51 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
52
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
53 /* 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
54 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
55
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
56 /* Data Layers */
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
57 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
58 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
59 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
60 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
61 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
62
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
63 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
64 // 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
65 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
66 "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
67 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
68 @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
69 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
70 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
71 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
72 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
73 ) {
8592
36faef4f8acb (issue1755) Add interpolated facets and update themes accordingly
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8587
diff changeset
74 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
75 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
76 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
77 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
78 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
79 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
80 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
81 }
8274
b0d7b0d79d6e Set facet activity for bed quality.
"Tom Gottfried <tom@intevation.de>"
parents: 8202
diff changeset
82 if (name.equals(BED_QUALITY_POROSITY_TOPLAYER) ||
b0d7b0d79d6e Set facet activity for bed quality.
"Tom Gottfried <tom@intevation.de>"
parents: 8202
diff changeset
83 name.equals(BED_QUALITY_POROSITY_SUBLAYER) ||
b0d7b0d79d6e Set facet activity for bed quality.
"Tom Gottfried <tom@intevation.de>"
parents: 8202
diff changeset
84 name.equals(BED_QUALITY_BED_DIAMETER_TOPLAYER) ||
b0d7b0d79d6e Set facet activity for bed quality.
"Tom Gottfried <tom@intevation.de>"
parents: 8202
diff changeset
85 name.equals(BED_QUALITY_BED_DIAMETER_SUBLAYER) ||
b0d7b0d79d6e Set facet activity for bed quality.
"Tom Gottfried <tom@intevation.de>"
parents: 8202
diff changeset
86 name.equals(BED_QUALITY_BEDLOAD_DIAMETER)) {
b0d7b0d79d6e Set facet activity for bed quality.
"Tom Gottfried <tom@intevation.de>"
parents: 8202
diff changeset
87 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
88 }
8274
b0d7b0d79d6e Set facet activity for bed quality.
"Tom Gottfried <tom@intevation.de>"
parents: 8202
diff changeset
89 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
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 });
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 }
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
93
3749
3dcc4feff243 Created the initial structure for MINFO bed quality chart generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3629
diff changeset
94 @Override
5867
59ff03ff48f1 River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5863
diff changeset
95 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
96 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
97 log.debug("BedQualityState.computeAdvance");
3629
f3717e625b0a MINFO: Added states and config for bed quality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
98
3749
3dcc4feff243 Created the initial structure for MINFO bed quality chart generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3629
diff changeset
99 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
100
4825
f8217f1fef2e ExtremeAccess, RangeAccess and callers: Refactored, moved getStep to RangeAccess.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3785
diff changeset
101 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
102
3757
e8a90a5ce624 Added facets and chart generator for bed quality calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3750
diff changeset
103 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
104 : 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
105
3dcc4feff243 Created the initial structure for MINFO bed quality chart generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3629
diff changeset
106 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
107 return res;
3dcc4feff243 Created the initial structure for MINFO bed quality chart generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3629
diff changeset
108 }
3dcc4feff243 Created the initial structure for MINFO bed quality chart generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3629
diff changeset
109
8657
4054c7fce43e (issue1755) Add problem / report handling to BedQualityCalculation
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8653
diff changeset
110 Calculation report = res.getReport();
4054c7fce43e (issue1755) Add problem / report handling to BedQualityCalculation
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8653
diff changeset
111
4054c7fce43e (issue1755) Add problem / report handling to BedQualityCalculation
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8653
diff changeset
112 if (report != null && report.hasProblems()) {
4054c7fce43e (issue1755) Add problem / report handling to BedQualityCalculation
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8653
diff changeset
113 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
114 log.debug("Problems : " + report.problemsToString());
4054c7fce43e (issue1755) Add problem / report handling to BedQualityCalculation
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8653
diff changeset
115 }
4054c7fce43e (issue1755) Add problem / report handling to BedQualityCalculation
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8653
diff changeset
116
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
117 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
118
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
119 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
120 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
121 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
122 }
3757
e8a90a5ce624 Added facets and chart generator for bed quality calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3750
diff changeset
123
3767
b4ad8dafe584 Created i18n descriptions for facets in bed quality calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3766
diff changeset
124 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
125 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
126 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
127 /* 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
128 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
129 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
130 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
131 if (d != null) {
7faf1dad15a6 (issue1755) Do not add empty data facets in BedQuality State
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8657
diff changeset
132 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
133 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
134 boolean onlyNaN = true;
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
135 for (int i = 0; i < data.length; 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
136 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
137 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
138 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
139 }
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
140 if (!onlyNaN) {
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 newFacets.add(candidate);
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 }
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 // else adding a problem would be nice
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 }
8660
7faf1dad15a6 (issue1755) Do not add empty data facets in BedQuality State
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8657
diff changeset
145 }
7faf1dad15a6 (issue1755) Do not add empty data facets in BedQuality State
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8657
diff changeset
146 }
7faf1dad15a6 (issue1755) Do not add empty data facets in BedQuality State
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8657
diff changeset
147 }
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7987
diff changeset
148 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
149 facets.addAll(newFacets);
3dcc4feff243 Created the initial structure for MINFO bed quality chart generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3629
diff changeset
150
3dcc4feff243 Created the initial structure for MINFO bed quality chart generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3629
diff changeset
151 return res;
3dcc4feff243 Created the initial structure for MINFO bed quality chart generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3629
diff changeset
152 }
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
153
8587
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
154 private int generateIndex(String diameter) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
155 int d = 0;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
156 if(diameter.equals("d10")) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
157 d = 1;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
158 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
159 else if (diameter.equals("d16")) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
160 d = 2;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
161 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
162 else if (diameter.equals("d20")) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
163 d = 3;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
164 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
165 else if (diameter.equals("d25")) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
166 d = 4;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
167 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
168 else if (diameter.equals("d30")) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
169 d = 5;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
170 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
171 else if (diameter.equals("d40")) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
172 d = 6;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
173 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
174 else if (diameter.equals("d50")) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
175 d = 7;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
176 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
177 else if (diameter.equals("d60")) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
178 d = 8;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
179 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
180 else if (diameter.equals("d70")) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
181 d = 9;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
182 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
183 else if (diameter.equals("d75")) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
184 d = 10;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
185 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
186 else if (diameter.equals("d80")) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
187 d = 11;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
188 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
189 else if (diameter.equals("d84")) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
190 d = 12;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
191 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
192 else if (diameter.equals("d90")) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
193 d = 13;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
194 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
195 else if (diameter.equals("dmin")) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
196 d = 14;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
197 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
198 else if (diameter.equals("dmax")) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
199 d = 15;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
200 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
201 else if (diameter.equals("dm")) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
202 d = 16;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
203 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
204 int ndx = d << 1;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
205 return ndx;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
206 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
207
6252
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
208 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
209 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
210 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
211 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
212 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
213 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
214 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
215 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
216 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
217 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
218 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
219 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
220 int ndxTop = generateIndex(diameter);
8587
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
221 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
222 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
223 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
224 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
225 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
226 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
227 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
228 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
229 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
230 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
231 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
232 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
233 //toplayer
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
234 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
235 ndxTop,
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
236 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
237 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
238 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
239 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
240 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
241 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
242 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
243 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
244 stateId,
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
245 hash));
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
246 //sublayer
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
247 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
248 ndxSub,
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
249 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
250 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
251 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
252 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
253 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
254 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
255 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
256 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
257 stateId,
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
258 hash));
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
259 }
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
260 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
261 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
262 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
263 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
264 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
265 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
266 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
267 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
268 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
269 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
270 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
271 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
272 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
273 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
274 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
275 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
276 }
6252
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
277 }
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
278 }
38d6ce2c7164 Generate facets for bed diameter measurements and draw them into the generated chart.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
279
8587
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
280
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
281 protected String getFacetName(BedQualityResultValue value) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
282 /* basename + name or "diameter" + .type */
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
283 return BED_QUALITY_DATA_FACET + "." +
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
284 (value.isDiameterResult() ? "diameter" : value.getName()) + "." +
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
285 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
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
3767
b4ad8dafe584 Created i18n descriptions for facets in bed quality calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3766
diff changeset
288 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
289 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
290 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
291
3767
b4ad8dafe584 Created i18n descriptions for facets in bed quality calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3766
diff changeset
292 CallMeta meta = context.getMeta();
b4ad8dafe584 Created i18n descriptions for facets in bed quality calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3766
diff changeset
293
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
294 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
295 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
296 BedQualityResult result = results[idx];
3784
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3772
diff changeset
297 DateRange range = result.getDateRange();
8587
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
298 int i = 0;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
299 for (BedQualityResultValue value: result.getValues()) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
300 newFacets.add(new BedQualityDataFacet((idx << 8) + i++,
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
301 getFacetName(value),
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
302 getFacetDescription(meta, range, value),
3784
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3772
diff changeset
303 ComputeType.ADVANCE,
8587
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
304 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
305 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
306 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
307 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
308 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
309 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
310 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
311 }
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
312 }
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
313 }
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
314 }
3767
b4ad8dafe584 Created i18n descriptions for facets in bed quality calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3766
diff changeset
315
8592
36faef4f8acb (issue1755) Add interpolated facets and update themes accordingly
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8587
diff changeset
316 protected String getFacetInterpolDescription(CallMeta meta,
36faef4f8acb (issue1755) Add interpolated facets and update themes accordingly
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8587
diff changeset
317 DateRange range,
36faef4f8acb (issue1755) Add interpolated facets and update themes accordingly
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8587
diff changeset
318 BedQualityResultValue value) {
36faef4f8acb (issue1755) Add interpolated facets and update themes accordingly
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8587
diff changeset
319 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
320 /* 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
321 return part1 + " " + Resources.getMsg(meta,
36faef4f8acb (issue1755) Add interpolated facets and update themes accordingly
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8587
diff changeset
322 I18N_INTERPOL_SUFFIX,
36faef4f8acb (issue1755) Add interpolated facets and update themes accordingly
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8587
diff changeset
323 I18N_INTERPOL_SUFFIX,
36faef4f8acb (issue1755) Add interpolated facets and update themes accordingly
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8587
diff changeset
324 new Object[] {});
36faef4f8acb (issue1755) Add interpolated facets and update themes accordingly
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8587
diff changeset
325 }
36faef4f8acb (issue1755) Add interpolated facets and update themes accordingly
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8587
diff changeset
326
36faef4f8acb (issue1755) Add interpolated facets and update themes accordingly
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8587
diff changeset
327
8587
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
328 protected String getFacetDescription(CallMeta meta,
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
329 DateRange range,
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
330 BedQualityResultValue value) {
3767
b4ad8dafe584 Created i18n descriptions for facets in bed quality calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3766
diff changeset
331 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
332 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
333
8587
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
334 final String layerSuffix =
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
335 Resources.getMsg(meta, "bedquality." + value.getType(), "");
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
336
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
337 /* 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
338 final String i18n = I18N_FACET_BED_BASE + "." +
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
339 (value.isDiameterResult() ? "diameter" : value.getName()) + "." +
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
340 value.getType();
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
341
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
342 if (value.isDiameterResult()) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
343 /* Include the diameter in the description */
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
344 return Resources.getMsg(meta, i18n, i18n, new Object[] {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
345 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
346 } else {
8587
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8585
diff changeset
347 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
348 }
3767
b4ad8dafe584 Created i18n descriptions for facets in bed quality calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3766
diff changeset
349 }
3629
f3717e625b0a MINFO: Added states and config for bed quality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
350 }

http://dive4elements.wald.intevation.org