/*
このファイルの中身は、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 新規作成	T.Nishiki 
//
package jp.co.ntt.lms.xms.framework.sample;

import java.util.ArrayList;
import java.util.List;

import jp.co.ntt.lms.xms.framework.XmsException;
import jp.co.ntt.lms.xms.framework.XmsInnerException;
import jp.co.ntt.lms.xms.framework.XmsScreenBean;
import jp.co.ntt.lms.xms.framework.XmsSystemException;

/**
 * サンプル入力フレーム用データ・クラス。<br>
 * LOテーブルとPeopleテーブルのデータを保持する。
 * @author nishiki
 */
public class SampleInputDataBean extends XmsScreenBean {
	
	/**
	 * LOテーブル・データリスト。<br>
	 * 要素は文字列配列であり、各文字列配列には、
	 * ０番目に「ＬＯＩＤ」、１番目に「ＬＯタイトル」が保持される。
	 */
	private List loRecordList;
	/**
	 * Peopleテーブル・データリスト。<br>
	 * 要素は文字列配列であり、各文字列配列には、
	 * ０番目に「ユーザＩＤ」、１番目に「ユーザ名」が保持される。
	 */
	private List peopleRecordList;
	
	/**
	 * コンストラクタ。<br>
	 */
	public SampleInputDataBean() {
		loRecordList = new ArrayList();
		peopleRecordList = new ArrayList();
	}

	/**
	 * ＬＯテーブルのデータを登録する。
	 * @param loId LOID。
	 * @param loName LOタイトル。
	 * @throws XmsException loIdがnullの場合。
	 */
	public void addLoRecord( String loId, String loName ) 
			throws XmsException {
		String[] loData = null;
		if ( loId == null ) {
			throw new XmsSystemException( "loId is null." );
		}
		loData = new String[2];
		loData[0] = loId;
		loData[1] = loName;
		loRecordList.add(loData);
	}

	/**
	 * Peopleテーブルのデータを登録する。
	 * @param userId ユーザID。
	 * @param userName ユーザ名。
	 * @throws XmsException userIdがnullの場合。
	 */
	public void addPeopleRecord( String userId, String userName)
			throws XmsException {
		String[] userData = null;
		if ( userId == null ) {
			throw new XmsSystemException( "userId is null," );
		}
		userData = new String[2];
		userData[0] = userId;
		userData[1] = userName;
		peopleRecordList.add(userData);
	}

	/**
	 * 現在保持しているＬＯテーブル・レコード数を戻す。<br>
	 * @return 現在保持しているＬＯテーブル・レコード数
	 */
	public int getLoRecordSize() {
		return loRecordList.size();
	}
	
	/**
	 * 指定したＬＯレコードのＩＤを取得する。<br>
	 * クラス内部でリストとして保持しているLOレコードの中から、
	 * 指定した位置に該当するレコードを取得し、そのレコードのLOIDを戻す。<br>
	 * @param index 取得するレコードの位置。
	 * @return String 指定したレコードのLOID。
	 * @throws XmsException indexの値が内部リストの範囲を超える場合。
	 */
	public String getLoId( int index )
		throws XmsException {
		
		String loId = null;	
		String[] loData = null;
		try {
			loData = (String[])loRecordList.get( index );
			loId = loData[0];
		} catch ( Exception e ) {
			throw new XmsSystemException( e );
		}
		return loId ;
	}

	/**
	 * 指定したＬＯレコードのタイトルを取得する。<br>
	 * クラス内部でリストとして保持しているLOレコードの中から、
	 * 指定した位置に該当するレコードを取得し、そのレコードのＬＯタイトルを戻す。<br>
	 * @param index 取得するレコードの位置。
	 * @return String 指定したレコードのLOタイトル。
	 * @throws XmsException indexの値が内部リストの範囲を超える場合。
	 */
	public String getLoTitle( int index )
		throws XmsException {
		
		String loTitle = null;	
		String[] loData = null;
		try {
			loData = (String[])loRecordList.get( index );
			loTitle = loData[1];
		} catch ( Exception e ) {
			throw new XmsInnerException( e );
		}
		return loTitle ;
	}

	/**
	 * 現在保持しているPeopleテーブル・レコード数を戻す。<br>
	 * @return 現在保持しているPeopleテーブル・レコード数
	 */
	public int getPeopleRecordSize() {
		return peopleRecordList.size();
	}
	
	/**
	 * 指定したPeopleレコードのユーザＩＤを取得する。<br>
	 * クラス内部でリストとして保持しているPeopleレコードの中から、
	 * 指定した位置に該当するレコードを取得し、そのレコードのユーザＩＤを戻す。<br>
	 * @param index 取得するレコードの位置。
	 * @return String 指定したレコードのユーザID。
	 * @throws XmsException indexの値が内部リストの範囲を超える場合。
	 */
	public String getUserId( int index )
		throws XmsException {
		
		String userId = null;	
		String[] userData = null;
		try {
			userData = (String[])peopleRecordList.get( index );
			userId = userData[0];
		} catch ( Exception e ) {
			throw new XmsSystemException( e );
		}
		return userId ;
	}

	/**
	 * 指定したPeopleレコードのユーザ名を取得する。<br>
	 * クラス内部でリストとして保持しているPeopleレコードの中から、
	 * 指定した位置に該当するレコードを取得し、そのレコードのユーザ名を戻す。<br>
	 * @param index 取得するレコードの位置。
	 * @return String 指定したレコードのユーザ名。
	 * @throws XmsException indexの値が内部リストの範囲を超える場合。
	 */
	public String getUserName( int index )
		throws XmsException {
		
		String userName = null;	
		String[] userData = null;
		try {
			userData = (String[])peopleRecordList.get( index );
			userName = userData[1];
		} catch ( Exception e ) {
			throw new XmsSystemException( e );
		}
		return userName ;
	}
}
