<?php
/**
* タスクの基底クラス
*
* PHP version 5
*
* @package    core
* @author     stk2k <stk2k@sazysoft.com>
* @copyright  2008 stk2k, sazysoft
*/

abstract class Task extends CharcoalComponent implements ITask
{
	private $_guard_conditions;
	private $_event_filters;
	private $_post_actions;

	/*
	 *	コンストラクタ
	 */
	public function __construct()
	{
		parent::__construct();

		$this->_guard_conditions  = v(array());
		$this->_event_filters     = v(array());
		$this->_post_actions      = v(array());
	}

	/**
	 * タスクを初期化する
	 */
	public function init( Config $config )
	{
		$this->_guard_conditions   = $config->getAssoc( s('guard_conditions') );
		$this->_event_filters      = $config->getArray( s('event_filters') );
		$this->_post_actions       = $config->getAssoc( s('post_actions') );
	}

	/**
	 * ユーザイベントを作成する
	 */
	public function createUserEvent( String $event_name )
	{
		return Factory::createUserEvent( $event_name );
	}

	/**
	 * ガード条件を取得する
	 */
	public function getGuardConditions()
	{
		return $this->_guard_conditions;
	}

	/**
	 * イベントフィルタを取得する
	 */
	public function getEventFilters()
	{
		return $this->_event_filters;
	}

	/**
	 * ポストアクションを取得する
	 */
	public function getPostActions()
	{
		return $this->_post_actions;
	}
}

return __FILE__;