changeset 6551:8c226c5089e0

BedDiff*Generator: Refactored to avoid code dupes. The problematic setting will not crash anymore, but diagram will be empty.
author Felix Wolfsteller <felix.wolfsteller@intevation.de>
date Wed, 10 Jul 2013 10:05:52 +0200 (2013-07-10)
parents 7cf3b3bcd439
children 95aecf6cc5ad
files artifacts/src/main/java/org/dive4elements/river/exports/minfo/BedDiffBaseGenerator.java artifacts/src/main/java/org/dive4elements/river/exports/minfo/BedDiffHeightYearGenerator.java artifacts/src/main/java/org/dive4elements/river/exports/minfo/BedDifferenceYearGenerator.java
diffstat 3 files changed, 63 insertions(+), 63 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/artifacts/src/main/java/org/dive4elements/river/exports/minfo/BedDiffBaseGenerator.java	Wed Jul 10 10:05:52 2013 +0200
@@ -0,0 +1,58 @@
+/* Copyright (C) 2013 by Bundesanstalt für Gewässerkunde
+ * Software engineering by Intevation GmbH
+ *
+ * This file is Free Software under the GNU AGPL (>=v3)
+ * and comes with ABSOLUTELY NO WARRANTY! Check out the
+ * documentation coming with Dive4Elements River for details.
+ */
+
+package org.dive4elements.river.exports.minfo;
+
+import org.apache.log4j.Logger;
+
+import org.dive4elements.artifactdatabase.state.ArtifactAndFacet;
+import org.dive4elements.river.artifacts.model.minfo.BedDifferencesResult;
+import org.dive4elements.river.jfree.Bounds;
+import org.dive4elements.river.jfree.DoubleBounds;
+import org.dive4elements.river.exports.fixings.FixChartGenerator;
+
+/** Base for BedDiff*Year*Generators, to avoid duplicate code of setContextBounds. */
+public abstract class BedDiffBaseGenerator
+extends FixChartGenerator
+{
+    /** The logger that is used in this generator. */
+    private static Logger logger = Logger.getLogger(BedDiffBaseGenerator.class);
+
+    /** Set context values for something. */
+    public void setContextBounds(ArtifactAndFacet bundle) {
+        Bounds xBounds = getXBounds(0);
+        if (xBounds != null && getDomainAxisRange() != null) {
+            Bounds bounds =
+                calculateZoom(xBounds, getDomainAxisRange());
+            context.putContextValue("startkm", bounds.getLower());
+            context.putContextValue("endkm", bounds.getUpper());
+        }
+        else if (xBounds != null && getDomainAxisRange() == null) {
+            context.putContextValue("startkm", xBounds.getLower());
+            context.putContextValue("endkm", xBounds.getUpper());
+        }
+        else if (xBounds == null && getDomainAxisRange() == null) {
+            BedDifferencesResult data = (BedDifferencesResult)bundle.getData(context);
+            if (data.getKms().size() > 0) {
+                context.putContextValue("startkm", data.getKms().min());
+                context.putContextValue("endkm", data.getKms().max());
+            }
+            else {
+                logger.warn("No data to define start and end km");
+            }
+        }
+        else if (xBounds == null && getDomainAxisRange() != null){
+            BedDifferencesResult data = (BedDifferencesResult)bundle.getData(context);
+            Bounds b = new DoubleBounds(data.getKms().min(), data.getKms().max());
+            Bounds bounds =
+                calculateZoom(b, getDomainAxisRange());
+            context.putContextValue("startkm", bounds.getLower());
+            context.putContextValue("endkm", bounds.getUpper());
+        }
+    }
+}
--- a/artifacts/src/main/java/org/dive4elements/river/exports/minfo/BedDiffHeightYearGenerator.java	Wed Jul 10 09:31:43 2013 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/exports/minfo/BedDiffHeightYearGenerator.java	Wed Jul 10 10:05:52 2013 +0200
@@ -28,7 +28,7 @@
 
 
 public class BedDiffHeightYearGenerator
-extends FixChartGenerator
+extends BedDiffBaseGenerator
 implements FacetTypes
 {
     public enum YAXIS {
@@ -120,36 +120,6 @@
         }
     }
 
