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