diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/WaterlevelState.java @ 692:22e4bffbe240 facets-slt

Generated facets for each output aspect. flys-artifacts/branches/facets-slt@2132 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Thu, 16 Jun 2011 10:05:44 +0000
parents f8ac04b2dbd0
children af393c5eb2c8
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/WaterlevelState.java	Thu Jun 16 09:04:59 2011 +0000
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/WaterlevelState.java	Thu Jun 16 10:05:44 2011 +0000
@@ -11,16 +11,21 @@
 
 import de.intevation.artifacts.common.utils.XMLUtils;
 
+import de.intevation.artifactdatabase.state.DefaultFacet;
 import de.intevation.artifactdatabase.state.Facet;
 
 import de.intevation.flys.artifacts.FLYSArtifact;
 import de.intevation.flys.artifacts.WINFOArtifact;
 import de.intevation.flys.artifacts.model.ComputeCallback;
 import de.intevation.flys.artifacts.model.ComputeCallbackAdapter;
+import de.intevation.flys.artifacts.model.FacetTypes;
+import de.intevation.flys.artifacts.model.WQKms;
 
 
-public class WaterlevelState extends DefaultState {
-
+public class WaterlevelState
+extends      DefaultState
+implements   FacetTypes
+{
     /** The logger that is used in this state.*/
     private static Logger logger = Logger.getLogger(WaterlevelState.class);
 
@@ -45,8 +50,38 @@
         return new ComputeCallbackAdapter() {
 
             @Override
-            public Object computeAdvance(List<Facet> facets) {
-                return winfo.getWaterlevelData();
+            public Object computeAdvance(
+                CallContext context,
+                List<Facet> facets)
+            {
+                WQKms[] res = winfo.getWaterlevelData();
+
+                if (res == null) {
+                    logger.debug("No results given.");
+                    return null;
+                }
+
+                for (int i = 0; i < res.length; i++) {
+                    String nameW = null;
+                    String nameQ = null;
+
+                    if (winfo.isQ()) {
+                        nameQ = res[i].getName();
+                        nameW = "W(" + nameQ + ")";
+                    }
+                    else {
+                        nameW = res[i].getName();
+                        nameQ = "Q(" + nameQ + ")";
+                    }
+
+                    Facet w = new DefaultFacet(i, LONGITUDINAL_W, nameW);
+                    Facet q = new DefaultFacet(i, LONGITUDINAL_Q, nameQ);
+
+                    facets.add(w);
+                    facets.add(q);
+                }
+
+                return res;
             }
         };
     }

http://dive4elements.wald.intevation.org