annotate artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/SedimentDensityFacet.java @ 7199:baf04164fcc6

issue1435: Stubs for SedimentDensityFacet and -Artifact.
author Felix Wolfsteller <felix.wolfsteller@intevation.de>
date Mon, 30 Sep 2013 09:38:09 +0200
parents
children e798658cc0ed
rev   line source
7199
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
2 * Software engineering by Intevation GmbH
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
3 *
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
4 * This file is Free Software under the GNU AGPL (>=v3)
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
6 * documentation coming with Dive4Elements River for details.
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
7 */
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
8
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
9 package org.dive4elements.river.artifacts.model.minfo;
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
10
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
11 import java.util.ArrayList;
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
12 import java.util.Collections;
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
13 import java.util.List;
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
14 import java.util.Map;
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
15
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
16 import gnu.trove.TDoubleArrayList;
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
17
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
18 import org.dive4elements.artifactdatabase.state.Facet;
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
19
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
20 import org.dive4elements.artifacts.Artifact;
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
21 import org.dive4elements.artifacts.CallContext;
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
22
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
23 import org.dive4elements.river.artifacts.D4EArtifact;
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
24
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
25 import org.dive4elements.river.artifacts.model.CalculationResult;
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
26 import org.dive4elements.river.artifacts.model.DataFacet;
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
27 import org.dive4elements.river.artifacts.model.FacetTypes;
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
28
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
29 import org.dive4elements.river.artifacts.states.DefaultState.ComputeType;
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
30
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
31 import org.dive4elements.river.utils.RiverUtils;
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
32
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
33 import org.apache.log4j.Logger;
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
34
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
35
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
36 /** Facet to access sediment density values measured in one year. */
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
37 public class SedimentDensityFacet
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
38 extends DataFacet
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
39 {
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
40 /** Very own logger. */
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
41 private static Logger logger = Logger.getLogger(SedimentDensityFacet.class);
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
42
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
43 /** Used as tolerance value when fetching measurement stations. */
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
44 private static double EPSILON = 1e-5;
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
45
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
46
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
47 public SedimentDensityFacet() {
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
48 }
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
49
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
50 public SedimentDensityFacet(int idx, String name, String description,
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
51 ComputeType type, String stateId, String hash) {
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
52 super(idx, name, description, type, hash, stateId);
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
53 }
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
54
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
55 @Override
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
56 public Object getData(Artifact artifact, CallContext context) {
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
57 logger.debug("Get data for sediment density at index: " + index);
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
58
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
59 D4EArtifact flys = (D4EArtifact) artifact;
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
60
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
61 CalculationResult res = (CalculationResult) flys.compute(context, hash,
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
62 stateId, type, false);
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
63
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
64 if (res == null) {
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
65 logger.error("No CalculationResult");
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
66 }
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
67
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
68 return null;
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
69 }
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
70
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
71
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
72 /** Copy deeply. */
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
73 @Override
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
74 public Facet deepCopy() {
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
75 SedimentDensityFacet copy = new SedimentDensityFacet();
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
76 copy.set(this);
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
77 copy.type = type;
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
78 copy.hash = hash;
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
79 copy.stateId = stateId;
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
80 return copy;
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
81 }
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
82 }
baf04164fcc6 issue1435: Stubs for SedimentDensityFacet and -Artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
83 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org