1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.seasar.cubby.util;
17
18 import static org.seasar.cubby.CubbyConstants.ATTR_ACTION_CONTEXT;
19 import static org.seasar.cubby.internal.util.RequestUtils.getAttribute;
20
21 import java.lang.reflect.Method;
22
23 import javax.servlet.ServletRequest;
24 import javax.servlet.http.HttpServletRequest;
25
26 import org.seasar.cubby.action.Action;
27 import org.seasar.cubby.action.ActionClass;
28 import org.seasar.cubby.action.ActionContext;
29 import org.seasar.cubby.action.ActionResult;
30 import org.seasar.cubby.internal.controller.ThreadContext;
31
32
33
34
35
36
37 public class ActionUtils {
38
39
40
41
42
43
44
45
46
47 public static ActionContext actionContext() {
48 final HttpServletRequest request = ThreadContext.getRequest();
49 return actionContext(request);
50 }
51
52
53
54
55
56
57
58
59
60
61
62 public static ActionContext actionContext(final ServletRequest request) {
63 final ActionContext actionContext = getAttribute(request,
64 ATTR_ACTION_CONTEXT);
65 return actionContext;
66 }
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83 public static boolean isActionClass(final Class<?> clazz) {
84 if (Action.class.isAssignableFrom(clazz)) {
85 return true;
86 }
87 if (clazz.isAnnotationPresent(ActionClass.class)) {
88 return true;
89 }
90 return false;
91 }
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109 public static boolean isActionMethod(final Method method) {
110 return ActionResult.class.isAssignableFrom(method.getReturnType())
111 && (method.getParameterTypes().length == 0);
112 }
113
114 }