Mercurial > dive4elements > river
annotate artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/predefinedtkh/PredefinedTkhFacet.java @ 9195:a4121ec450d6
'ca.'-issue
ExportContextCSV+PDF separated
uinfo.inundationduration url export
author | gernotbelger |
---|---|
date | Fri, 29 Jun 2018 14:52:54 +0200 |
parents | 384eee4b4135 |
children | d1ce60b760bd |
rev | line source |
---|---|
9016
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
1 /** Copyright (C) 2017 by Bundesanstalt für Gewässerkunde |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
2 * Software engineering by |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
3 * Björnsen Beratende Ingenieure GmbH |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
4 * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
5 * |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
6 * This file is Free Software under the GNU AGPL (>=v3) |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
7 * and comes with ABSOLUTELY NO WARRANTY! Check out the |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
8 * documentation coming with Dive4Elements River for details. |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
9 */ |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
10 |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
11 package org.dive4elements.river.artifacts.sinfo.predefinedtkh; |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
12 |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
13 import java.util.ArrayList; |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
14 import java.util.Collection; |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
15 import java.util.List; |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
16 |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
17 import org.dive4elements.artifacts.Artifact; |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
18 import org.dive4elements.artifacts.CallContext; |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
19 import org.dive4elements.river.artifacts.D4EArtifact; |
9195 | 20 import org.dive4elements.river.artifacts.common.DefaultCalculationResult; |
9016
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
21 import org.dive4elements.river.artifacts.common.GeneralResultType; |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
22 import org.dive4elements.river.artifacts.common.ResultRow; |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
23 import org.dive4elements.river.artifacts.model.BlackboardDataFacet; |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
24 import org.dive4elements.river.artifacts.model.Calculation; |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
25 import org.dive4elements.river.artifacts.model.FacetTypes; |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
26 import org.dive4elements.river.artifacts.sinfo.common.SInfoResultType; |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
27 import org.dive4elements.river.artifacts.sinfo.tkhcalculation.SoilKind; |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
28 import org.dive4elements.river.artifacts.sinfo.tkhcalculation.SoilKindKmValueFinder; |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
29 import org.dive4elements.river.model.sinfo.TkhColumn; |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
30 import org.dive4elements.river.model.sinfo.TkhValue; |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
31 |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
32 /** |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
33 * Facet for a tkh value series loaded from the database |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
34 * |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
35 * @author Matthias Schäfer |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
36 */ |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
37 public class PredefinedTkhFacet extends BlackboardDataFacet implements FacetTypes { |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
38 |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
39 private static final long serialVersionUID = 5508868967789155306L; |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
40 |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
41 public PredefinedTkhFacet(final String name, final String description) { |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
42 super(0, name, description); |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
43 |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
44 this.metaData.put("X", "chart.longitudinal.section.xaxis.label"); |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
45 this.metaData.put("Y", "chart.tkh.section.yaxis.label"); |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
46 } |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
47 |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
48 /** |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
49 * Returns the data this facet requires. |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
50 * |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
51 * @param artifact |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
52 * the owner artifact. |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
53 * @param context |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
54 * the CallContext (ignored). |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
55 * |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
56 * @return |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
57 * the data as PredefinedTkhQueryCalculationResult |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
58 */ |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
59 @Override |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
60 public Object getData(final Artifact artifact, final CallContext context) { |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
61 |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
62 final PredefinedTkhColumnAccess access = new PredefinedTkhColumnAccess((D4EArtifact) artifact); |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
63 final TkhColumn series = TkhColumn.getTkhColumnById(access.getColumnId()); |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
64 final List<TkhValue> tkhValues = TkhValue.getTkhValues(series, access.getFrom(true), access.getTo(true)); |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
65 final Calculation problems = new Calculation(); |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
66 final SoilKindKmValueFinder soilKindFinder = SoilKindKmValueFinder.loadValues(problems, access.getRiver(), access.getRange()); |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
67 |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
68 final Collection<ResultRow> rows = new ArrayList<>(); |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
69 SoilKind bedMobility = SoilKind.mobil; |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
70 for (final TkhValue tkhValue : tkhValues) { |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
71 final ResultRow row = ResultRow.create(); |
9033
384eee4b4135
Added datacage select and chart display for flow depth evolution series loaded from database, and a correction for the tkh data
mschaefer
parents:
9016
diff
changeset
|
72 row.putValue(GeneralResultType.station, tkhValue.getStation()); |
384eee4b4135
Added datacage select and chart display for flow depth evolution series loaded from database, and a correction for the tkh data
mschaefer
parents:
9016
diff
changeset
|
73 if (soilKindFinder != null) { |
9016
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
74 bedMobility = soilKindFinder.findSoilKind(tkhValue.getStation().doubleValue()); |
9033
384eee4b4135
Added datacage select and chart display for flow depth evolution series loaded from database, and a correction for the tkh data
mschaefer
parents:
9016
diff
changeset
|
75 row.putValue(SInfoResultType.soilkind, bedMobility); |
9195 | 76 } else |
9033
384eee4b4135
Added datacage select and chart display for flow depth evolution series loaded from database, and a correction for the tkh data
mschaefer
parents:
9016
diff
changeset
|
77 row.putValue(SInfoResultType.soilkind, null); |
384eee4b4135
Added datacage select and chart display for flow depth evolution series loaded from database, and a correction for the tkh data
mschaefer
parents:
9016
diff
changeset
|
78 row.putValue(SInfoResultType.tkh, tkhValue.getTkhCm()); |
384eee4b4135
Added datacage select and chart display for flow depth evolution series loaded from database, and a correction for the tkh data
mschaefer
parents:
9016
diff
changeset
|
79 row.putValue(SInfoResultType.tkhup, tkhValue.getTkhUpCm(bedMobility == SoilKind.mobil)); |
384eee4b4135
Added datacage select and chart display for flow depth evolution series loaded from database, and a correction for the tkh data
mschaefer
parents:
9016
diff
changeset
|
80 row.putValue(SInfoResultType.tkhdown, tkhValue.getTkhDownCm(bedMobility == SoilKind.mobil)); |
9016
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
81 rows.add(row); |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
82 } |
9195 | 83 return new DefaultCalculationResult(series.getName(), rows);// new PredefinedTkhQueryCalculationResult(series.getName(), rows); |
9016
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
84 } |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
85 |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
86 /** |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
87 * Create a deep copy of this Facet. |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
88 * |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
89 * @return a deep copy. |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
90 */ |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
91 @Override |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
92 public PredefinedTkhFacet deepCopy() { |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
93 final PredefinedTkhFacet copy = new PredefinedTkhFacet(this.name, this.description); |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
94 copy.set(this); |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
95 return copy; |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
96 } |
6e5ff436febe
Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff
changeset
|
97 } |