/*
 * MosP - Mind Open Source Project    http://www.mosp.jp/
 * Copyright (C) MIND Co., Ltd.       http://www.e-mind.co.jp/
 * 
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version 2
 * of the License, or (at your option) any later version.
 * 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 */
package jp.mosp.common.part;

import jp.mosp.common.common.MospException;

/**
 * MosPに関するPartを保持するクラス
 * @author yoshida
 *	@version	0.0.4
 */
public class PartStore extends BaseStore {
	
	/**
	 * コンストラクタ
	 */
	public PartStore() {
		super();
	}
	
	/**
	 * コンストラクタ
	 * @param partInfo	Partを利用する際に必要な情報
	 */
	private PartStore(PartInfo partInfo) {
		this();
		setPartInfo(partInfo);
	}
	
	/**
	 * Storeインスタンス生成
	 * @param partInfo		Partを利用する際に必要な情報
	 * @return	PartStoreインスタンス
	 */
	public static PartStore getInstance(PartInfo partInfo) {
		return new PartStore(partInfo);
	}
	
	/**
	 * CmCodePartインスタンス取得
	 * @return	初期化済みCmCodePartインスタンス
	 * @throws MospException MosP例外処理が発生した場合
	 */
	public CmCodePart cmcode() throws MospException {
		return (CmCodePart)get(CmCodePart.class);
	}
	
	/**
	 * MosPConfPartインスタンス取得
	 * @return	初期化済みMosPConfPartインスタンス
	 * @throws MospException MosP例外処理が発生した場合
	 */
	public MosPConfPart mospconf() throws MospException {
		return (MosPConfPart)get(MosPConfPart.class);
	}
	
	/**
	 * MosPCodePartインスタンス取得
	 * @return	初期化済みMosPCodePartインスタンス
	 * @throws MospException MosP例外処理が発生した場合
	 */
	public MosPCodePart mospcode() throws MospException {
		return (MosPCodePart)get(MosPCodePart.class);
	}
	
	/**
	 * MosPUserPartインスタンス取得
	 * @return	初期化済みMosPUserPartインスタンス
	 * @throws MospException MosP例外処理が発生した場合
	 */
	public MosPUserPart mospuser() throws MospException {
		return (MosPUserPart)get(MosPUserPart.class);
	}
	
	/**
	 * AuthorityPartインスタンス取得
	 * @return	初期化済みAuthorityPartインスタンス
	 * @throws MospException MosP例外処理が発生した場合
	 */
	public AuthorityPart authority() throws MospException {
		return (AuthorityPart)get(AuthorityPart.class);
	}
	
	/**
	 * ComponentPartインスタンス取得
	 * @return	初期化済みComponentPartインスタンス
	 * @throws MospException MosP例外処理が発生した場合
	 */
	public ComponentPart component() throws MospException {
		return (ComponentPart)get(ComponentPart.class);
	}
	
	/**
	 * JPDatePartインスタンス取得
	 * @return	初期化済みJPDatePartインスタンス
	 * @throws MospException MosP例外処理が発生した場合
	 */
	public JPDatePart jpdate() throws MospException {
		return (JPDatePart)get(JPDatePart.class);
	}
	
	/**
	 * JPHolidayPartインスタンス取得
	 * @return	初期化済みJPHolidayPartインスタンス
	 * @throws MospException MosP例外処理が発生した場合
	 */
	public JPHolidayPart jpholiday() throws MospException {
		return (JPHolidayPart)get(JPHolidayPart.class);
	}
	
	/**
	 * MosPMenuPartインスタンス取得
	 * @return	初期化済みMosPMenuPartインスタンス
	 * @throws MospException MosP例外処理が発生した場合
	 */
	public MosPMenuPart menu() throws MospException {
		return (MosPMenuPart)get(MosPMenuPart.class);
	}
	
}
