franta-hg@1: /* ================================================================ franta-hg@1: * Cewolf : Chart enabling Web Objects Framework franta-hg@1: * ================================================================ franta-hg@1: * franta-hg@1: * Project Info: http://cewolf.sourceforge.net franta-hg@1: * Project Lead: Guido Laures (guido@laures.de); franta-hg@1: * franta-hg@1: * (C) Copyright 2002, by Guido Laures franta-hg@1: * franta-hg@1: * This library is free software; you can redistribute it and/or modify it under the terms franta-hg@1: * of the GNU Lesser General Public License as published by the Free Software Foundation; franta-hg@1: * either version 2.1 of the License, or (at your option) any later version. franta-hg@1: * franta-hg@1: * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; franta-hg@1: * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. franta-hg@1: * See the GNU Lesser General Public License for more details. franta-hg@1: * franta-hg@1: * You should have received a copy of the GNU Lesser General Public License along with this franta-hg@1: * library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, franta-hg@1: * Boston, MA 02111-1307, USA. franta-hg@1: */ franta-hg@1: franta-hg@1: package de.laures.cewolf; franta-hg@1: franta-hg@1: import javax.servlet.ServletContext; franta-hg@1: import javax.servlet.http.HttpServletRequest; franta-hg@1: import javax.servlet.http.HttpSession; franta-hg@1: import javax.servlet.jsp.PageContext; franta-hg@1: franta-hg@1: /** franta-hg@1: * Pluggable storage. Implement this class to change the franta-hg@1: * storage concept which Cewolf uses to store chart imanges and franta-hg@1: * provide the implementation class name as init paramter storage franta-hg@1: * for Cewolf servlet. franta-hg@1: * @author glaures franta-hg@1: */ franta-hg@1: public interface Storage{ franta-hg@1: franta-hg@1: /** franta-hg@1: * Stores a chart image. franta-hg@1: * @param cid the image to be stored franta-hg@1: * @param servletContext servletContext which might be needed franta-hg@1: * @return String the storage id which is used to find the image in storage franta-hg@1: */ franta-hg@1: public String storeChartImage(ChartImage chartImage, PageContext pageContext) throws CewolfException; franta-hg@1: franta-hg@1: /** franta-hg@1: * Retrieves a chart image. franta-hg@1: * @param id the id of the image franta-hg@1: * @param request the request franta-hg@1: * @return ChartImage the stored image instance franta-hg@1: */ franta-hg@1: public ChartImage getChartImage(String id, HttpServletRequest request); franta-hg@1: franta-hg@1: /** franta-hg@1: * Tests if a chart image is already available in thsi store.. franta-hg@1: * @param chartImage the image to test franta-hg@1: * @param pageContext the pageContext franta-hg@1: * @return true if a stored instance of this image is availbale franta-hg@1: */ franta-hg@1: // public boolean contains(ChartImage chartImage, PageContext pageContext); franta-hg@1: franta-hg@1: /** franta-hg@1: * Returns the key for this franta-hg@1: * @param chartImage franta-hg@1: * @return String franta-hg@1: */ franta-hg@1: // public String getKey(ChartImage chartImage); franta-hg@1: franta-hg@1: /** franta-hg@1: * Method init. franta-hg@1: * @param servletContext franta-hg@1: * @throws CewolfException franta-hg@1: */ franta-hg@1: public void init(ServletContext servletContext) throws CewolfException; franta-hg@1: franta-hg@1: franta-hg@1: /** franta-hg@1: * Removes the image from the storage franta-hg@1: * @param imgId Image id franta-hg@1: * @param request Servlet request franta-hg@1: * @return Image id franta-hg@1: * @throws CewolfException franta-hg@1: */ franta-hg@1: public String removeChartImage(String imgId, HttpServletRequest request) franta-hg@1: throws CewolfException; franta-hg@1: }