annotate artifacts/src/main/java/org/dive4elements/river/artifacts/access/ComputationRangeAccess.java @ 8914:e3519c3e7a0a

Workflow for SINFO-Transport bodies heights inclduing winfo calculation
author gernotbelger
date Tue, 27 Feb 2018 18:06:52 +0100
parents
children 8cc192731c7d
rev   line source
8914
e3519c3e7a0a Workflow for SINFO-Transport bodies heights inclduing winfo calculation
gernotbelger
parents:
diff changeset
1 /** Copyright (C) 2017 by Bundesanstalt für Gewässerkunde
e3519c3e7a0a Workflow for SINFO-Transport bodies heights inclduing winfo calculation
gernotbelger
parents:
diff changeset
2 * Software engineering by
e3519c3e7a0a Workflow for SINFO-Transport bodies heights inclduing winfo calculation
gernotbelger
parents:
diff changeset
3 * Björnsen Beratende Ingenieure GmbH
e3519c3e7a0a Workflow for SINFO-Transport bodies heights inclduing winfo calculation
gernotbelger
parents:
diff changeset
4 * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt
e3519c3e7a0a Workflow for SINFO-Transport bodies heights inclduing winfo calculation
gernotbelger
parents:
diff changeset
5 *
e3519c3e7a0a Workflow for SINFO-Transport bodies heights inclduing winfo calculation
gernotbelger
parents:
diff changeset
6 * This file is Free Software under the GNU AGPL (>=v3)
e3519c3e7a0a Workflow for SINFO-Transport bodies heights inclduing winfo calculation
gernotbelger
parents:
diff changeset
7 * and comes with ABSOLUTELY NO WARRANTY! Check out the
e3519c3e7a0a Workflow for SINFO-Transport bodies heights inclduing winfo calculation
gernotbelger
parents:
diff changeset
8 * documentation coming with Dive4Elements River for details.
e3519c3e7a0a Workflow for SINFO-Transport bodies heights inclduing winfo calculation
gernotbelger
parents:
diff changeset
9 */
e3519c3e7a0a Workflow for SINFO-Transport bodies heights inclduing winfo calculation
gernotbelger
parents:
diff changeset
10 package org.dive4elements.river.artifacts.access;
e3519c3e7a0a Workflow for SINFO-Transport bodies heights inclduing winfo calculation
gernotbelger
parents:
diff changeset
11
e3519c3e7a0a Workflow for SINFO-Transport bodies heights inclduing winfo calculation
gernotbelger
parents:
diff changeset
12 import org.dive4elements.artifactdatabase.data.StateData;
e3519c3e7a0a Workflow for SINFO-Transport bodies heights inclduing winfo calculation
gernotbelger
parents:
diff changeset
13 import org.dive4elements.river.artifacts.D4EArtifact;
e3519c3e7a0a Workflow for SINFO-Transport bodies heights inclduing winfo calculation
gernotbelger
parents:
diff changeset
14 import org.dive4elements.river.artifacts.states.ComputationRangeState;
e3519c3e7a0a Workflow for SINFO-Transport bodies heights inclduing winfo calculation
gernotbelger
parents:
diff changeset
15 import org.dive4elements.river.utils.DoubleUtil;
e3519c3e7a0a Workflow for SINFO-Transport bodies heights inclduing winfo calculation
gernotbelger
parents:
diff changeset
16
e3519c3e7a0a Workflow for SINFO-Transport bodies heights inclduing winfo calculation
gernotbelger
parents:
diff changeset
17 /**
e3519c3e7a0a Workflow for SINFO-Transport bodies heights inclduing winfo calculation
gernotbelger
parents:
diff changeset
18 * Access to data handled by {@link ComputationRangeState}.
e3519c3e7a0a Workflow for SINFO-Transport bodies heights inclduing winfo calculation
gernotbelger
parents:
diff changeset
19 *
e3519c3e7a0a Workflow for SINFO-Transport bodies heights inclduing winfo calculation
gernotbelger
parents:
diff changeset
20 * @author Gernot Belger
e3519c3e7a0a Workflow for SINFO-Transport bodies heights inclduing winfo calculation
gernotbelger
parents:
diff changeset
21 */
e3519c3e7a0a Workflow for SINFO-Transport bodies heights inclduing winfo calculation
gernotbelger
parents:
diff changeset
22 public class ComputationRangeAccess extends RangeAccess {
e3519c3e7a0a Workflow for SINFO-Transport bodies heights inclduing winfo calculation
gernotbelger
parents:
diff changeset
23
e3519c3e7a0a Workflow for SINFO-Transport bodies heights inclduing winfo calculation
gernotbelger
parents:
diff changeset
24 public ComputationRangeAccess(final D4EArtifact artifact) {
e3519c3e7a0a Workflow for SINFO-Transport bodies heights inclduing winfo calculation
gernotbelger
parents:
diff changeset
25 super(artifact);
e3519c3e7a0a Workflow for SINFO-Transport bodies heights inclduing winfo calculation
gernotbelger
parents:
diff changeset
26 }
e3519c3e7a0a Workflow for SINFO-Transport bodies heights inclduing winfo calculation
gernotbelger
parents:
diff changeset
27
e3519c3e7a0a Workflow for SINFO-Transport bodies heights inclduing winfo calculation
gernotbelger
parents:
diff changeset
28 public double[] getFromToStep() {
e3519c3e7a0a Workflow for SINFO-Transport bodies heights inclduing winfo calculation
gernotbelger
parents:
diff changeset
29
e3519c3e7a0a Workflow for SINFO-Transport bodies heights inclduing winfo calculation
gernotbelger
parents:
diff changeset
30 if (!isRange())
e3519c3e7a0a Workflow for SINFO-Transport bodies heights inclduing winfo calculation
gernotbelger
parents:
diff changeset
31 return null;
e3519c3e7a0a Workflow for SINFO-Transport bodies heights inclduing winfo calculation
gernotbelger
parents:
diff changeset
32
e3519c3e7a0a Workflow for SINFO-Transport bodies heights inclduing winfo calculation
gernotbelger
parents:
diff changeset
33 final double[] fromTo = getKmRange();
e3519c3e7a0a Workflow for SINFO-Transport bodies heights inclduing winfo calculation
gernotbelger
parents:
diff changeset
34
e3519c3e7a0a Workflow for SINFO-Transport bodies heights inclduing winfo calculation
gernotbelger
parents:
diff changeset
35 if (fromTo == null)
e3519c3e7a0a Workflow for SINFO-Transport bodies heights inclduing winfo calculation
gernotbelger
parents:
diff changeset
36 return null;
e3519c3e7a0a Workflow for SINFO-Transport bodies heights inclduing winfo calculation
gernotbelger
parents:
diff changeset
37
e3519c3e7a0a Workflow for SINFO-Transport bodies heights inclduing winfo calculation
gernotbelger
parents:
diff changeset
38 final StateData dStep = getArtifact().getData("ld_step");
e3519c3e7a0a Workflow for SINFO-Transport bodies heights inclduing winfo calculation
gernotbelger
parents:
diff changeset
39 if (dStep == null)
e3519c3e7a0a Workflow for SINFO-Transport bodies heights inclduing winfo calculation
gernotbelger
parents:
diff changeset
40 return null;
e3519c3e7a0a Workflow for SINFO-Transport bodies heights inclduing winfo calculation
gernotbelger
parents:
diff changeset
41
e3519c3e7a0a Workflow for SINFO-Transport bodies heights inclduing winfo calculation
gernotbelger
parents:
diff changeset
42 final double[] result = new double[3];
e3519c3e7a0a Workflow for SINFO-Transport bodies heights inclduing winfo calculation
gernotbelger
parents:
diff changeset
43 result[0] = fromTo[0];
e3519c3e7a0a Workflow for SINFO-Transport bodies heights inclduing winfo calculation
gernotbelger
parents:
diff changeset
44 result[1] = fromTo[1];
e3519c3e7a0a Workflow for SINFO-Transport bodies heights inclduing winfo calculation
gernotbelger
parents:
diff changeset
45
e3519c3e7a0a Workflow for SINFO-Transport bodies heights inclduing winfo calculation
gernotbelger
parents:
diff changeset
46 try {
e3519c3e7a0a Workflow for SINFO-Transport bodies heights inclduing winfo calculation
gernotbelger
parents:
diff changeset
47 final String dStepValue = (String) dStep.getValue();
e3519c3e7a0a Workflow for SINFO-Transport bodies heights inclduing winfo calculation
gernotbelger
parents:
diff changeset
48 result[2] = DoubleUtil.round(Double.parseDouble(dStepValue) / 1000d);
e3519c3e7a0a Workflow for SINFO-Transport bodies heights inclduing winfo calculation
gernotbelger
parents:
diff changeset
49 return result;
e3519c3e7a0a Workflow for SINFO-Transport bodies heights inclduing winfo calculation
gernotbelger
parents:
diff changeset
50 }
e3519c3e7a0a Workflow for SINFO-Transport bodies heights inclduing winfo calculation
gernotbelger
parents:
diff changeset
51 catch (final NumberFormatException nfe) {
e3519c3e7a0a Workflow for SINFO-Transport bodies heights inclduing winfo calculation
gernotbelger
parents:
diff changeset
52 nfe.printStackTrace();
e3519c3e7a0a Workflow for SINFO-Transport bodies heights inclduing winfo calculation
gernotbelger
parents:
diff changeset
53 return null;
e3519c3e7a0a Workflow for SINFO-Transport bodies heights inclduing winfo calculation
gernotbelger
parents:
diff changeset
54 }
e3519c3e7a0a Workflow for SINFO-Transport bodies heights inclduing winfo calculation
gernotbelger
parents:
diff changeset
55 }
e3519c3e7a0a Workflow for SINFO-Transport bodies heights inclduing winfo calculation
gernotbelger
parents:
diff changeset
56
e3519c3e7a0a Workflow for SINFO-Transport bodies heights inclduing winfo calculation
gernotbelger
parents:
diff changeset
57 public double[] getKms() {
e3519c3e7a0a Workflow for SINFO-Transport bodies heights inclduing winfo calculation
gernotbelger
parents:
diff changeset
58
e3519c3e7a0a Workflow for SINFO-Transport bodies heights inclduing winfo calculation
gernotbelger
parents:
diff changeset
59 if (isRange())
e3519c3e7a0a Workflow for SINFO-Transport bodies heights inclduing winfo calculation
gernotbelger
parents:
diff changeset
60 return getKmSteps();
e3519c3e7a0a Workflow for SINFO-Transport bodies heights inclduing winfo calculation
gernotbelger
parents:
diff changeset
61
e3519c3e7a0a Workflow for SINFO-Transport bodies heights inclduing winfo calculation
gernotbelger
parents:
diff changeset
62 return getLocations();
e3519c3e7a0a Workflow for SINFO-Transport bodies heights inclduing winfo calculation
gernotbelger
parents:
diff changeset
63 }
e3519c3e7a0a Workflow for SINFO-Transport bodies heights inclduing winfo calculation
gernotbelger
parents:
diff changeset
64 }

http://dive4elements.wald.intevation.org