diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/DischargeLongitudinalSection.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 708b270dfd30
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/DischargeLongitudinalSection.java	Thu Jun 16 09:04:59 2011 +0000
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/DischargeLongitudinalSection.java	Thu Jun 16 10:05:44 2011 +0000
@@ -4,15 +4,23 @@
 
 import org.apache.log4j.Logger;
 
+import de.intevation.artifacts.CallContext;
+
+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;
+import de.intevation.flys.artifacts.model.WQCKms;
 
-public class DischargeLongitudinalSection extends DefaultState {
-
+public class DischargeLongitudinalSection
+extends      DefaultState
+implements   FacetTypes
+{
     private static Logger logger =
         Logger.getLogger(DischargeLongitudinalSection.class);
 
@@ -26,8 +34,54 @@
         return new ComputeCallbackAdapter() {
 
             @Override
-            public Object computeAdvance(List<Facet> facets) {
-                return winfo.getDischargeLongitudinalSectionData();
+            public Object computeAdvance(
+                CallContext context,
+                List<Facet> facets)
+            {
+                WQKms res[] = winfo.getDischargeLongitudinalSectionData();
+
+                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, DISCHARGE_LONGITUDINAL_W, nameW);
+
+                    Facet q = new DefaultFacet(
+                        i, DISCHARGE_LONGITUDINAL_Q, nameQ);
+
+                    facets.add(w);
+                    facets.add(q);
+
+                    if (res[i] instanceof WQCKms) {
+                        // TODO DO i18n
+
+                        String nameC = nameW.replace(
+                            "Benutzerdefiniert",
+                            "Benutzerdefiniert [korrigiert]");
+
+                        Facet c = new DefaultFacet(
+                            i, DISCHARGE_LONGITUDINAL_C, nameC);
+
+                        facets.add(c);
+                    }
+                }
+
+                return res;
             }
         };
 

http://dive4elements.wald.intevation.org