1 22 package de.laures.cewolf.storage; 23 24 import java.io.Serializable ; 25 26 import javax.servlet.ServletContext ; 27 import javax.servlet.http.HttpServletRequest ; 28 import javax.servlet.http.HttpSession ; 29 import javax.servlet.jsp.PageContext ; 30 31 import de.laures.cewolf.CewolfException; 32 import de.laures.cewolf.ChartImage; 33 import de.laures.cewolf.Storage; 34 import de.laures.cewolf.taglib.util.KeyGenerator; 35 36 43 public class LongTermSessionStorage implements Storage 44 { 45 46 public final String getKey( ChartImage cid ) 47 { 48 return String.valueOf(KeyGenerator.generateKey((Serializable ) cid)); 49 } 50 51 57 public String storeChartImage( ChartImage chartImage, PageContext pageContext ) throws CewolfException 58 { 59 HttpSession session = pageContext.getSession(); 60 SessionStorageGroup ssg = (SessionStorageGroup) session.getAttribute("CewolfCharts"); 61 if ( ssg == null ) 62 { 63 ssg = new SessionStorageGroup(); 64 session.setAttribute("CewolfCharts", ssg); 65 } 66 String cid = getKey(chartImage); 67 SessionStorageItem ssi = new SessionStorageItem(chartImage, cid, chartImage.getTimeoutTime()); 68 ssg.put(cid, ssi); 69 70 return cid; 71 } 72 73 79 public ChartImage getChartImage( String id, HttpServletRequest request ) 80 { 81 HttpSession session = request.getSession(); 82 ChartImage chart = null; 83 SessionStorageGroup ssg = (SessionStorageGroup) session.getAttribute("CewolfCharts"); 84 if ( ssg != null ) 85 { 86 SessionStorageItem ssi = (SessionStorageItem) ssg.get(id); 87 if ( ssi != null ) 88 { 89 chart = ssi.getChart(); 90 } 91 } 92 93 return chart; 94 } 95 100 public void init( ServletContext servletContext ) throws CewolfException { 101 } 102 103 106 public String removeChartImage(String cid, HttpServletRequest request) throws CewolfException { 107 HttpSession session = request.getSession(); 108 if (session == null) 110 { 111 return cid; 112 } 113 SessionStorageGroup ssg = (SessionStorageGroup) session.getAttribute("CewolfCharts"); 114 if ( ssg == null ) 115 { 116 return cid; 118 } 119 ssg.remove(cid); 120 return cid; 121 } 122 } | Popular Tags |