View Javadoc

1   package org.seasar.cubby.action.impl;
2   
3   import java.util.ArrayList;
4   import java.util.List;
5   import java.util.Map;
6   
7   import org.seasar.cubby.action.ActionErrors;
8   
9   /**
10   * アクションエラーの実装クラス
11   * @author agata
12   *
13   */
14  public class ActionErrorsImpl implements ActionErrors {
15  
16  	/**
17  	 * アクションで発生したエラーの一覧
18  	 */
19  	private List<String> actionErrors;
20  
21  	/**
22  	 * フィールドで発生したエラーの一覧
23  	 */
24  	private Map<String, List<String>> fieldErrors;
25  
26  	/**
27  	 * アクションとフィールドのエラーを合わせた全てのエラーの一覧
28  	 */
29  	private List<String> allErrors;
30  
31  	public List<String> getActionErrors() {
32  		return actionErrors;
33  	}
34  
35  	/**
36  	 * アクションで発生したエラーの一覧をセットします。
37  	 * @param actionErrors アクションで発生したエラーの一覧
38  	 */
39  	public void setActionErrors(final List<String> actionErrors) {
40  		this.actionErrors = actionErrors;
41  	}
42  
43  	/**
44  	 * フィールドで発生したエラーの一覧を取得します。
45  	 * @return フィールドで発生したエラーの一覧
46  	 */
47  	public Map<String, List<String>> getFieldErrors() {
48  		return fieldErrors;
49  	}
50  
51  	/**
52  	 * フィールドで発生したエラーの一覧をセットします。
53  	 * @param fieldErrors アクションで発生したエラーの一覧
54  	 */
55  	public void setFieldErrors(final Map<String, List<String>> fieldErrors) {
56  		this.fieldErrors = fieldErrors;
57  	}
58  
59  	/**
60  	 * アクションで発生したエラーの一覧を取得します。
61  	 * @return アクションで発生したエラーの一覧
62  	 */
63  	public List<String> getAllErrors() {
64  		return allErrors;
65  	}
66  
67  	/**
68  	 * 全てのエラーをセットします。
69  	 * @param allErrors 全てのエラー
70  	 */
71  	public void setAllErrors(final List<String> allErrors) {
72  		this.allErrors = allErrors;
73  	}
74  
75  	/**
76  	 * エラーが存在しないかどうかを判定します。
77  	 * @return エラーが存在しなければtrue
78  	 */
79  	public boolean isEmpty() {
80  		return actionErrors.isEmpty() && fieldErrors.isEmpty();
81  	}
82  
83  	/**
84  	 * アクションエラーを追加します。
85  	 * @param エラーメッセージ
86  	 */
87  	public void addActionError(final String message) {
88  		actionErrors.add(message);
89  
90  		allErrors.add(message);
91  	}
92  
93  	/**
94  	 * フィールドエラーを追加します。
95  	 * @param name フィールド名
96  	 * @param message エラーメッセージ
97  	 */
98  	public void addFieldError(final String name, final String message) {
99  		if (!fieldErrors.containsKey(name)) {
100 			fieldErrors.put(name, new ArrayList<String>());
101 		}
102 		fieldErrors.get(name).add(message);
103 
104 		allErrors.add(message);
105 	}
106 
107 	/**
108 	 * 指定されたフィールドのエラーが存在するかどうかを判定します。
109 	 * @param name フィールド名
110 	 * @return エラーが存在すればtrue
111 	 */
112 	public boolean hasFieldError(final String name) {
113 		return fieldErrors.containsKey(name);
114 	}
115 
116 }