Mercurial > dive4elements > gnv-client
diff gnv-artifacts/src/main/java/de/intevation/gnv/transition/OutputTransitionBase.java @ 99:bb45c5097cb6
ehcache Integration for storing the chartresultvalues
gnv-artifacts/trunk@146 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Tim Englich <tim.englich@intevation.de> |
---|---|
date | Mon, 28 Sep 2009 14:17:15 +0000 |
parents | bd284d8306db |
children | ef157bd2fa92 |
line wrap: on
line diff
--- a/gnv-artifacts/src/main/java/de/intevation/gnv/transition/OutputTransitionBase.java Mon Sep 28 10:20:41 2009 +0000 +++ b/gnv-artifacts/src/main/java/de/intevation/gnv/transition/OutputTransitionBase.java Mon Sep 28 14:17:15 2009 +0000 @@ -3,14 +3,18 @@ */ package de.intevation.gnv.transition; +import java.io.OutputStream; import java.util.ArrayList; import java.util.Collection; +import net.sf.ehcache.Element; + import org.apache.log4j.Logger; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import de.intevation.artifactdatabase.Config; +import de.intevation.gnv.artifacts.cache.CacheFactory; import de.intevation.gnv.geobackend.base.Result; import de.intevation.gnv.transition.exception.TransitionException; @@ -31,11 +35,7 @@ * the logger, used to log exceptions and additonaly information */ private static Logger log = Logger.getLogger(OutputTransitionBase.class); - /** - * The Results which should be used for Rendering the Charts or - * do other output - */ - protected Collection<Result> chartResult = null; + /** * The different Outputmodes which are provided by an OutputTransition @@ -108,21 +108,47 @@ * @see de.intevation.gnv.transition.TransitionBase#advance() */ @Override - public void advance() throws TransitionException { + public void advance(String uuid) throws TransitionException { log.debug("OutputTransitionBase.advance"); - if (this.chartResult == null){ - super.advance(); + if (this.getChartResult(uuid) == null){ + super.advance(uuid); } } /** - * @see de.intevation.gnv.transition.TransitionBase#getInputData() + * @see de.intevation.gnv.transition.OutputTransition#out(java.lang.String, java.util.Collection, java.io.OutputStream) + */ + public void out(String outputMode, Collection<InputData> inputData, + OutputStream outputStream) throws TransitionException { + } + + /** + * @return + */ + protected Collection<Result> getChartResult(String uuid) { + log.debug("OutputTransitionBase.getChartResult"); + if (CacheFactory.getInstance().isInitialized()){ + String key = uuid+super.getID(); + log.debug("Hash for Queryelements: "+key); + Element value = CacheFactory.getInstance().getCache().get(key); + if (value != null){ + return (Collection<Result>)(value.getObjectValue()); + } + } + return null; + } + + /** + * @see de.intevation.gnv.transition.TransitionBase#purifyResult(java.util.Collection, java.lang.String) */ @Override - public Collection<InputData> getInputData() throws TransitionException { - log.debug("OutputTransitionBase.getInputData"); - this.chartResult = null; - return super.getInputData(); + protected void purifyResult(Collection<Result> result, String uuid) { + log.debug("OutputTransitionBase.purifyResult"); + if (CacheFactory.getInstance().isInitialized()){ + String key = uuid+super.getID(); + log.debug("Hash for Queryelements: "+key); + CacheFactory.getInstance().getCache().put(new Element(key, result)); + } } }