/**
* The contents of this file are subject to the license and copyright
* detailed in the LICENSE and NOTICE files at the root of the source
* tree and available online at
*
* http://www.dspace.org/license/
*/
package org.dspace.plugin;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.dspace.authorize.AuthorizeException;
import org.dspace.content.Item;
import org.dspace.core.Context;
/**
* Interface that must be implemented by any plugin wanting to be called at the
* inception of the Item page (in HandleServlet). Classes that
* implement the process method and appear in the configuration will be run
* before the at the start of preparing the item home page has any chance
* to continue its execution. <b>Note that the plugin is executed also before
* than the READ permission on the item is checked</b>
*
* @author Andrea Bollini
*
*/
public interface ItemHomeProcessor
{
/**
* execute the process
*
* @param context the DSpace context
* @param request the HTTP request
* @param response the HTTP response
* @param item the item object whose home page we are on
*
* @throws PluginException any particular problem with the plugin execution
* @throws AuthorizeException Authorisation errors during plugin execution
*/
void process(Context context, HttpServletRequest request,
HttpServletResponse response, Item item)
throws PluginException, AuthorizeException;
}