/*
このファイルの中身は、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) ______________________________________.
*/

//
//	Lo 管理XMO データ保持クラス
//			変更履歴
//				2004.01.08	新規作成	二條智文
//
package jp.co.ntt.lms.xmo.Lo;

import java.util.Hashtable;
import java.util.Vector;
import jp.co.ntt.lms.xmo.MenuData;

/**
 * Lo 管理XMO データ保持クラスです。<BR>
 * このクラスはAssignmentsテーブルの検索結果をサーバからクライアントに
 * 送信するときに使用されます。<BR>
 * 直列化のためにjava.io.Serializableインタフェースを実装します。
 * @author T.Nijou
 * @version 0.0.0.1 2004.01.08
 */
public class LoData implements java.io.Serializable {

	/** 親IDを保持します */
	private String pstrParentID = null;

	/** LoIDを保持します */
	private String pstrLoID = null;

	/** Lo実アドレスを保持します */
	private String pstrLoAddress = null;

	/** Loタイプを保持します */
	private String pstrLoType = null;

	/** Loタイトルを保持します */
	private String pstrLoTytle = null;

	/** Loの説明を保持します */
	private String pstrLoexplanation = null;

	/** Loのバージョンを保持します */
	private String pstrLoVersion = null;

	/** 作成日を保持します */
	private String pstrLocreateDate = null;

	/** 隠しフラグを保持します */
	private String pstrDeleteFlag = null;

	/** 教材IDを保持します */
	private String pstrMaterialID = null;

	/** 外部キーを保持します */
	private String pstrForeignID = null;

	/** キーワードを保持します */
	private String mstrKeyWord = "";

	/** LOサブ種別を保持します */
	private String pstrSubType = null;

	/** LO種別名称を保持します */
	private String pstrTypeName = null;

	/** オプション情報を保持します */
	private Vector mvecOptionInfo = new Vector();

	/** 教材情報を保持します */
	private MaterialData pobjMaterialData = null;

	/** 学習情報を保持します */
	private LearnData pobjLearnData = null;

	/** 教材メニュー情報を保持します */
	private MenuData pobjMenuData = null;

	/** RealLOIDを保持します */
	private String pstrRealLOID = null;

	/** 完結要件を保持します */
	private String pstrConclusion = null;

	/** 前提条件を保持します */
	private String pstrPrere = null;

	/** コピー元LOIDを保持します */
	private String pstrCopyLOID = null;
	
	/** MentorEmailアドレスを保持します */
	private String pstrMentorEmailAddress = null;
	

	/**
	 * 親IDを設定します
	 * @param astrParentID 親ID
	 */
	public void setParentID( String astrParentID ) {
		pstrParentID = astrParentID;
	}

	/**
	 * 親IDを取得します
	 * @return String 親ID
	 */
	public String getParentID() {
		return pstrParentID;
	}

	/**
	 * LoIDを設定します
	 * @param astrLoID LoID
	 */
	public void setLoID( String astrLoID ) {
		pstrLoID = astrLoID;
	}

	/**
	 * LoIDを取得します
	 * @return String LoID
	 */
	public String getLoID() {
		return pstrLoID;
	}

	/**
	 * Lo実アドレスを設定します
	 * @param astrLoAddress Lo実アドレス
	 */
	public void setLoAddress( String astrLoAddress ) {
		pstrLoAddress = astrLoAddress;
	}

	/**
	 * Lo実アドレスを取得します
	 * @return String LoAddress
	 */
	public String getLoAddress() {
		return pstrLoAddress;
	}

	/**
	 * Loタイプを設定します
	 * @param astrLoType Loタイプ
	 */
	public void setLoType( String astrLoType ) {
		pstrLoType = astrLoType;
	}

	/**
	 * Loタイプを取得します
	 * @return String LoType
	 */
	public String getLoType() {
		return pstrLoType;
	}

	/**
	 * Loタイトルを設定します
	 * @param astrLoTytle Loタイトル
	 */
	public void setLoTytle( String astrLoTytle ) {
		pstrLoTytle = astrLoTytle;
	}

	/**
	 * Loタイトルを取得します
	 * @return String LoTytle;
	 */
	public String getLoTytle() {
		return pstrLoTytle;
	}

	/**
	 * Loの説明を設定します
	 * @param astrLoexplanation Loの説明
	 */
	public void setLoexplanation( String astrLoexplanation ) {
		pstrLoexplanation = astrLoexplanation;
	}

	/**
	 * Loの説明を取得します
	 * @return String Loexplanation
	 */
	public String getLoexplanation() {
		return pstrLoexplanation;
	}

	/**
	 * Loのバージョンを設定します
	 * @param astrLoVersion Loのバージョン
	 */
	public void setLoVersion( String astrLoVersion ) {
		pstrLoVersion = astrLoVersion;
	}

	/**
	 * Loのバージョンを取得します
	 * @return String LoVersion
	 */
	public String getLoVersion() {
		return pstrLoVersion;
	}

	 /**
	  * MentorEmailアドレスを設定します
	  * @param astrMentorEmailAddress MentorEmailアドレス
	  */
	 public void setMentorEmail( String astrMentorEmailAddress ) {
		 pstrMentorEmailAddress = astrMentorEmailAddress;
	 }

	 /**
	  * MentorEmailアドレスを取得します
	  * @return String MentorEmailAddress
	  */
	 public String getMentorEmail() {
		 return pstrMentorEmailAddress;
	 }
	

	/**
	 * 作成日を設定します
	 * @param astrLocreateDate 作成日
	 */
	public void setLocreateDate( String astrLocreateDate ) {
		pstrLocreateDate = astrLocreateDate;
	}

