diff artifacts/src/main/java/org/dive4elements/river/artifacts/access/Calculation4Access.java @ 5838:5aa05a7a34b7

Rename modules to more fitting names.
author Sascha L. Teichmann <teichmann@intevation.de>
date Thu, 25 Apr 2013 15:23:37 +0200
parents flys-artifacts/src/main/java/org/dive4elements/river/artifacts/access/Calculation4Access.java@bd047b71ab37
children 4897a58c8746
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/access/Calculation4Access.java	Thu Apr 25 15:23:37 2013 +0200
@@ -0,0 +1,91 @@
+package org.dive4elements.river.artifacts.access;
+
+import org.dive4elements.river.artifacts.FLYSArtifact;
+
+import org.dive4elements.river.artifacts.model.Segment;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.apache.log4j.Logger;
+
+import org.dive4elements.river.utils.DoubleUtil;
+
+public class Calculation4Access
+extends      RangeAccess
+{
+    private static Logger log = Logger.getLogger(Calculation4Access.class);
+
+    protected List<Segment> segments;
+
+    protected double [] fromToStep;
+
+    protected Boolean isQ;
+
+    protected Boolean isRange;
+
+
+    public Calculation4Access(FLYSArtifact artifact) {
+        super(artifact, null);
+    }
+
+    public List<Segment> getSegments() {
+        if (segments == null) {
+            String input = getString("wq_values");
+            if (input == null || (input = input.trim()).length() == 0) {
+                log.warn("no wq_values given");
+                segments = Collections.<Segment>emptyList();
+            }
+            else {
+                segments = Segment.parseSegments(input);
+            }
+        }
+        return segments;
+    }
+
+    public boolean isQ() {
+        if (isQ == null) {
+            Boolean value = getBoolean("wq_isq");
+            isQ = value != null && value;
+        }
+        return isQ;
+    }
+
+    public boolean isRange() {
+        if (isRange == null) {
+            String mode = getString("ld_mode");
+            isRange = mode == null || mode.equals("distance");
+        }
+        return isRange;
+    }
+
+    public double [] getFromToStep() {
+        if (fromToStep == null) {
+            // XXX: Is this really needed in this calculation?
+            if (!isRange()) {
+                return null;
+            }
+
+            // XXX: FLYSArtifact sucks!
+            // TODO further use RangeAccess functionality.
+            double [] fromTo = getKmRange();
+
+            if (fromTo == null) {
+                return null;
+            }
+
+            Double dStep = getDouble("ld_step");
+            if (dStep == null) {
+                return null;
+            }
+
+            fromToStep =  new double [] {
+                fromTo[0],
+                fromTo[1],
+                DoubleUtil.round(dStep / 1000d)
+            };
+        }
+        return fromToStep;
+    }
+}
+// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org