<?php

/**
 * Goweb Sitemanager 5 Framework
 * 
 * @version    5.0.0
 * @category   Goweb
 * @package    Goweb_Tree_Node
 * @author     I&D <dev@goweb.pt>, Pedro Pinto <ppinto@goweb.pt>
 * @copyright  2006 (c) Goweb (http://www.goweb.pt)
 */

/**
 * Classe Tree para representação de um nó numa estrutura de dados em forma de Àrvore.
 *
 * @version    5.0.0
 * @category   Goweb
 * @package    Goweb_Tree_Node
 * @author     I&D <dev@goweb.pt>, Pedro Pinto <ppinto@goweb.pt>
 * @copyright  2009 (c) Goweb (http://www.goweb.pt)
 */
class Goweb_Tree_Node {

    /**
     * Array com a os membros do nÃ³
     *
     * @var  array
     */
    protected $_members = array();

    /**
     * Constructor
     */
    public function __construct($array = array()) {
        (array) $array;
        if (count($array) > 0) {
            foreach ($array as $key => $value) {
                $this->_members[$key] = $value;
            }
        }        
    }

    /**
     * Adiciona um membro.
     * 
     * @param   $key    string  Chave
     * @param   $value  mixed   Valor
     */
    public function __set($key, $value) {
        $this->_members[$key] = str_replace("'", "\'", $value);
    }

    /**
     * Retorna um membro.
     * 
     * @param   $key  string  Chave
     * @return  mixed
     */
    public function __get($key) {
        if (array_key_exists($key, $this->_members)) {
            return $this->_members[$key];
        }
        return false;
    }
}
