diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java @ 687:06689035024c facets-slt

Added a compute() method to WINFOArtifact which acts as a dispatcher for different computations. It triggers a calculation based on ComputeCallbacks that are generated by the current states. flys-artifacts/branches/facets-slt@2127 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Thu, 16 Jun 2011 07:50:56 +0000
parents 3dc61e00385e
children f8ac04b2dbd0
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java	Wed Jun 15 15:28:54 2011 +0000
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java	Thu Jun 16 07:50:56 2011 +0000
@@ -30,6 +30,7 @@
 import de.intevation.artifactdatabase.DefaultArtifact;
 import de.intevation.artifactdatabase.data.DefaultStateData;
 import de.intevation.artifactdatabase.data.StateData;
+import de.intevation.artifactdatabase.state.Facet;
 import de.intevation.artifactdatabase.state.State;
 import de.intevation.artifactdatabase.state.StateEngine;
 import de.intevation.artifactdatabase.transition.TransitionEngine;
@@ -100,6 +101,9 @@
     /** The data that have been inserted into this artifact.*/
     protected Map<String, StateData> data;
 
+    /** The list of facets supported by this artifact.*/
+    protected List<Facet> facets;
+
 
     /**
      * The default constructor that creates an empty FLYSArtifact.
@@ -107,6 +111,7 @@
     public FLYSArtifact() {
         data             = new TreeMap<String, StateData>();
         previousStateIds = new ArrayList<String>();
+        facets           = new ArrayList<Facet>();
     }
 
 
@@ -1037,7 +1042,7 @@
         Cache cache = CacheFactory.getCache(COMPUTING_CACHE);
 
         if (cache == null) {
-            return callback.compute();
+            return callback.compute(facets);
         }
 
         net.sf.ehcache.Element element = cache.get(key);
@@ -1046,7 +1051,7 @@
             return element.getValue();
         }
 
-        Object result = callback.compute();
+        Object result = callback.compute(facets);
 
         if (result != null) {
             cache.put(new net.sf.ehcache.Element(key, result));

http://dive4elements.wald.intevation.org