PHP Classes

File: core/classes/Node.class.php

Recommend this page to a friend!
  Classes of Marius Zadara   PAX   core/classes/Node.class.php   Download  
File: core/classes/Node.class.php
Role: Class source
Content type: text/plain
Description: Node class
Class: PAX
Interpret XML command scripts with PHP classes
Author: By
Last change: Version update
Date: 15 years ago
Size: 3,328 bytes
 

Contents

Class file image Download
<?php

/**
 * Page DocBlock definition
 * @package org.zadara.marius.pax
 */

/**
 * PAX general node definition.
 * This class is the root of all PAX nodes.
 *
 * @author Marius Zadara <marius@zadara.org>
 * @category Classes
 * @copyright (C) 2008-2009 Marius Zadara
 * @license Free for non-comercial use
 * @package org.zadara.marius.pax
 * @abstract
 * @see PAXObject
 * @see INode
 * @version 6.0
 * @since 5.0
 */
abstract class Node extends PAXObject implements INode
{
   
/**
     * User object reference.
     *
     * @access protected
     * @var object
     */
   
protected $userObject;
   
   
   
/**
     * Current node attributes.
     *
     * @access protected
     * @var array
     */
   
protected $attributes;
   
   
   
   
/**
     * Current node content
     *
     * @access protected
     * @var string
     */
   
protected $content;
   
   
   
/**
     * Node constructor.
     *
     * @access public
     */
   
public function __construct()
    {
       
// init the parent
       
parent::__construct();
       
       
// init the user object and the attributes
       
$this->userObject = null;
       
$this->attributes = null;
       
$this->content = null;
    }

   
/**
     * Method to set the user object.
     *
     * @access public
     * @final
     * @param object <b>$userObject</b> The user custom object
     * @return void
     */
   
public final function setUserObject(&$userObject)
    {
       
// set the object to the class member
       
$this->userObject = $userObject;
    }
           
   
   
/**
     * Method to set the current attributes
     *
     * @access public
     * @final
     * @param array <b>$attributes</b> List of the attributes
     * @return void
     */
   
public final function setAttributes(&$attributes)
    {
       
// set the current node's attributes to the class memeber
       
if (is_array($attributes))
           
$this->attributes = $attributes;
    }
   
   
   
/**
     * Method to set the content of the node.
     *
     * @access public
     * @final
     * @param string <b>$content</b> The content of the node
     * @return void
     */
   
public final function setContent($content)
    {
       
// set the content of the node
       
$this->content = $content;
    }
   
   
   
/**
     * Method to reset the attributes to a null value.
     *
     * @access public
     * @final
     * @return void
     */
   
public final function resetAttributes()
    {
       
// reset to null
       
$this->attributes = null;
    }
   
   
   
/**
     * Reset the node content to a null value
     *
     * @access public
     * @final
     * @return void
     */
   
public final function resetContent()
    {
       
// reset the content
       
$this->content = null;
    }
   
   
   
   
/**
     * Method to be called when the node starts.
     * It will be overwritten by every node implementation
     *
     * @access public
     * @abstract
     * @return void
     */
   
public abstract function onOpen();

   
/**
     * Method to be called when the tag is complete (short form).
     *
     * @access public
     * @return void
     */
   
public function onComplete()
    {
       
// call the open method
       
$this->onOpen();
       
       
// call the close method
       
$this->onClose();
    }

   
/**
     * Method to be called when the tag is closed.
     * It will be overwritten by every node implementation.
     *
     * @access public
     * @abstract
     */
   
public abstract function onClose();

   
   
/**
     * Class destructor.
     */
   
function __destruct()
    {
           
    }
}

?>