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.*;
19 import java.lang.reflect.Method;
20
21 import org.seasar.cubby.action.Validation;
22 import org.seasar.cubby.spi.beans.Attribute;
23 import org.seasar.cubby.spi.beans.BeanDesc;
24 import org.seasar.cubby.spi.beans.BeanDescFactory;
25
26
27
28
29
30
31 public class ValidationUtils {
32
33
34
35
36
37
38
39
40 public static Validation getValidation(final Method method) {
41 return method.getAnnotation(Validation.class);
42 }
43
44
45
46
47
48
49
50
51
52
53 public static ValidationRules getValidationRules(final Object action,
54 final String attributeName) {
55 final BeanDesc beanDesc = BeanDescFactory
56 .getBeanDesc(action.getClass());
57 final Attribute attribute;
58 if (beanDesc.hasPropertyAttribute(attributeName)) {
59 attribute = beanDesc.getPropertyAttribute(attributeName);
60 } else if (beanDesc.hasFieldAttribute(attributeName)) {
61 attribute = beanDesc.getFieldAttribute(attributeName);
62 } else {
63 throw new IllegalStateException(format("ECUB0113", action,
64 attributeName));
65 }
66 if (!ValidationRules.class.isAssignableFrom(attribute.getType())) {
67 throw new IllegalStateException(format("ECUB0114", action,
68 attributeName, ValidationRules.class.getName()));
69 }
70 final ValidationRules rules = (ValidationRules) attribute
71 .getValue(action);
72 return rules;
73 }
74
75 }