package jp.mosp.common.part;

import java.sql.SQLException;

import jp.mosp.common.common.MospException;

import jp.mosp.common.dao.MosPUserDao;
import jp.mosp.common.dto.CmUserDto;

/**
 * MosP利用ユーザに関するPartクラス
 * @author yoshida
 * 	@version	0.0.1
 */
public class MosPUserPart extends BasePart {

	/**
	 * コンストラクタ
	 */
	public MosPUserPart() {
		super();
	}

	/**
	 * コンストラクタ
	 * @param partInfo
	 */
	public MosPUserPart(PartInfo partInfo) {
		super(partInfo);
	}

	/**
	 * CM_USERテーブル用のDAO取得
	 * @return	初期化済みMosPUserDaoインスタンス
	 * @throws Exception
	 */
	public MosPUserDao getMosPUserDao() throws Exception {
		return (MosPUserDao)getPreparedDao(MosPUserDao.class.getCanonicalName());
	}

	/**
	 * ユーザー情報取得(CM_USER)
	 * @param userId 情報取得対象ユーザーID
	 * @return ユーザー情報(CmUserDto)
	 * @throws SQLException
	 * @throws NoSuchFieldException
	 * @throws IllegalAccessException
	 * @throws MospException 
	 * @throws ClassNotFoundException 
	 */
	public CmUserDto getUserInfo(
			String userId
	) throws Exception {
		// 情報の取得
		return getMosPUserDao().findForKey(userId);
	}

	/**
	 * ユーザー情報取得(CM_USER)
	 * @param kcode		情報取得対象社員コード
	 * @return ユーザー情報(CmUserDto)
	 * @throws SQLException
	 * @throws NoSuchFieldException
	 * @throws IllegalAccessException
	 * @throws MospException 
	 * @throws ClassNotFoundException 
	 */
	public CmUserDto getUserInfoForKCode(String kcode) throws Exception {
		// 情報の取得
		return getMosPUserDao().findForKCode(kcode);
	}

}
