<?php
/* vim: set expandtab tabstop=4 shiftwidth=4: */
// +----------------------------------------------------------------------+
// | PHP Version 5                                                        |
// +----------------------------------------------------------------------+
// | Copyright (c) 2010 Takahiro Ooishi                                   |
// +----------------------------------------------------------------------+
// | This source file is subject to version 3.0 of the PHP license,       |
// | that is bundled with this package in the file LICENSE, and is        |
// | available through the world-wide-web at the following url:           |
// | http://www.php.net/license/3_0.txt.                                  |
// | If you did not receive a copy of the PHP license and are unable to   |
// | obtain it through the world-wide-web, please send a note to          |
// | license@php.net so we can mail you a copy immediately.               |
// +----------------------------------------------------------------------+
// | Author: Takahiro Ooishi <taka0125.biz@gmail.com>                     |
// +----------------------------------------------------------------------+
//
// $Id$

abstract class Core_Http_Response
{
    protected $contents;
    protected $informations;

    function __construct($contents, $informations = array())
    {
        $this->setContents($contents);
        $this->setInformations($informations);
    }

    function contents()
    {
        return $this->contents;
    }

    function informations()
    {
        return $this->informations;
    }

    protected function setContents($contents)
    {
        if ($this->isInvalidContents($contents)) throw new ValidationException($contents, 'Invalid Contents.');
        $this->contents = $contents;
    }

    protected function setInformations($informations)
    {
        if ($this->isInvalidInformations($informations)) throw new ValidationException($informations, 'Invalid Informations.');
        $this->informations = $informations;
    }

    protected function isInvalidContents($contents)
    {
        return false;
    }

    protected function isInvalidInformations($informations)
    {
        if (!is_array($informations)) return true;
        return false;
    }
}
