1 /***
2 *
3 */
4 package net.trajano.twiff.internal.servlet;
5
6 import java.lang.reflect.Method;
7 import javax.servlet.http.HttpServletRequest;
8 import net.trajano.twiff.AttachmentPageLookup;
9 import net.trajano.twiff.ViewServletConfiguration;
10
11 /***
12 * Provides the logic to lookup data for action and attachements.
13 *
14 * @author Archimedes Trajano
15 */
16 public class AttachmentActionPageLookup extends ViewPageLookup implements net.trajano.twiff.ActionPageLookup, AttachmentPageLookup {
17 /***
18 * Constructs the lookup.
19 *
20 * @param configuration
21 * configuration.
22 */
23 public AttachmentActionPageLookup(final ViewServletConfiguration configuration) {
24 super(configuration);
25 }
26
27 /***
28 * @throws ClassNotFoundException
29 * @see net.trajano.twiff.ActionPageLookup#getActionMethod(javax.servlet.http.HttpServletRequest)
30 */
31 public Method getActionMethod(final HttpServletRequest request) throws NoSuchMethodException, SecurityException, ClassNotFoundException {
32 return getPageBeanClass(request).getMethod(getActionMethodName(request));
33 }
34
35 /***
36 * @see net.trajano.twiff.ActionPageLookup#getActionMethodName(javax.servlet.http.HttpServletRequest)
37 */
38 public String getActionMethodName(final HttpServletRequest request) {
39 String originalPageName = super.getPageName(request);
40 return originalPageName.substring(originalPageName.lastIndexOf('_') + 1);
41 }
42
43 /***
44 * @see net.trajano.twiff.internal.servlet.ViewPageLookup#getPageName(javax.servlet.http.HttpServletRequest)
45 */
46 public String getPageName(final HttpServletRequest request) {
47 String originalPageName = super.getPageName(request);
48 return originalPageName.substring(0, originalPageName.lastIndexOf('_'));
49 }
50
51 /***
52 * @see net.trajano.twiff.AttachmentPageLookup#getPropertyName(javax.servlet.http.HttpServletRequest)
53 */
54 public String getPropertyName(final HttpServletRequest request) {
55 return getActionMethodName(request);
56 }
57 }