Mercurial > dive4elements > river
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));