<?php
/**
* シェルリからの起動引数を表現するクラス
*
* PHP version 5
*
* @package    requests
* @author     stk2k <stk2k@sazysoft.com>
* @copyright  2008 stk2k, sazysoft
*/

class ShellRequest extends CharcoalComponent implements IRequest
{
	var $_data;

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

		$argv = $_SERVER[ 'argv' ];
		$this->_data  = CommandLineUtil::parseParams( $argv );
	}

	/*
	 *    URLを取得
	 */
	public function getURL()
	{
		return $this->_url;
	}

	/*
	 *    キー一覧を取得
	 */
	public function getKeys()
	{
		return array_keys( $this->_data );
	}

	/*
	 *    パラメータを取得
	 */
	public function get( String $key )
	{
		return isset( $this->_data["$key"] ) ? $this->_data["$key"] : NULL;
	}

	/*
	 *    文字列パラメータを取得
	 */
	public function getString( String $key )
	{
		return isset( $this->_data["$key"] ) ? s($this->_data["$key"]) : NULL;
	}


	/*
	 *    配列パラメータを取得
	 */
	public function getArray( String $key )
	{
		return isset( $this->_data["$key"] ) ? a($this->_data["$key"]) : NULL;
	}


	/*
	 *    パラメータを設定
	 */
	public function set( String $key, $value )
	{
		$this->_data[ $key ] = $value;
	}

	/*
	 * ダンプ
	 */
	public function dump()
	{
		print "----------[ Request ]---------------<BR>";
		array_dump( $this->_data );
	}

	/*
	 * 文字列化
	 */
	public function __toString()
	{
		$str = "[Request]<BR>" . System::arrayToString( $this->_data );
		return $str;
	}
}

return __FILE__;