<?php
/**
* HTTPリクエストをラップするクラス
*
* PHP version 5
*
* @package    requests
* @author     stk2k <stk2k@sazysoft.com>
* @copyright  2008 stk2k, sazysoft
*/

class HttpRequest extends CharcoalComponent implements IRequest
{
	var $_data;

	/*
	 *    コンストラクタ
	 */
	public function __construct( String $name = NULL )
	{
		parent::__construct(s($name));

		$a = array_merge( $_GET, $_POST );
		$this->_data  = new HashMap($a);

		$url_string = "http://" . $_SERVER["SERVER_NAME"] . $_SERVER["REQUEST_URI"];

//		unset( $_POST );
//		unset( $_GET );
	}

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

	/*
	 *    パラメータを取得
	 */
	public function get( String $key )
	{
		return $this->_data->get( $key );
	}

	/*
	 *    文字列パラメータを取得
	 */
	public function getString( String $key )
	{
		$value = $this->_data->get( $key );
		return s($value);
	}

	/*
	 *    配列パラメータを取得
	 */
	public function getArray( String $key )
	{
		$value = $this->_data->get( $key );
		return v($value);
	}

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

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

return __FILE__;