-    public void setContextBounds(ArtifactAndFacet bundle) {
-        if (getXBounds(0) != null && getDomainAxisRange() != null) {
-            Bounds bounds =
-                calculateZoom(getXBounds(0), getDomainAxisRange());
-            context.putContextValue("startkm", bounds.getLower());
-            context.putContextValue("endkm", bounds.getUpper());
-        }
-        else if (getXBounds(0) != null && getDomainAxisRange() == null) {
-            context.putContextValue("startkm", getXBounds(0).getLower());
-            context.putContextValue("endkm", getXBounds(0).getUpper());
-        }
-        else if (getXBounds(0) == null && getDomainAxisRange() == null) {
-            BedDifferencesResult data = (BedDifferencesResult)bundle.getData(context);
-            if (data.getKms().size() > 0) {
-                context.putContextValue("startkm", data.getKms().min());
-                context.putContextValue("endkm", data.getKms().max());
-            }
-            else {
-                logger.warn("No data to define start and end km");
-            }
-        }
-        else if (getXBounds(0) == null && getDomainAxisRange() != null){
-            BedDifferencesResult data = (BedDifferencesResult)bundle.getData(context);
-            Bounds b = new DoubleBounds(data.getKms().min(), data.getKms().max());
-            Bounds bounds =
-                calculateZoom(b, getDomainAxisRange());
-            context.putContextValue("startkm", bounds.getLower());
-            context.putContextValue("endkm", bounds.getUpper());
-        }
-    }
 
     @Override
     protected String getDefaultChartTitle() {
--- a/artifacts/src/main/java/org/dive4elements/river/exports/minfo/BedDifferenceYearGenerator.java	Wed Jul 10 09:31:43 2013 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/exports/minfo/BedDifferenceYearGenerator.java	Wed Jul 10 10:05:52 2013 +0200
@@ -34,7 +34,7 @@
 
 
 public class BedDifferenceYearGenerator
-extends FixChartGenerator
+extends BedDiffBaseGenerator
 implements FacetTypes
 {
     public enum YAXIS {
@@ -86,36 +86,6 @@
         };
     }
 
-    public void setContextBounds(ArtifactAndFacet bundle) {
-        if (getXBounds(0) != null && getDomainAxisRange() != null) {
-            Bounds bounds =
-                calculateZoom(getXBounds(0), getDomainAxisRange());
-            context.putContextValue("startkm", bounds.getLower());
-            context.putContextValue("endkm", bounds.getUpper());
-        }
-        else if (getXBounds(0) != null && getDomainAxisRange() == null) {
-            context.putContextValue("startkm", getXBounds(0).getLower());
-            context.putContextValue("endkm", getXBounds(0).getUpper());
-        }
-        else if (getXBounds(0) == null && getDomainAxisRange() == null) {
-            BedDifferencesResult data = (BedDifferencesResult)bundle.getData(context);
-            if (data.getKms().size() > 0) {
-                context.putContextValue("startkm", data.getKms().min());
-                context.putContextValue("endkm", data.getKms().max());
-            }
-            else {
-                logger.warn("No data to define start and end km");
-            }
-        }
-        else if (getXBounds(0) == null && getDomainAxisRange() != null){
-            BedDifferencesResult data = (BedDifferencesResult)bundle.getData(context);
-            Bounds b = new DoubleBounds(data.getKms().min(), data.getKms().max());
-            Bounds bounds =
-                calculateZoom(b, getDomainAxisRange());
-            context.putContextValue("startkm", bounds.getLower());
-            context.putContextValue("endkm", bounds.getUpper());
-        }
-    }
 
     @Override
     public void doOut(ArtifactAndFacet bundle, Document attr, boolean visible) {
@@ -134,7 +104,9 @@
             return;
         }
 
-        setContextBounds(bundle);
+        if (bundle.getData(context) instanceof BedDifferencesResult) {
+            setContextBounds(bundle);
+        }
 
         Processor processor = new KMIndexProcessor();
         Processor woutp = new WOutProcessor();

http://dive4elements.wald.intevation.org