/*
このファイルの中身は、NTT オープンソースライセンス　バージョン 1.0（「本
契約」という）の適用を受けます。
本契約を遵守しない限り、このファイルを使用してはなりません。
本契約のコピーは、次のＵＲＬから入手できます。
【配布サイトのURL】 http://www.oss.ecl.ntt.co.jp/lms/

本契約に基づき頒布されるソフトウェアは、現状のまま、明示又は黙示のあらゆ
る種類の保証なしで、頒布されます。本契約に基づく権利及び制限を律する特定
の文言については、本契約を参照してください。

「オリジナルコード」は、 NTT Cyber Space Laboratories Code です。 
「オリジナルコード」の「初期開発者」は、日本電信電話株式会社です。  
日本電信電話株式会社により創作された部分は、Copyright (C) 2004 
日本電信電話株式会社 です。
全ての権利が留保されます。 
「コントリビュータ」：_____________________________________ 


The contents of this file are subject to the NTT Opensource License
Version 1.0 (the License); you may not use this file except in
compliance with the License. You may obtain a copy of the License at
【配布サイトのURL】 http://www.oss.ecl.ntt.co.jp/lms/

Software distributed under the License is distributed on an AS IS
basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
License for the specific language governing rights and limitations
under the License.

The Original Code is NTT Cyber Space Laboratories Code .

The Initial Developer of the Original Code is NIPPON TELEGRAPH AND 
TELEPHONE CORPORATION.
Portions created by the NIPPON TELEGRAPH AND TELEPHONE CORPORATION 
are Copyright (C) 2004 NIPPON TELEGRAPH AND TELEPHONE CORPORATION. 
All Rights Reserved.

Contributor(s) ______________________________________.
*/

//
//	フレームワーク　返却値オブジェクト
//			変更履歴
//				2004/01/08 新規作成 二條
//
package jp.co.ntt.lms.xms.framework;

/**
 * フレームワーク　返却値オブジェクト<BR>
 * HTTPリクエストに対するビジネスロジックの返却値。<BR> 
 * 画面情報を保持し、コントローラがその画面情報をどのように扱うのか
 * という情報が格納される。<BR>
 * 返却値オブジェクトの属性値を決定するのは各ビジネスロジックに任される。
 * @author nijou
 */
public class XmsResponse {

	/**
	 * スコープがセッション
	 */
	public static final int SESSION = 1;
	
	/**
	 * スコープがリクエスト
	 */
	public static final int REQUEST = 2;
	
	/**
	 * JSP形式Bean
	 */
	public static final int JSP = 1;
	
	/**
	 * リダイレクト形式Bean
	 */
	public static final int REDIRECT = 2;
	
	/**
	 * ダウンロード形式Bean
	 */
	public static final int DOWNLOAD = 3;
	
	/**
	 * JSP+CSV形式Bean
	 */
	public static final int JSP_CSV = 4;
	
	/**
	 * 他のリソースにフォワード。
	 */
	public static final int FORWARD = 5;
	
	/**
	 * スコープを保持する。<BR>
	 * デフォルトはリクエスト
	 */
	private int scope;
	
	/**
	 * 画面情報用Bean名称を保持する。
	 */
	private String businessBeanName;
	
	/**
	 * 画面情報用Bean名称を保持する。
	 */
	private String screenBeanName;
	
	/**
	 * 更新情報を保持する。
	 */
	private XmsBusinessBean businessBean;
	
	/**
	 * 画面出力情報を保持する。
	 */
	private XmsScreenBean screenBean;
	
	/**
	 * 出力タイプを保持する。<BR>
	 * デフォルトはJSP
	 */
	private int outType;
	
	/**
	 * リダイレクト先URLを保持する。
	 */
	private String url;

	/**
	 * 更新業務の状態を保持。<br>
	 */
	private String businessStatus;	
	

