View Javadoc

1   /*
2    * Copyright 2004-2010 the Seasar Foundation and the Others.
3    *
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    *     http://www.apache.org/licenses/LICENSE-2.0
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
13   * either express or implied. See the License for the specific language
14   * governing permissions and limitations under the License.
15   */
16  
17  package org.seasar.cubby.action;
18  
19  import javax.servlet.http.HttpServletRequest;
20  import javax.servlet.http.HttpServletResponse;
21  
22  /**
23   * エラーの応答を返すことを示す {@link ActionResult} です。
24   * <p>
25   * アクションメソッドの戻り値としてこのインスタンスを指定すると、エラーの応答を返します。
26   * </p>
27   * 
28   * @author baba
29   */
30  public class SendError implements ActionResult {
31  
32  	/** ステータスコード。 */
33  	private final int statusCode;
34  
35  	/** メッセージ。 */
36  	private final String message;
37  
38  	/**
39  	 * インスタンスを生成します。
40  	 * 
41  	 * @param statusCode
42  	 *            ステータスコード
43  	 * @see HttpServletResponse#sendError(int)
44  	 */
45  	public SendError(final int statusCode) {
46  		this(statusCode, null);
47  	}
48  
49  	/**
50  	 * インスタンスを生成します。
51  	 * 
52  	 * @param statusCode
53  	 *            ステータスコード
54  	 * @param message
55  	 *            メッセージ
56  	 * @see HttpServletResponse#sendError(int, String)
57  	 */
58  	public SendError(final int statusCode, final String message) {
59  		this.statusCode = statusCode;
60  		this.message = message;
61  	}
62  
63  	/**
64  	 * {@inheritDoc}
65  	 */
66  	public void execute(final ActionContext actionContext,
67  			final HttpServletRequest request, final HttpServletResponse response)
68  			throws Exception {
69  		if (message == null) {
70  			response.sendError(statusCode);
71  		} else {
72  			response.sendError(statusCode, message);
73  		}
74  	}
75  
76  	/**
77  	 * ステータスコードを取得します。
78  	 * 
79  	 * @return ステータスコード
80  	 * @since 2.0.2
81  	 */
82  	public int getStatusCode() {
83  		return statusCode;
84  	}
85  
86  	/**
87  	 * メッセージを取得します。
88  	 * 
89  	 * @return メッセージ
90  	 * @since 2.0.2
91  	 */
92  	public String getMessage() {
93  		return message;
94  	}
95  
96  }