comparison 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
comparison
equal deleted inserted replaced
98:156db25ad4b4 99:bb45c5097cb6
1 /** 1 /**
2 * 2 *
3 */ 3 */
4 package de.intevation.gnv.transition; 4 package de.intevation.gnv.transition;
5 5
6 import java.io.OutputStream;
6 import java.util.ArrayList; 7 import java.util.ArrayList;
7 import java.util.Collection; 8 import java.util.Collection;
9
10 import net.sf.ehcache.Element;
8 11
9 import org.apache.log4j.Logger; 12 import org.apache.log4j.Logger;
10 import org.w3c.dom.Node; 13 import org.w3c.dom.Node;
11 import org.w3c.dom.NodeList; 14 import org.w3c.dom.NodeList;
12 15
13 import de.intevation.artifactdatabase.Config; 16 import de.intevation.artifactdatabase.Config;
17 import de.intevation.gnv.artifacts.cache.CacheFactory;
14 import de.intevation.gnv.geobackend.base.Result; 18 import de.intevation.gnv.geobackend.base.Result;
15 import de.intevation.gnv.transition.exception.TransitionException; 19 import de.intevation.gnv.transition.exception.TransitionException;
16 20
17 /** 21 /**
18 * @author Tim Englich <tim.englich@intevation.de> 22 * @author Tim Englich <tim.englich@intevation.de>
29 33
30 /** 34 /**
31 * the logger, used to log exceptions and additonaly information 35 * the logger, used to log exceptions and additonaly information
32 */ 36 */
33 private static Logger log = Logger.getLogger(OutputTransitionBase.class); 37 private static Logger log = Logger.getLogger(OutputTransitionBase.class);
34 /** 38
35 * The Results which should be used for Rendering the Charts or
36 * do other output
37 */
38 protected Collection<Result> chartResult = null;
39 39
40 /** 40 /**
41 * The different Outputmodes which are provided by an OutputTransition 41 * The different Outputmodes which are provided by an OutputTransition
42 */ 42 */
43 protected Collection<OutputMode> outputModes = null; 43 protected Collection<OutputMode> outputModes = null;
106 106
107 /** 107 /**
108 * @see de.intevation.gnv.transition.TransitionBase#advance() 108 * @see de.intevation.gnv.transition.TransitionBase#advance()
109 */ 109 */
110 @Override 110 @Override
111 public void advance() throws TransitionException { 111 public void advance(String uuid) throws TransitionException {
112 log.debug("OutputTransitionBase.advance"); 112 log.debug("OutputTransitionBase.advance");
113 if (this.chartResult == null){ 113 if (this.getChartResult(uuid) == null){
114 super.advance(); 114 super.advance(uuid);
115 } 115 }
116 } 116 }
117 117
118 /** 118 /**
119 * @see de.intevation.gnv.transition.TransitionBase#getInputData() 119 * @see de.intevation.gnv.transition.OutputTransition#out(java.lang.String, java.util.Collection, java.io.OutputStream)
120 */
121 public void out(String outputMode, Collection<InputData> inputData,
122 OutputStream outputStream) throws TransitionException {
123 }
124
125 /**
126 * @return
127 */
128 protected Collection<Result> getChartResult(String uuid) {
129 log.debug("OutputTransitionBase.getChartResult");
130 if (CacheFactory.getInstance().isInitialized()){
131 String key = uuid+super.getID();
132 log.debug("Hash for Queryelements: "+key);
133 Element value = CacheFactory.getInstance().getCache().get(key);
134 if (value != null){
135 return (Collection<Result>)(value.getObjectValue());
136 }
137 }
138 return null;
139 }
140
141 /**
142 * @see de.intevation.gnv.transition.TransitionBase#purifyResult(java.util.Collection, java.lang.String)
120 */ 143 */
121 @Override 144 @Override
122 public Collection<InputData> getInputData() throws TransitionException { 145 protected void purifyResult(Collection<Result> result, String uuid) {
123 log.debug("OutputTransitionBase.getInputData"); 146 log.debug("OutputTransitionBase.purifyResult");
124 this.chartResult = null; 147 if (CacheFactory.getInstance().isInitialized()){
125 return super.getInputData(); 148 String key = uuid+super.getID();
149 log.debug("Hash for Queryelements: "+key);
150 CacheFactory.getInstance().getCache().put(new Element(key, result));
151 }
126 } 152 }
127 153
128 } 154 }

http://dive4elements.wald.intevation.org