/*  OpenOlap viewer
 *  パッケージ名：openolap.viewer
 *  ファイル：User.java
 *  説明：ユーザーをあらわすクラスです。
 *  作成日: 2003/12/28
 */

package openolap.viewer;

import java.io.Serializable;

/**
 *  クラス：User<br>
 *  説明：ユーザーをあらわすクラスです。
 */
public class User implements Serializable {

	// ********** インスタンス変数 **********

	/** ユーザID */
	final private String userID;

	/** ユーザ名 */
	final private String name;

	/** 
	 * ユーザーの属性タイプ
	 * oo_v_userテーブルのadminflgの値 
	 *    ＜adminflgの値の意味＞<BR>
	 *     「1」：管理者であり、キューブから基本レポートの作成が可能<BR>
	 *            ※個人レポートは作成できない<BR>
	 *             （基本レポートの上書きとなる）<BR>
	 *     「2」：一般ユーザであり、個人レポートの保存が可能<BR>
	 *     「3」：一般ユーザであり、個人レポートの保存は不可能<BR>
	 * */
	final private String adminFLG;

	/** エクスポートするファイルの種類(CSV もしくは XML spreadsheet Schema 形式) */
	private String exportFileType;

	// ********** コンストラクタ **********

	/**
	 * ユーザーオブジェクトを生成します。
	 */
	public User(String userID, String name, String adminFLG, String exportFileType) {
		this.userID = userID;
		this.name = name;
		this.adminFLG = adminFLG;
		this.exportFileType = exportFileType;
	}

	// ********** メソッド **********
	/**
	 * 管理者ユーザーであればtrue、一般ユーザーであればfalseを戻す。
	 * @return 管理者ユーザーか
	 */
	public boolean isAdmin() {
		if ("1".equals(this.adminFLG)) {
			return true;
		} else {
			return false;
		}
	}

	/**
	 * このユーザが個人レポートの保存権限を持つ場合true、持たない場合はfalseを戻す。
	 * @return
	 */
	public boolean isPersonalReportSavable() {

		if ("2".equals(this.adminFLG)) {
			return true;
		} else {
			return false;
		}

	}

	// ********** Setter メソッド **********
	/**
	 * エクスポートするファイルのタイプを設定する。
	 * @param エクスポートタイプ
	 */
	public void setExportFileType(String exportFileType) {
		this.exportFileType = exportFileType;
	}


	// ********** Getter メソッド **********

	/**
	 * ユーザーIDを求める。
	 * @return ユーザーID
	 */
	public String getUserID() {
		return userID;
	}

	/**
	 * ユーザー名を求める。
	 * @return ユーザー名
	 */
	public String getName() {
		return name;
	}


	/**
	 * ユーザの属性タイプを求める。
	 * @return ユーザの属性タイプ
	 */
	public String getAdminFLG() {
		return adminFLG;
	}

	/**
	 * エクスポートするファイルのタイプを求める。
	 * @return エクスポートタイプ
	 */
	public String getExportFileType() {
		return exportFileType;
	}

}
