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