	/**
	 * 返却値名を設定する。<BR>
	 * 返却値名は画面情報をHTTPセッション または、HTTPレスポンス
	 * に設定する時に使用される<BR>
	 */
	public XmsResponse() {
		this( Constant.KEY_BUSINESS_BEAN, Constant.KEY_SCREEN_BEAN);
	}
	/**
	 * 返却値名を設定する。<BR>
	 * 返却値名は画面情報をHTTPセッション または、HTTPレスポンス
	 * に設定する時に使用される<BR>
	 * @param screenBeanName　返却値名
	 */
	public XmsResponse(String businessBeanName, String screenBeanName) {
		// Bean名称
		this.screenBeanName = screenBeanName;
		// Bean名称
		this.businessBeanName = businessBeanName;
		// 画面出力情報
		this.screenBean = null;
		// スコープ。デフォルトはリクエスト
		this.scope = REQUEST;
		// 出力タイプ。デフォルトはJSP
		this.outType = JSP;
		// リダイレクト先URL
		this.url = null;
		
		// 更新業務結果
		this.businessStatus = Constant.BUSINESS_STATUS_DEFAULT;
	}
	

	/**
	 * この返却値オブジェクトの名前を取得する。
	 * @return String 返却値オブジェクト名
	 */
	public final String getScreenBeanName() {
		return screenBeanName;	
	}

	/**
	 * この返却値オブジェクトの名前を設定する。
	 * @param name 返却値オブジェクト名
	 */
	public void setScreenBeanName(String name) {
		this.screenBeanName = name;
	}

	/**
	 * スコープを取得する。
	 * <PRE>
	 * 　  スコープ
	 *        SESSION: セッション
	 *        REQUEST: リクエスト
	 * </PRE>
	 * @return int スコープ
	 */
	public final int getScope() {
		return scope;	
	}

	/**
	 * スコープを設定する。
	 * <PRE>
	 * 　  スコープ
	 *        SESSION: セッション
	 *        REQUEST: リクエスト
	 * </PRE>
	 * @param scope スコープ
	 */
	public void setScope(int scope) {
		this.scope = scope;
	}

	/**
	 * 画面情報を取得する。<br>
	 * @return 画面情報<br>
	 */
	public XmsScreenBean getScreenBean() {
		return screenBean;
	}

	/**
	 * 画面情報を設定する。<br>
	 * @param screenBean 画面情報<br>
	 */
	public void setScreenBean(XmsScreenBean screenBean) {
		this.screenBean = screenBean;
	}


	/**
	 * 更新情報を取得する。<br>
	 * @return 更新情報<br>
	 */
	public XmsBusinessBean getBusinessBean() {
		return businessBean;
	}

	/**
	 * 更新情報を設定する。<br>
	 * @param businessBean 更新情報<br>
	 */
	public void setBusinessBean(XmsBusinessBean businessBean) {
		this.businessBean = businessBean;
	}

	/**
	 * 出力タイプを取得する。
	 * <PRE>
	 * 　  出力タイプ
	 *        JSP: JSPへフォワード
	 *        REDIRECT: リダイレクト
	 *        DOWNLOAD: ダウンロード
	 * </PRE>
	 * @return int　出力タイプ
	 */
	public int getOutType() {
		return outType;
	}

	/**
	 * 出力タイプを設定する。
	 * <PRE>
	 * 　  出力タイプ
	 *        JSP: JSPへフォワード
	 *        REDIRECT: リダイレクト
	 *        DOWNLOAD: ダウンロード
	 * </PRE>
	 * @param outType 出力タイプ
	 */
	public void setOutType(int outType) {
		this.outType = outType;
	}

	/**
	 * リダイレクト先URLを取得する。
	 * @return String　リダイレクト先URL
	 */
	public String getUrl() {
		return url;
	}

	/**
	 * リダイレクト先URLを設定する。
	 * @param url リダイレクト先URL
	 */
	public void setUrl(String url) {
		this.url = url;
	}

	/**
	 * 更新業務の状態を取得する。<br>
	 * @return 更新業務の状態。
	 */
	public String getBusinessStatus() {
		return businessStatus;
	}

	/**
	 * 更新業務の状態を設定する。<br>
	 * このメソッドで設定した値は、画面振分業務時の振分先に利用する。
	 * @param businessStatus 更新業務の状態。<br>
	 * 
	 */
	public void setBusinessStatus(String businessStatus) {
		this.businessStatus = businessStatus;
	}

	/**
	 * 更新業務のBeanのSession／Requestに設定する名称を取得する。<br>
	 * @return 更新業務のBeanの名称。
	 */
	public String getBusinessBeanName() {
		return businessBeanName;
	}

	/**
	 * 更新業務のBeanのSession／Requestに設定する名称を設定する。<br>
	 * @param businessBeanName 更新業務のBeanの名称。
	 */
	public void setBusinessBeanName(String businessBeanName) {
		this.businessBeanName = businessBeanName;
	}

}
