/*
このファイルの中身は、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) ______________________________________.
*/
//
//	ScormLoConstant
//	変更履歴
//		2004.02.01	新規作成
//

package jp.co.ntt.lms.lo.scorm;

/**
 * SCORM用定数クラス。
 * @author T.Nishiki
 */
public final class ScormLoConstant {
	/**
	 * 学習開始パラメータ・キー：開始／再開フラグ。<br>
	 */
	public static final String START_PARAM_KEY_COMD = "COMD";

	/**
	 * 学習開始パラメータ・キー：ユーザID。<br>
	 */
	public static final String START_PARAM_KEY_USERID = "USERID";

	/**
	 * 学習開始パラメータ・キー：LOID。<br>
	 */
	public static final String START_PARAM_KEY_LOID = "LOID";

	/**
	 * 学習開始パラメータ・キー：教材ID。<br>
	 */
	public static final String START_PARAM_KEY_MANIFESTID = "MANIFESTID";

	/**
	 * 学習開始パラメータ・キー：外部LOID。<br>
	 */
	public static final String START_PARAM_KEY_FOREIGN_LOID = "FOREIGNLOID";

	/**
	 * 学習開始パラメータ・キー：学習者名。<br>
	 */
	public static final String START_PARAM_KEY_STUDENT_NAME = "STUDENTNAME";

	/**
	 * 学習開始パラメータ・キー：認証キー。<br>
	 */
	public static final String START_PARAM_KEY_AUTHKEY = "AUTHKEY";

	/**
	 * 学習開始パラメータ・キー：学習セッション回数。<br>
	 */
	public static final String START_PARAM_KEY_STUDYSESSION = "STUDYSESSION";

	/**
	 * 学習開始パラメータ・キー：ログインセッション回数。<br>
	 */
	public static final String START_PARAM_KEY_LOGINSESSION = "LOGINSESSION";

	/**
	 * 学習開始パラメータ・キー：サーバ名称。<br>
	 */
	public static final String START_PARAM_KEY_SERVERNAME = "SERVERNAME";

	/**
	 * 学習開始パラメータ・キー：教材構造定義・中断情報を取得時に呼び出すURL。<br>
	 */
	public static final String START_PARAM_KEY_STUDYINFO_URL
		= "STUDYINFO_URL";

	/**
	 * 学習開始パラメータ・キー：学習終了時に呼び出すURL。<br>
	 */
	public static final String START_PARAM_KEY_END_URL = "END_URL";

	/**
	 * 学習開始パラメータ・キー：学習開始日時。<br>
	 */
	public static final String START_PARAM_KEY_START_DATETIME
			= "START_DATETIME";

	/**
	 * 学習開始パラメータ：開始。<br>
	 */
	public static final String START_PARAM_COMD_NEW = "NEW";
	/**
	 * 学習開始パラメータ：終了。<br>
	 */
	public static final String START_PARAM_COMD_CONT = "CONT";


	/**
	 * ハッシュ・キー：コピーフラグ
	 */
	public static final String KEY_COPY_FLAG = "copy_flag";

	/**
	 * ハッシュ・キー：学習終了データ。
	 */
	public static final String KEY_END_LEARN_DATA = "endLearnData";
	/**
	 * ハッシュ・キー：ユーザID。
	 */
	public static final String KEY_USERID = "USERID";

	/**
	 * ハッシュ・キー：LOID。
	 */
	public static final String KEY_LOID = "LOID";

	/**
	 * ハッシュ・キー：ログインセッション回数。
	 */
	public static final String KEY_LOGIN_SESSION = "LOGIN_SESSION";

	/**
	 * 学習開始日時フォーマット。<br>
	 */
	public static final String START_STUDY_DATETIME_FORMAT
		= "yyyyMMddHHmmss";

	/**
	 * Scorm LOサーバが生成する日時文字列のフォーマット。<br>
	 */
	public static final String SCORM_SERVER_DATETIME_FORMAT
		= "yyyyMMddHHmmssSS";
	/**
	 * MS SQL日時文字列フォーマット。<br>
	 */
	public static final String MSSQL_DATETIME_FORMAT
		= "yyyy/MM/dd HH:mm:ss";

	/**
	 * データベース上の日時フォーマット。<br>
	 */
	public static final String DB_TODATE_FORMAT = "YYYY/MM/DD HH24:MI:SS";

	/**
	 * 認証日時キーフォーマット。<br>
	 */
	public static final String AUTHENT_KEY_TIME_FORMAT = "yyyyMMddHHmm";

