annotate artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/BedDiffHeightSubFacet.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 a805211690f7
rev   line source
7985
10debf4b82be Split bed differences facet into data specific facets.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
1 package org.dive4elements.river.artifacts.model.minfo;
10debf4b82be Split bed differences facet into data specific facets.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
2
10debf4b82be Split bed differences facet into data specific facets.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
3 import org.apache.log4j.Logger;
10debf4b82be Split bed differences facet into data specific facets.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
4 import org.dive4elements.artifactdatabase.state.Facet;
10debf4b82be Split bed differences facet into data specific facets.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
5 import org.dive4elements.artifacts.Artifact;
10debf4b82be Split bed differences facet into data specific facets.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
6 import org.dive4elements.artifacts.CallContext;
8273
5c3b36b519d0 Add metadata to bedheight facets in bed height differences.
"Tom Gottfried <tom@intevation.de>"
parents: 8267
diff changeset
7
8559
6d8d7425a6b5 Bed heights are just bed heights since a while ('single' is obsolete).
"Tom Gottfried <tom@intevation.de>"
parents: 8332
diff changeset
8 import org.dive4elements.river.model.BedHeight;
8273
5c3b36b519d0 Add metadata to bedheight facets in bed height differences.
"Tom Gottfried <tom@intevation.de>"
parents: 8267
diff changeset
9
7985
10debf4b82be Split bed differences facet into data specific facets.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
10 import org.dive4elements.river.artifacts.D4EArtifact;
8273
5c3b36b519d0 Add metadata to bedheight facets in bed height differences.
"Tom Gottfried <tom@intevation.de>"
parents: 8267
diff changeset
11 import org.dive4elements.river.artifacts.access.RiverAccess;
5c3b36b519d0 Add metadata to bedheight facets in bed height differences.
"Tom Gottfried <tom@intevation.de>"
parents: 8267
diff changeset
12 import org.dive4elements.river.artifacts.resources.Resources;
7985
10debf4b82be Split bed differences facet into data specific facets.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
13 import org.dive4elements.river.artifacts.model.CalculationResult;
10debf4b82be Split bed differences facet into data specific facets.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
14 import org.dive4elements.river.artifacts.model.DataFacet;
10debf4b82be Split bed differences facet into data specific facets.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
15 import org.dive4elements.river.artifacts.model.FacetTypes;
10debf4b82be Split bed differences facet into data specific facets.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
16 import org.dive4elements.river.artifacts.states.DefaultState.ComputeType;
10debf4b82be Split bed differences facet into data specific facets.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
17
10debf4b82be Split bed differences facet into data specific facets.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
18
10debf4b82be Split bed differences facet into data specific facets.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
19 public class BedDiffHeightSubFacet
10debf4b82be Split bed differences facet into data specific facets.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
20 extends DataFacet
10debf4b82be Split bed differences facet into data specific facets.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
21 implements FacetTypes
10debf4b82be Split bed differences facet into data specific facets.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
22 {
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8007
diff changeset
23 private static Logger log = Logger.getLogger(BedDiffHeightSubFacet.class);
7985
10debf4b82be Split bed differences facet into data specific facets.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
24
10debf4b82be Split bed differences facet into data specific facets.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
25 public BedDiffHeightSubFacet() {
10debf4b82be Split bed differences facet into data specific facets.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
26 }
10debf4b82be Split bed differences facet into data specific facets.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
27
10debf4b82be Split bed differences facet into data specific facets.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
28 public BedDiffHeightSubFacet(int idx, String name, String description,
10debf4b82be Split bed differences facet into data specific facets.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
29 ComputeType type, String stateId, String hash) {
10debf4b82be Split bed differences facet into data specific facets.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
30 super(idx, name, description, type, hash, stateId);
10debf4b82be Split bed differences facet into data specific facets.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
31 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: 8202
diff changeset
32 this.metaData.put("Y", "chart.bedheight_middle.section.yaxis.label");
7985
10debf4b82be Split bed differences facet into data specific facets.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
33 }
10debf4b82be Split bed differences facet into data specific facets.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
34
10debf4b82be Split bed differences facet into data specific facets.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
35 public Object getData(Artifact artifact, CallContext context) {
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8007
diff changeset
36 log.debug("Get data for bed density at index: " + index);
7985
10debf4b82be Split bed differences facet into data specific facets.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
37
10debf4b82be Split bed differences facet into data specific facets.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
38 D4EArtifact flys = (D4EArtifact) artifact;
10debf4b82be Split bed differences facet into data specific facets.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
39
10debf4b82be Split bed differences facet into data specific facets.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
40 CalculationResult res = (CalculationResult) flys.compute(context, hash,
10debf4b82be Split bed differences facet into data specific facets.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
41 stateId, type, false);
10debf4b82be Split bed differences facet into data specific facets.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
42
10debf4b82be Split bed differences facet into data specific facets.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
43 BedDiffYearResult[] resultData =
10debf4b82be Split bed differences facet into data specific facets.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
44 (BedDiffYearResult[]) res.getData(); // TODO CAST TO SPECIFIC CLASS
10debf4b82be Split bed differences facet into data specific facets.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
45
10debf4b82be Split bed differences facet into data specific facets.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
46 if (resultData != null && resultData.length > index) {
10debf4b82be Split bed differences facet into data specific facets.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
47 BedDiffYearResult data = resultData[index];
8273
5c3b36b519d0 Add metadata to bedheight facets in bed height differences.
"Tom Gottfried <tom@intevation.de>"
parents: 8267
diff changeset
48
8559
6d8d7425a6b5 Bed heights are just bed heights since a while ('single' is obsolete).
"Tom Gottfried <tom@intevation.de>"
parents: 8332
diff changeset
49 BedHeight second = BedHeight.getBedHeightById(
8273
5c3b36b519d0 Add metadata to bedheight facets in bed height differences.
"Tom Gottfried <tom@intevation.de>"
parents: 8267
diff changeset
50 data.getIdSecond());
5c3b36b519d0 Add metadata to bedheight facets in bed height differences.
"Tom Gottfried <tom@intevation.de>"
parents: 8267
diff changeset
51 this.addMetaData(Resources.getMsg(
5c3b36b519d0 Add metadata to bedheight facets in bed height differences.
"Tom Gottfried <tom@intevation.de>"
parents: 8267
diff changeset
52 context.getMeta(),
5c3b36b519d0 Add metadata to bedheight facets in bed height differences.
"Tom Gottfried <tom@intevation.de>"
parents: 8267
diff changeset
53 "meta.bedheight.cur.elevation"),
5c3b36b519d0 Add metadata to bedheight facets in bed height differences.
"Tom Gottfried <tom@intevation.de>"
parents: 8267
diff changeset
54 second.getCurElevationModel().getName());
8332
3baa6290cebf bed_height_single.old_elevation_model_id is not NOT NULL.
"Tom Gottfried <tom@intevation.de>"
parents: 8273
diff changeset
55 if (second.getOldElevationModel() != null) {
3baa6290cebf bed_height_single.old_elevation_model_id is not NOT NULL.
"Tom Gottfried <tom@intevation.de>"
parents: 8273
diff changeset
56 this.addMetaData(Resources.getMsg(
3baa6290cebf bed_height_single.old_elevation_model_id is not NOT NULL.
"Tom Gottfried <tom@intevation.de>"
parents: 8273
diff changeset
57 context.getMeta(),
3baa6290cebf bed_height_single.old_elevation_model_id is not NOT NULL.
"Tom Gottfried <tom@intevation.de>"
parents: 8273
diff changeset
58 "meta.bedheight.old.elevation"),
3baa6290cebf bed_height_single.old_elevation_model_id is not NOT NULL.
"Tom Gottfried <tom@intevation.de>"
parents: 8273
diff changeset
59 second.getOldElevationModel().getName());
3baa6290cebf bed_height_single.old_elevation_model_id is not NOT NULL.
"Tom Gottfried <tom@intevation.de>"
parents: 8273
diff changeset
60 }
8273
5c3b36b519d0 Add metadata to bedheight facets in bed height differences.
"Tom Gottfried <tom@intevation.de>"
parents: 8267
diff changeset
61 this.addMetaData(Resources.getMsg(
5c3b36b519d0 Add metadata to bedheight facets in bed height differences.
"Tom Gottfried <tom@intevation.de>"
parents: 8267
diff changeset
62 context.getMeta(),
5c3b36b519d0 Add metadata to bedheight facets in bed height differences.
"Tom Gottfried <tom@intevation.de>"
parents: 8267
diff changeset
63 "meta.bedheight.river.elevation"),
5c3b36b519d0 Add metadata to bedheight facets in bed height differences.
"Tom Gottfried <tom@intevation.de>"
parents: 8267
diff changeset
64 new RiverAccess(flys).getRiver().getWstUnit().getName());
5c3b36b519d0 Add metadata to bedheight facets in bed height differences.
"Tom Gottfried <tom@intevation.de>"
parents: 8267
diff changeset
65
7985
10debf4b82be Split bed differences facet into data specific facets.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
66 return data.getHeights2Data();
10debf4b82be Split bed differences facet into data specific facets.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
67 }
10debf4b82be Split bed differences facet into data specific facets.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
68 return null;
10debf4b82be Split bed differences facet into data specific facets.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
69 }
10debf4b82be Split bed differences facet into data specific facets.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
70
10debf4b82be Split bed differences facet into data specific facets.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
71 /** Copy deeply. */
10debf4b82be Split bed differences facet into data specific facets.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
72 @Override
10debf4b82be Split bed differences facet into data specific facets.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
73 public Facet deepCopy() {
10debf4b82be Split bed differences facet into data specific facets.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
74 BedDiffHeightSubFacet copy = new BedDiffHeightSubFacet();
10debf4b82be Split bed differences facet into data specific facets.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
75 copy.set(this);
10debf4b82be Split bed differences facet into data specific facets.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
76 copy.type = type;
10debf4b82be Split bed differences facet into data specific facets.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
77 copy.hash = hash;
10debf4b82be Split bed differences facet into data specific facets.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
78 copy.stateId = stateId;
10debf4b82be Split bed differences facet into data specific facets.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
79 return copy;
10debf4b82be Split bed differences facet into data specific facets.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
80 }
10debf4b82be Split bed differences facet into data specific facets.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
81 }

http://dive4elements.wald.intevation.org