1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.seasar.cubby.validator;
17
18 import static org.seasar.cubby.internal.util.LogMessages.format;
19
20 import java.lang.reflect.Method;
21
22 import org.seasar.cubby.action.Validation;
23 import org.seasar.cubby.spi.beans.Attribute;
24 import org.seasar.cubby.spi.beans.BeanDesc;
25 import org.seasar.cubby.spi.beans.BeanDescFactory;
26
27
28
29
30
31
32 public class ValidationUtils {
33
34
35
36
37
38
39
40
41 public static Validation getValidation(final Method method) {
42 return method.getAnnotation(Validation.class);
43 }
44
45
46
47
48
49
50
51
52
53
54 public static ValidationRules getValidationRules(final Object action,
55 final String attributeName) {
56 final BeanDesc beanDesc = BeanDescFactory
57 .getBeanDesc(action.getClass());
58 final Attribute attribute;
59 if (beanDesc.hasPropertyAttribute(attributeName)) {
60 attribute = beanDesc.getPropertyAttribute(attributeName);
61 } else if (beanDesc.hasFieldAttribute(attributeName)) {
62 attribute = beanDesc.getFieldAttribute(attributeName);
63 } else {
64 throw new IllegalStateException(format("ECUB0113", action,
65 attributeName));
66 }
67 if (!ValidationRules.class.isAssignableFrom(attribute.getType())) {
68 throw new IllegalStateException(format("ECUB0114", action,
69 attributeName, ValidationRules.class.getName()));
70 }
71 final ValidationRules rules = (ValidationRules) attribute
72 .getValue(action);
73 return rules;
74 }
75
76 }