diff artifacts/src/main/java/org/dive4elements/river/artifacts/states/WaterlevelInfoState.java @ 9425:3f49835a00c3

Extended CrossSectionFacet so it may fetch different data from within the artifact result. Also allows to have acces to the potentially already computed artifact result via its normal computation cache.
author gernotbelger
date Fri, 17 Aug 2018 15:31:02 +0200
parents 5e38e2924c07
children
line wrap: on
line diff
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/states/WaterlevelInfoState.java	Fri Aug 17 14:29:05 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/states/WaterlevelInfoState.java	Fri Aug 17 15:31:02 2018 +0200
@@ -51,18 +51,19 @@
         CallMeta     meta,
         List<Facet>  facets
     ) {
-        return compute((WINFOArtifact) artifact, hash, facets, null);
+        return compute((WINFOArtifact) artifact, ComputeType.INIT, hash, facets, null);
     }
 
 
-    protected Object compute(
+    private Object compute(
         WINFOArtifact winfo,
+        ComputeType type,
         String        hash,
         List<Facet>   facets,
         Object        old
     ) {
         log.debug("WaterlevelInfoState.compute");
-        String id = getID();
+        String stateId = getID();
 
         CalculationResult res = old instanceof CalculationResult
             ? (CalculationResult)old
@@ -91,9 +92,9 @@
             log.debug("WaterlevelInfoState Create facet: " + nameQ);
 
             Facet w = new WaterlevelFacet(
-                i, LONGITUDINAL_W, nameW, ComputeType.ADVANCE, id, hash);
+                i, LONGITUDINAL_W, nameW, ComputeType.ADVANCE, stateId, hash);
             Facet q = new WaterlevelFacet(
-                i, LONGITUDINAL_Q, nameQ, ComputeType.ADVANCE, id, hash);
+                i, LONGITUDINAL_Q, nameQ, ComputeType.ADVANCE, stateId, hash);
 
             facets.add(w);
             facets.add(q);
@@ -101,21 +102,20 @@
 
         if (wqkms.length > 0) {
             Facet wst = new DataFacet(
-                WST, "WST data", ComputeType.ADVANCE, hash, id);
+                WST, "WST data", ComputeType.ADVANCE, hash, stateId);
             Facet csv = new DataFacet(
-                CSV, "CSV data", ComputeType.ADVANCE, hash, id);
+                CSV, "CSV data", ComputeType.ADVANCE, hash, stateId);
 
             facets.add(wst);
             facets.add(csv);
         }
 
         if (res.getReport().hasProblems()) {
-            facets.add(new ReportFacet(ComputeType.ADVANCE, hash, id));
+            facets.add(new ReportFacet(ComputeType.ADVANCE, hash, stateId));
         }
 
         // TODO Adjust to WaterlevelState - implementation.
-        facets.add(new CrossSectionWaterLineFacet(0,
-                "Q=" + winfo.getDataAsString("wq_single")));
+        facets.add(new CrossSectionWaterLineFacet(0, "Q=" + winfo.getDataAsString("wq_single"), type, hash, stateId, null));
 
         // Assume to be in wq_single mode.
         return res;
@@ -133,7 +133,7 @@
         List<Facet>  facets,
         Object       old
     ) {
-        return compute((WINFOArtifact) artifact, hash, facets, old);
+        return compute((WINFOArtifact) artifact, ComputeType.FEED, hash, facets, old);
     }
 
 
@@ -148,7 +148,7 @@
         List<Facet>  facets,
         Object       old
     ) {
-        return compute((WINFOArtifact) artifact, hash, facets, old);
+        return compute((WINFOArtifact) artifact, ComputeType.ADVANCE, hash, facets, old);
     }
 }
 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :

http://dive4elements.wald.intevation.org