	/**
	 * 認証キー生成アルゴリズム名称。<br>
	 */
	public static final String MESSAGE_DIGEST_ALGORITHM = "MD5";

	/**
	 * 中断情報ファイル名称。<br>
	 */
	public static final String RESUME_FILENAME = "resume.xml";

	/**
	 * トレース情報ファイル名称。<br>
	 */
	public static final String TRACE_FILENAME = "trace.xml";

	/**
	 * メニュー項目ラベル：学習開始。<br>
	 */
	public static final String MENU_LABEL_START_LEARN = "学習開始";

	/**
	 * メニュー項目ラベル：共通ログ。<br>
	 */
	public static final String MENU_LABEL_LO_LOG = "学習ログ";

	/**
	 * メニュー項目ラベル：個別ログ。<br>
	 */
	public static final String MENU_LABEL_INDIVIDUAL_LOG = "個別ログ";

	/**
	 * メニュー項目ラベル：SCORM登録。<br>
	 */
	public static final String MENU_LABEL_LO_INSERT = "SCORM LO登録";

	/**
	 * メニュー項目ラベル：SCORM更新。<br>
	 */
	public static final String MENU_LABEL_LO_UPDATE = "SCORM LO更新";

	/**
	 * メニュー項目ラベル：SCORM削除。<br>
	 */
	public static final String MENU_LABEL_LO_DELETE = "SCORM LO削除";

	/**
	 * ウィンドウターゲット：別ウィンドウ。<br>
	 */
	public static final String WINDOW_TARGET_BLANK = "_blank";

	/** ADD 2006/3/9 NTT-R MNM
	 * ウィンドウターゲット：学習ウィンドウ。<br>
	 */
	public static final String WINDOW_TARGET_LEARN = "winSCORMLO";
	
	/**
	 * 教材構造・中断情報取得戻りＸＭＬ定数。<br>
	 * 戻りＸＭＬルート要素名称。
	 */
	public static final String STUDYINFO_TAG_NAME_ROOT = "result";

	/**
	 * 教材構造・中断情報取得戻りＸＭＬ定数。<br>
	 * 情報取得結果要素名称。
	 */
	public static final String STUDYINFO_TAG_NAME_STATUS = "status";

	/**
	 * 教材構造・中断情報取得戻りＸＭＬ定数。<br>
	 * 情報取得結果：成功。
	 */
	public static final int STUDYINFO_STATUS_SUCCESS = 0;

	/**
	 * 教材構造・中断情報取得戻りＸＭＬ定数。<br>
	 * 情報取得結果：認証失敗。
	 */
	public static final int STUDYINFO_STATUS_FAILURE_AUTH = 1;

	/**
	 * 教材構造・中断情報取得戻りＸＭＬ定数。<br>
	 * 情報取得結果：その他失敗。
	 */
	public static final int STUDYINFO_STATUS_FAILURE_REST = 2;

	/**
	 * リクエスト・パラメータ名称：ユーザID。<br>
	 */
	public static final String PARAM_NAME_USERID = "USERID";

	/**
	 * リクエスト・パラメータ名称：LOID。<br>
	 */
	public static final String PARAM_NAME_LOID = "LOID";

	/**
	 * リクエスト・パラメータ名称：教材ID。<br>
	 */
	public static final String PARAM_NAME_MATERIALID = "ManifestID";

	/**
	 * リクエスト・パラメータ名称：認証キー。<br>
	 */
	public static final String PARAM_NAME_AUTHKEY = "AuthKey";

	/**
	 * リクエスト・パラメータ名称：学習セッション回数。<br>
	 */
	public static final String PARAM_NAME_STUDY_SESSION = "StudySession";

	/**
	 * リクエスト・パラメータ名称：ログインセッション回数。<br>
	 */
	public static final String PARAM_NAME_LOGIN_SESSION = "LoginSession";

	/**
	 * リクエスト・パラメータ名称：学習開始日時。<br>
	 */
	public static final String PARAM_NAME_START_DATE = "study_start_date";

	/**
	 * リクエスト・パラメータ名称：終了理由。<br>
	 */
	public static final String PARAM_NAME_REASON = "Reason";

	/**
	 * リクエスト・パラメータ名称：新規／再開区分。<br>
	 */
	public static final String PARAM_NAME_COMMAND = "COMD";

	/**
	 * リクエスト・パラメータ名称：完了状態。<br>
	 */
	public static final String PARAM_NAME_COMPLETION = "completion";

	/**
	 * リクエスト・パラメータ名称：合格状態。<br>
	 */
	public static final String PARAM_NAME_SATISFIED = "satisfied";

