<?php
/**
* HTMLコンテナオブジェクトクラス
*
* PHP version 5
*
* @package    core
* @author     stk2k <stk2k@sazysoft.com>
* @copyright  2008 stk2k, sazysoft
*/

abstract class HTMLContainerObject extends HTMLObject
{
	protected $_children;

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

		$this->_children     = array();
	}

	/*
	 *	子要素を追加
	 */
	public function addChild( HTMLObject $child )
	{
		$this->_children[] = $child;
	}

	/*
	 *	HTML出力
	 */
	public function toHTML()
	{
		// 開始タグ
		$html = $this->startTag() . PHP_EOL;

		// 子要素の出力
		$html .= $this->childTags() . PHP_EOL;

		// 終了タグ
		$html .= $this->endTag() . PHP_EOL;

		return $html;
	}
  
	/*
	 *	子要素タグ出力
	 */
	public function childTags()
	{
		$html = '';
		$children = $this->_children;
		foreach( $children as $c ){
			$html .= $c->toHTML();
		}
		return $html;
	}

}
