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: }