	/**
	 * リクエスト・パラメータ値：終了理由、終了。<br>
	 */
	public static final String PARAM_REASON_EXIT = "EXIT";

	/**
	 * リクエスト・パラメータ値：終了理由、中断。<br>
	 */
	public static final String PARAM_REASON_SUSPEND = "SUSPEND";

	/**
	 * リクエスト・パラメータ値：終了理由、中止。<br>
	 */
	public static final String PARAM_REASON_ABANDON = "ABANDON";

	/**
	 * 学習終了取得戻りＸＭＬ定数。<br>
	 * 戻りＸＭＬルート要素名称。
	 */
	public static final String ENDLEARN_TAG_NAME_ROOT = "result";

	/**
	 * 学習終了戻りＸＭＬ定数。<br>
	 * 結果：成功。
	 */
	public static final String ENDLEARN_STATUS_SUCCESS = "OK";

	/**
	 * 学習終了戻りＸＭＬ定数。<br>
	 * 結果：失敗。
	 */
	public static final String ENDLEARN_STATUS_FAILURE = "NG";

	/**
	 * 教材タイトル取得用ロケーションパス。<br>
	 * 教材構造定義からXPathを利用して教材タイトルを取得するためのパス。
	 */
	public static final String XPATH_MATERIAL_TITLE
		= "/manifest/organizations/organization"
		+ "[@identifier=/manifest/organizations/@default]/title/text()";

	/**
	 * 教材ID取得用ロケーションパス。<br>
	 * 教材構造定義からXPathを利用して教材IDを取得するためのパス。
	 */
	public static final String XPATH_MATERIAL_ID
//@20040614 MOD NTTR
// 教材ID:organization-identifierからmanifest-indentifierへ変更
//		= "/manifest/organizations/organization"
//		+ "[@identifier=/manifest/organizations/@default]/@identifier";
		= "/manifest/@identifier";
//MOD END
		
	/**
	 * AICCログノードを取得するロケーションパス。
	 */
	public static final String XPATH_AICCLOG_NODE = "/log/aicc";

	/**
	 * 中断情報ノードを取得するロケーションパス。
	 */
	public static final String XPATH_RESUME_NODE = "/log/resume";

	/**
	 * トレース情報ノードを取得するロケーションパス。
	 */
	public static final String XPATH_TRACE_NODE = "/log/tracelog";

	/**
	 * 起動するメソッド名称：SCORM LOサーバ情報を取得する。
	 * @see ScormLo#getServerInfo()
	 */
	public static final String METHOD1 = "getServerInfo";

	/**
	 * 起動するメソッド名称：ログインセッション回数が存在するかチェックする。
	 * @see ScormLo#isExistLoginSession(Hashtable)
	 */
	public static final String METHOD2 = "isExistLoginSession";

	/**
	 * 起動するメソッド名称：共通ログを登録する。
	 * @see ScormLo#insertCommonLog(Hashtable)
	 */
	public static final String METHOD3 = "insertCommonLog";

	/**
	 * 起動するメソッド名称：Scorm_Objectiveからテスト結果を取得する。
	 * @see ScormLo#getTestScore(Hashtable)
	 */
	public static final String METHOD4 = "getTestScore";

	/**
	 * カラムサイズ種別：バイト長単位。
	 */
	public static final int COLUMN_SIZE_UNIT_BYTE = 0;

	/**
	 * カラムサイズ種別：文字数単位。
	 */
	public static final int COLUMN_SIZE_UNIT_LENGTH = 1;

	/**
	 * データベース上でのアクティビティIDのサイズ。
	 */
	public static final int COLUMN_ACITIVITY_ID_SIZE_MAX = 255;

	/**
	 * データベース上でのアクティビティIDのサイズの単位。
	 */
	public static final int COLUMN_ACITIVITY_ID_SIZE_UNIT
		= COLUMN_SIZE_UNIT_BYTE;

	/**
	 * MS SQL Serverでのカラムサイズ単位。
	 */
	public static final int COLUMN_SIZE_UNIT_SQLSERVER
		= COLUMN_SIZE_UNIT_BYTE;

	/**
	 * Oracleでのカラムサイズ単位。
	 */
	public static final int COLUMN_SIZE_UNIT_ORACLE
		= COLUMN_SIZE_UNIT_BYTE;

	/**
	 * PostgreSQLでのカラムサイズ単位。
	 */
	public static final int COLUMN_SIZE_UNIT_POSTGRE
		= COLUMN_SIZE_UNIT_LENGTH;

	/**
	 * 教材構造定義ファイル名称。<br>
	 */
	public static final String MANIFEST_FILE_NAME = "imsmanifest.xml";
}
