diff flys-artifacts/src/main/java/org/dive4elements/river/artifacts/model/fixings/FixingsFacet.java @ 5831:bd047b71ab37

Repaired internal references
author Sascha L. Teichmann <teichmann@intevation.de>
date Thu, 25 Apr 2013 12:06:39 +0200
parents flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/fixings/FixingsFacet.java@b195fede1c3b
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/flys-artifacts/src/main/java/org/dive4elements/river/artifacts/model/fixings/FixingsFacet.java	Thu Apr 25 12:06:39 2013 +0200
@@ -0,0 +1,52 @@
+package org.dive4elements.river.artifacts.model.fixings;
+
+import org.dive4elements.artifacts.CallContext;
+import org.dive4elements.river.artifacts.model.DataFacet;
+import org.dive4elements.river.artifacts.states.DefaultState.ComputeType;
+
+/**
+ * Facet to access the current Km from the context safely
+ *
+ * @author <a href="mailto:bjoern.ricks@intevation.de">Björn Ricks</a>
+ */
+public class FixingsFacet extends DataFacet {
+
+    public static final Double INVALID_KM = Double.valueOf(-1d);
+    public static final String CURRENT_KM = "currentKm";
+
+    public FixingsFacet() {
+    }
+
+    public  FixingsFacet(String name, String description) {
+        super(0, name, description, ComputeType.ADVANCE, null, null);
+    }
+
+    public FixingsFacet(
+            int         index,
+            String      name,
+            String      description,
+            ComputeType type,
+            String      hash,
+            String      stateId
+            ) {
+        super(index, name, description, type, hash, stateId);
+    }
+
+    /**
+     * Returns the current km from the context.
+     * If the context is null or doesn't contain a currentKm then a double value of -1 will
+     *  be returned.
+     * @param context The CallContext instance
+     * @return the current km as double
+     */
+    protected double getCurrentKm(CallContext context) {
+        if (context == null) {
+            return INVALID_KM;
+        }
+        Double dkm = (Double)context.getContextValue(CURRENT_KM);
+        if (dkm == null) {
+            return INVALID_KM;
+        }
+        return dkm.doubleValue();
+    }
+}

http://dive4elements.wald.intevation.org