diff flys-artifacts/src/main/java/de/intevation/flys/exports/ComputedDischargeCurveGenerator.java @ 696:708b270dfd30 facets-slt

OutGenerators use now facets to fetch necessary data. flys-artifacts/branches/facets-slt@2140 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Fri, 17 Jun 2011 09:19:43 +0000
parents 45cd58a2a2bb
children f3fd8c9b7f51
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/exports/ComputedDischargeCurveGenerator.java	Thu Jun 16 14:31:41 2011 +0000
+++ b/flys-artifacts/src/main/java/de/intevation/flys/exports/ComputedDischargeCurveGenerator.java	Fri Jun 17 09:19:43 2011 +0000
@@ -11,7 +11,8 @@
 
 import de.intevation.artifactdatabase.state.Facet;
 
-import de.intevation.flys.artifacts.WINFOArtifact;
+import de.intevation.flys.artifacts.FLYSArtifact;
+import de.intevation.flys.artifacts.model.FacetTypes;
 import de.intevation.flys.artifacts.model.WQKms;
 
 
@@ -20,8 +21,10 @@
  *
  * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
  */
-public class ComputedDischargeCurveGenerator extends DischargeCurveGenerator {
-
+public class ComputedDischargeCurveGenerator
+extends      DischargeCurveGenerator
+implements   FacetTypes
+{
     /** The logger used in this generator.*/
     private static Logger logger =
         Logger.getLogger(ComputedDischargeCurveGenerator.class);
@@ -68,10 +71,24 @@
 
     @Override
     public void doOut(Artifact artifact, Facet facet, Document attr) {
-        logger.debug("ComputedDischargeCurveGenerator.doOut");
+        String name = facet != null ? facet.getName() : null;
 
-        WQKms wqkms = getData(artifact);
+        logger.debug("ComputedDischargeCurveGenerator.doOut: " + name);
 
+        FLYSArtifact flys = (FLYSArtifact) artifact;
+        Facet        f    = flys.getNativeFacet(facet);
+
+        if (name != null && name.equals(COMPUTED_DISCHARGE_Q)) {
+            doQOut((WQKms) f.getData(artifact, context));
+        }
+        else {
+            logger.warn("Unknown facet type for computed discharge: " + name);
+            return;
+        }
+    }
+
+
+    protected void doQOut(WQKms wqkms) {
         int size = wqkms.size();
 
         double[][] data = new double[2][size];
@@ -88,15 +105,6 @@
     }
 
 
-    protected WQKms getData(Artifact artifact) {
-        logger.debug("ComputedDischargeCurveGenerator.getData");
-
-        WINFOArtifact winfoArtifact = (WINFOArtifact) artifact;
-
-        return winfoArtifact.getComputedDischargeCurveData();
-    }
-
-
     protected String getSeriesName(WQKms wqkms) {
         Object[] args = new Object[] {
             getRiverName(),

http://dive4elements.wald.intevation.org