	/**
	 * 作成日を取得します
	 * @return String LocreateDate
	 */
	public String getLocreateDate() {
		return pstrLocreateDate;
	}

	/**
	 * 隠しフラグを設定します
	 * @param astrDeleteFlag 隠しフラグ
	 */
	public void setDeleteFlag( String astrDeleteFlag ) {
		pstrDeleteFlag = astrDeleteFlag;
	}

	/**
	 * 隠しフラグを取得します
	 * @return String DeleteFlag
	 */
	public String getDeleteFlag() {
		return pstrDeleteFlag;
	}

	/**
	 * 教材IDを設定します
	 * @param astrMaterialID 教材ID
	 */
	public void setMaterialID( String astrMaterialID ) {
		pstrMaterialID = astrMaterialID;
	}

	/**
	 * 教材IDを取得します
	 * @return String pstrMaterialID
	 */
	public String getMaterialID() {
		return pstrMaterialID;
	}

	/**
	 * キーワードを設定します
	 */
	public void setKeyWord(String strKeyWord) {
		mstrKeyWord = strKeyWord;
	}

	/**
	 * キーワードを取得します
	 */
	public String getKeyWord() {
		return mstrKeyWord;
	}

	/**
	 * 外部キーを設定します
	 * @param astrForeignID 外部キー
	 */
	public void setForeignID( String astrForeignID ) {
		pstrForeignID = astrForeignID;
	}

	/**
	 * 外部キーを取得します
	 * @return String 外部キー
	 */
	public String getForeignID() {
		return pstrForeignID;
	}

	/**
	 * LOサブ種別を設定します
	 * @param astrSubType LOサブ種別
	 */
	public void setLoSubType( String astrSubType ) {
		pstrSubType = astrSubType;
	}

	/**
	 * LOサブ種別を取得します
	 * @return String LOサブ種別
	 */
	public String getLoSubType() {
		return pstrSubType;
	}

	/**
	 * LO種別名を設定します
	 * @param astrTypeName LO種別名
	 */
	public void setTypeName( String astrTypeName ) {
		pstrTypeName = astrTypeName;
	}

	/**
	 * LO種別名を取得します
	 * @return String LO種別名
	 */
	public String getTypeName() {
		return pstrTypeName;
	}

	/**
	 * オプション情報の長さを返します
	 * @return int 長さ
	 */
	public int getOptionInfoLength() {
		return mvecOptionInfo.size();
	}

	/**
	 * 指定されたインデックスのオプション情報を取得します
	 * @return String[] オプション情報
	 *          [0]: LOID
	 *          [1]: OptionID
	 */
	public String[] getOptionInfo( int index ) {
		try {
			return (String[])mvecOptionInfo.get(index);
		}
		catch( ArrayIndexOutOfBoundsException ae ) {
			return null;
		}
	}

	/**
	 * オプション情報を追加します
	 * @param strOptionInfo オプション情報
	 *         [0]: LOID
	 *         [1]: OptionID
	 */
	public void addOptionInfo( String[] strOptionInfo ) {
		mvecOptionInfo.add( strOptionInfo );
	}

	/**
	 * 教材情報を設定します
	 * @param objMaterialData 教材情報
	 */
	public void setMaterialData( MaterialData objMaterialData ) {
		pobjMaterialData = objMaterialData;
	}

	/**
	 * 教材情報を取得します
	 * @return MaterialData 教材情報
	 */
	public MaterialData getMaterialData() {
		return pobjMaterialData;
	}

	/**
	 * 学習情報を設定します
	 * @param objLearnData 学習情報
	 */
	public void setLearnData( LearnData objLearnData ) {
		pobjLearnData = objLearnData;
	}

	/**
	 * 学習情報を取得します
	 * @return LearnData 学習情報
	 */
	public LearnData getLearnData() {
		return pobjLearnData;
	}

	/**
	 * 教材メニュー情報を設定します
	 * @param objMenuData 教材メニュー情報
	 */
	public void setMenuData( MenuData objMenuData ) {
		pobjMenuData = objMenuData;
	}

	/**
	 * 教材メニューを取得します
	 * @return MenuData 教材メニュー情報
	 */
	public MenuData getMenuData() {
		return pobjMenuData;
	}

	/**
	 * RealLOID情報を設定します
	 * @param astrRealLOID RealLOID
	 */
	public void setRealLOID( String astrRealLOID ) {
		pstrRealLOID = astrRealLOID;
	}

	/**
	 * RealLOIDを取得します
	 * @return String RealLOID
	 */
	public String getRealLOID() {
		return pstrRealLOID;
	}

	/**
	 * 完結要件情報を設定します
	 * @param astrConclusion 完結要件
	 */
	public void setConclusion( String astrConclusion ) {
		pstrConclusion = astrConclusion;
	}

	/**
	 * 完結要件を取得します
	 * @return String 完結要件
	 */
	public String getConclusion() {
		return pstrConclusion;
	}

	/**
	 * 前提条件情報を設定します
	 * @param astrPrere 前提条件
	 */
	public void setPrere( String astrPrere ) {
		pstrPrere = astrPrere;
	}

	/**
	 * 前提条件を取得します
	 * @return String 前提条件
	 */
	public String getPrere() {
		return pstrPrere;
	}

	/**
	 * コピー元LOIDを設定します
	 * @param pstrCopyLOID コピー元LOID
	 */
	public void setCopyLOID( String strCopyLOID ) {
		pstrCopyLOID = strCopyLOID;
	}

	/**
	 * コピー元LOIDを取得します
	 * @return String コピー元LOID
	 */
	public String getCopyLOID() {
		return pstrCopyLOID;
	}

}

