Mercurial > dive4elements > river
annotate artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/BedDiffHeightSubFacet.java @ 8653:dbec49147f54
(issue1755) Do not create interpolated themes and disable export of non interpolatable data.
Due to the fact that data can contain NaN's which will be filtered out
before creating the interpolator this requires the actual check
for interpolatable data when data is set in the ResultValue
author | Andre Heinecke <andre.heinecke@intevation.de> |
---|---|
date | Wed, 01 Apr 2015 17:10:03 +0200 |
parents | 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 } |