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.validator.ValidationUtils.getValidation;
19 import static org.seasar.cubby.validator.ValidationUtils.getValidationRules;
20
21 import java.io.Serializable;
22 import java.lang.reflect.Method;
23
24 import org.seasar.cubby.action.Action;
25 import org.seasar.cubby.action.ActionResult;
26 import org.seasar.cubby.action.Validation;
27
28 class ErrorPageValidationFailBehaviour implements
29 ValidationFailBehaviour, Serializable {
30
31
32 private static final long serialVersionUID = 1L;
33
34
35 private final String errorMessage;
36
37
38 private final String[] fieldNames;
39
40
41
42
43 public ErrorPageValidationFailBehaviour() {
44 this(null);
45 }
46
47
48
49
50
51
52
53
54
55 public ErrorPageValidationFailBehaviour(final String errorMessage,
56 final String... fieldNames) {
57 this.errorMessage = errorMessage;
58 this.fieldNames = fieldNames;
59 }
60
61
62
63
64 public ActionResult getActionResult(final Action action, final Method method) {
65 if (errorMessage != null && errorMessage.length() > 0) {
66 action.getErrors().add(errorMessage, fieldNames);
67 }
68 final String errorPage;
69 final Validation validation = getValidation(method);
70 if (validation == null) {
71 errorPage = null;
72 } else {
73 errorPage = validation.errorPage();
74 }
75
76 final ValidationRules validationRules = getValidationRules(action,
77 validation.rules());
78 return validationRules.fail(errorPage);
79 }
80
81 }