/*
 * "Peko" Visual Novel System
 *
 * All Rights Reserved.
 * Copyright (c) 1999-2003 Tsukuba Bunko.
 *
 * $Id: SaveData.java,v 1.1.2.1 2003/12/11 10:12:19 ppoi Exp $
 */
package tsukuba_bunko.peko.session;

import	java.io.Serializable;

import	java.util.Map;


/**
 * セーブデータです。
 * @author	$Author: ppoi $
 * @version	$Revision: 1.1.2.1 $
 */
public class SaveData	implements Serializable	{

	/**
	 * セーブデータ情報
	 */
	protected SaveDataInfo	_info = null;

	/**
	 * セッション
	 */
	protected Session	_session = null;

	/**
	 * セーブデータエントリ
	 */
	protected Map	_entries = new java.util.HashMap( 17 );


	/**
	 * <code>SaveData</code> のインスタンスを生成します。
	 */
	public SaveData()
	{
		super();
	}

	/**
	 * セーブデータ情報を設定します。
	 * @param	info	セーブデータ情報
	 */
	public void setSaveDataInfo( SaveDataInfo info )
	{
		_info = info;
	}

	/**
	 * セーブデータ情報を取得します。
	 * @return	セーブデータ情報
	 */
	public SaveDataInfo getSaveDataInfo()
	{
		return _info;
	}

	/**
	 * 保存するセッションを設定します。
	 * @param	session	保存するセッション
	 */
	public void setSession( Session session )
	{
		_session = session;
	}

	/**
	 * 保存するセッションを取得します。
	 * @return	保存するセッション
	 */
	public Session getSession()
	{
		return _session;
	}

	/**
	 * セーブデータにエントリを追加します。
	 * @param	name	エントリ名
	 * @param	entry	エントリ
	 */
	public void addEntry( String name, Serializable entry )
	{
		_entries.put( name, entry );
	}

	/**
	 * セーブデータ中のエントリを取得します。
	 * @param	name	エントリ名
	 * @return	エントリ
	 */
	public Serializable getEntry( String name )
	{
		return (Serializable)_entries.get( name );
	}
}