annotate artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/BedHeightSoundingWidthFacet.java @ 8587:07c9ac22f611

(issue1755) Generalise BedQuality result handling The bedquality calculation now produces a result for each time period which has BedQualityResultValues for each specific result type. Formally this was split up in density, porosity and diameter classes with some bedload diameter classes mixed in for extra fun. The intent of this commit is to allow more shared code and generic access patterns to the BedQuality results.
author Andre Heinecke <andre.heinecke@intevation.de>
date Wed, 18 Mar 2015 18:42:08 +0100
parents 6d8d7425a6b5
children cd5e0662f75c
rev   line source
7995
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
1 package org.dive4elements.river.artifacts.model.minfo;
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
2
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
3 import java.util.List;
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
4
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
5 import org.dive4elements.artifacts.Artifact;
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
6 import org.dive4elements.artifacts.CallContext;
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
7 import org.dive4elements.river.artifacts.D4EArtifact;
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
8 import org.dive4elements.river.artifacts.access.BedHeightAccess;
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
9 import org.dive4elements.river.artifacts.model.BlackboardDataFacet;
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
10 import org.dive4elements.river.artifacts.model.FacetTypes;
8559
6d8d7425a6b5 Bed heights are just bed heights since a while ('single' is obsolete).
"Tom Gottfried <tom@intevation.de>"
parents: 8427
diff changeset
11 import org.dive4elements.river.model.BedHeight;
6d8d7425a6b5 Bed heights are just bed heights since a while ('single' is obsolete).
"Tom Gottfried <tom@intevation.de>"
parents: 8427
diff changeset
12 import org.dive4elements.river.model.BedHeightValue;
7995
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
13
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
14
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
15 public class BedHeightSoundingWidthFacet
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
16 extends BlackboardDataFacet
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
17 implements FacetTypes
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
18 {
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
19 public BedHeightSoundingWidthFacet(String name, String description) {
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
20 this.name = name;
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
21 this.description = description;
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
22 this.index = 0;
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
23 this.metaData.put("X", "chart.longitudinal.section.xaxis.label");
8267
99912f51468d A bit less chaos in i18n for bed heights.
"Tom Gottfried <tom@intevation.de>"
parents: 7995
diff changeset
24 this.metaData.put("Y", "chart.bedheight_middle.section.yaxis.label");
7995
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
25 }
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
26
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
27 /**
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
28 * Returns the data this facet requires.
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
29 *
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
30 * @param artifact the owner artifact.
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
31 * @param context the CallContext (ignored).
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
32 *
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
33 * @return the data.
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
34 */
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
35 @Override
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
36 public Object getData(Artifact artifact, CallContext context) {
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
37 BedHeightAccess access = new BedHeightAccess((D4EArtifact)artifact);
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
38 /* Former doc (from BedHeightAccess):
8559
6d8d7425a6b5 Bed heights are just bed heights since a while ('single' is obsolete).
"Tom Gottfried <tom@intevation.de>"
parents: 8427
diff changeset
39 * Return a {@link List} of {@link BedHeightValue}s
7995
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
40 * at the range of the artifact
8559
6d8d7425a6b5 Bed heights are just bed heights since a while ('single' is obsolete).
"Tom Gottfried <tom@intevation.de>"
parents: 8427
diff changeset
41 * @return List of {@link BedHeightValue}s */
6d8d7425a6b5 Bed heights are just bed heights since a while ('single' is obsolete).
"Tom Gottfried <tom@intevation.de>"
parents: 8427
diff changeset
42 BedHeight single = BedHeight.getBedHeightById(
7995
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
43 access.getHeightId());
8559
6d8d7425a6b5 Bed heights are just bed heights since a while ('single' is obsolete).
"Tom Gottfried <tom@intevation.de>"
parents: 8427
diff changeset
44 List<BedHeightValue> bedheightValues =
6d8d7425a6b5 Bed heights are just bed heights since a while ('single' is obsolete).
"Tom Gottfried <tom@intevation.de>"
parents: 8427
diff changeset
45 BedHeightValue.getBedHeightValues(
7995
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
46 single,
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
47 access.getFrom(),
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
48 access.getTo());
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
49 double[][] values = new double[2][bedheightValues.size()];
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
50 int i = 0;
8559
6d8d7425a6b5 Bed heights are just bed heights since a while ('single' is obsolete).
"Tom Gottfried <tom@intevation.de>"
parents: 8427
diff changeset
51 for (BedHeightValue bedheightValue : bedheightValues) {
7995
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
52 values[0][i] = bedheightValue.getStation();
8427
2f640972ecf6 There might be no sounding width given at some stations of a bed height single.
Tom Gottfried <tom@intevation.de>
parents: 8267
diff changeset
53 values[1][i] = bedheightValue.getSoundingWidth() != null
2f640972ecf6 There might be no sounding width given at some stations of a bed height single.
Tom Gottfried <tom@intevation.de>
parents: 8267
diff changeset
54 ? bedheightValue.getSoundingWidth() : Double.NaN;
7995
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
55 i++;
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
56 }
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
57 return values;
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
58 }
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
59
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
60 /**
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
61 * Create a deep copy of this Facet.
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
62 * @return a deep copy.
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
63 */
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
64 @Override
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
65 public BedHeightSoundingWidthFacet deepCopy() {
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
66 BedHeightSoundingWidthFacet copy =
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
67 new BedHeightSoundingWidthFacet(name, description);
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
68 copy.set(this);
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
69 return copy;
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
70 }
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
71 }

http://dive4elements.wald.intevation.org