annotate artifacts/src/main/java/org/dive4elements/river/artifacts/model/HistoricalDischargeWQFacet.java @ 8442:e65aad00b3a1

Do not transform Q values from cm to m.
author "Tom Gottfried <tom@intevation.de>"
date Tue, 21 Oct 2014 12:14:39 +0200
parents 47e96ce9bd79
children 0beb34d55630
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: 5863
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: 5863
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: 4260
diff changeset
9 package org.dive4elements.river.artifacts.model;
4241
49cb65d5932d Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
10
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4260
diff changeset
11 import org.dive4elements.artifactdatabase.state.Facet;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4260
diff changeset
12 import org.dive4elements.artifacts.Artifact;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4260
diff changeset
13 import org.dive4elements.artifacts.CallContext;
8442
e65aad00b3a1 Do not transform Q values from cm to m.
"Tom Gottfried <tom@intevation.de>"
parents: 8393
diff changeset
14 import org.dive4elements.river.artifacts.model.FacetTypes;
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4260
diff changeset
15 import org.dive4elements.river.artifacts.states.DefaultState.ComputeType;
4241
49cb65d5932d Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
16
8442
e65aad00b3a1 Do not transform Q values from cm to m.
"Tom Gottfried <tom@intevation.de>"
parents: 8393
diff changeset
17 import org.apache.log4j.Logger;
e65aad00b3a1 Do not transform Q values from cm to m.
"Tom Gottfried <tom@intevation.de>"
parents: 8393
diff changeset
18
8393
47e96ce9bd79 If context contains pnp, transform W to m.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
19 import static org.dive4elements.river.exports.injector.InjectorConstants.PNP;
4241
49cb65d5932d Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
20
49cb65d5932d Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
21 /**
49cb65d5932d Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
22 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
49cb65d5932d Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
23 */
8442
e65aad00b3a1 Do not transform Q values from cm to m.
"Tom Gottfried <tom@intevation.de>"
parents: 8393
diff changeset
24 public class HistoricalDischargeWQFacet
e65aad00b3a1 Do not transform Q values from cm to m.
"Tom Gottfried <tom@intevation.de>"
parents: 8393
diff changeset
25 extends DataFacet
e65aad00b3a1 Do not transform Q values from cm to m.
"Tom Gottfried <tom@intevation.de>"
parents: 8393
diff changeset
26 implements FacetTypes {
e65aad00b3a1 Do not transform Q values from cm to m.
"Tom Gottfried <tom@intevation.de>"
parents: 8393
diff changeset
27 private static final Logger log = Logger
e65aad00b3a1 Do not transform Q values from cm to m.
"Tom Gottfried <tom@intevation.de>"
parents: 8393
diff changeset
28 .getLogger(HistoricalDischargeWQFacet.class);
4241
49cb65d5932d Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
29
49cb65d5932d Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
30 private double value;
49cb65d5932d Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
31
49cb65d5932d Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
32 public HistoricalDischargeWQFacet() {
49cb65d5932d Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
33 }
49cb65d5932d Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
34
4260
e4a415773b0a Added the 'index' parameter to HistoricalDischargeWQFacet to avoid loosing facets during the merge process in the FLYSArtifactCollection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 4241
diff changeset
35 public HistoricalDischargeWQFacet(int index, String name,
e4a415773b0a Added the 'index' parameter to HistoricalDischargeWQFacet to avoid loosing facets during the merge process in the FLYSArtifactCollection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 4241
diff changeset
36 String description, ComputeType type, String hash, String stateId,
e4a415773b0a Added the 'index' parameter to HistoricalDischargeWQFacet to avoid loosing facets during the merge process in the FLYSArtifactCollection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 4241
diff changeset
37 double value) {
e4a415773b0a Added the 'index' parameter to HistoricalDischargeWQFacet to avoid loosing facets during the merge process in the FLYSArtifactCollection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 4241
diff changeset
38
e4a415773b0a Added the 'index' parameter to HistoricalDischargeWQFacet to avoid loosing facets during the merge process in the FLYSArtifactCollection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 4241
diff changeset
39 super(index, name, description, type, hash, stateId);
4241
49cb65d5932d Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
40 this.value = value;
49cb65d5932d Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
41 }
49cb65d5932d Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
42
49cb65d5932d Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
43 @Override
49cb65d5932d Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
44 public Facet deepCopy() {
49cb65d5932d Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
45 HistoricalDischargeWQFacet copy = new HistoricalDischargeWQFacet();
49cb65d5932d Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
46 copy.set(this);
49cb65d5932d Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
47 copy.value = value;
49cb65d5932d Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
48 return copy;
49cb65d5932d Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
49 }
49cb65d5932d Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
50
49cb65d5932d Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
51 @Override
49cb65d5932d Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
52 public Object getData(Artifact artifact, CallContext context) {
8393
47e96ce9bd79 If context contains pnp, transform W to m.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
53 double v = this.value;
8442
e65aad00b3a1 Do not transform Q values from cm to m.
"Tom Gottfried <tom@intevation.de>"
parents: 8393
diff changeset
54 if (HISTORICAL_DISCHARGE_WQ_W.equals(name)) {
e65aad00b3a1 Do not transform Q values from cm to m.
"Tom Gottfried <tom@intevation.de>"
parents: 8393
diff changeset
55 if (context.getContextValue(PNP) instanceof Number) {
e65aad00b3a1 Do not transform Q values from cm to m.
"Tom Gottfried <tom@intevation.de>"
parents: 8393
diff changeset
56 v = value/100 +
e65aad00b3a1 Do not transform Q values from cm to m.
"Tom Gottfried <tom@intevation.de>"
parents: 8393
diff changeset
57 ((Number)context.getContextValue(PNP)).doubleValue();
e65aad00b3a1 Do not transform Q values from cm to m.
"Tom Gottfried <tom@intevation.de>"
parents: 8393
diff changeset
58 }
e65aad00b3a1 Do not transform Q values from cm to m.
"Tom Gottfried <tom@intevation.de>"
parents: 8393
diff changeset
59 else {
e65aad00b3a1 Do not transform Q values from cm to m.
"Tom Gottfried <tom@intevation.de>"
parents: 8393
diff changeset
60 log.error("Missing datum. Cannot calculate W value.");
e65aad00b3a1 Do not transform Q values from cm to m.
"Tom Gottfried <tom@intevation.de>"
parents: 8393
diff changeset
61 return null;
e65aad00b3a1 Do not transform Q values from cm to m.
"Tom Gottfried <tom@intevation.de>"
parents: 8393
diff changeset
62 }
8393
47e96ce9bd79 If context contains pnp, transform W to m.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
63 }
47e96ce9bd79 If context contains pnp, transform W to m.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
64 return v;
4241
49cb65d5932d Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
65 }
49cb65d5932d Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
66 }
49cb65d5932d Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
67 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :

http://dive4elements.wald.intevation.org