1 /***
2 *
3 */
4 package net.trajano.twiff;
5
6 import java.io.Serializable;
7 import javax.servlet.http.HttpServletRequest;
8
9 /***
10 * This interface gets the page data that is used for all the servlets.
11 *
12 * @author Archimedes Trajano
13 */
14 public interface PageLookup {
15
16 /***
17 * This extracts the page name from the URL requested in the servlet
18 * request.
19 *
20 * @param request
21 * the servlet request.
22 * @return the page name.
23 */
24 String getPageName(HttpServletRequest request);
25
26 /***
27 * This extracts the page bean class name from the URL requested in the
28 * servlet request.
29 *
30 * @param request
31 * the servlet request.
32 * @return the page bean class name.
33 */
34 String getPageBeanClassName(HttpServletRequest request);
35
36 /***
37 * This extracts the page bean class from the URL requested in the servlet
38 * request. The returned class must implement {@link Serializable} to ensure
39 * that the bean can be persisted if necessary.
40 *
41 * @param request
42 * the servlet request.
43 * @return the page bean class.
44 * @throws ClassNotFoundException
45 * class is not found.
46 */
47 Class<? extends Serializable> getPageBeanClass(HttpServletRequest request) throws ClassNotFoundException;
48 }