01: package org.sakaiproject.portal.render.api;
02:
03: import java.io.IOException;
04:
05: import javax.servlet.ServletContext;
06: import javax.servlet.http.HttpServletRequest;
07: import javax.servlet.http.HttpServletResponse;
08:
09: import org.sakaiproject.site.api.ToolConfiguration;
10:
11: /**
12: * Service responsible for preprocessing and rendering tools within a Sakai
13: * portal.
14: *
15: * @since Sakai 2.2.3
16: * @version $Rev: 21708 $
17: */
18: public interface ToolRenderService {
19:
20: /**
21: * Perfrorm any preperatory processing for the specified tool.
22: *
23: * @param request
24: * the servlet request
25: * @param response
26: * the servlet response.
27: * @param context
28: * the portal servlet context
29: * @return indicates whether or not processing should be continued.
30: * @throws IOException
31: * if an error occurs during preprocessing.
32: */
33: boolean preprocess(HttpServletRequest request,
34: HttpServletResponse response, ServletContext context)
35: throws IOException;
36:
37: /**
38: * Render the tool.
39: *
40: * @param toolConfiguration
41: * @param request
42: * @param response
43: * @throws IOException
44: * @throws ToolRenderException
45: */
46: RenderResult render(ToolConfiguration toolConfiguration,
47: HttpServletRequest request, HttpServletResponse response,
48: ServletContext context) throws IOException,
49: ToolRenderException;
50:
51: /**
52: * The render service will accept responsibility for a tool. This enables a
53: * controller to check if the render service can manage the tool
54: *
55: * @param configuration
56: * tool configuration for the tool in question
57: * @param request
58: * @param response
59: * @param context -
60: * this is the servlet context handling the request (ie the portal)
61: * @return
62: */
63: boolean accept(ToolConfiguration configuration,
64: HttpServletRequest request, HttpServletResponse response,
65: ServletContext context);
66:
67: /**
68: * reset the ToolConfiguration/Placement associated with the config
69: *
70: * @param configuration
71: */
72: void reset(ToolConfiguration configuration);
73:
74: }
|