diff options
Diffstat (limited to 'buildscripts/phing/classes/phing/parser/NestedElementHandler.php')
-rwxr-xr-x | buildscripts/phing/classes/phing/parser/NestedElementHandler.php | 186 |
1 files changed, 0 insertions, 186 deletions
diff --git a/buildscripts/phing/classes/phing/parser/NestedElementHandler.php b/buildscripts/phing/classes/phing/parser/NestedElementHandler.php deleted file mode 100755 index 15d0e173..00000000 --- a/buildscripts/phing/classes/phing/parser/NestedElementHandler.php +++ /dev/null @@ -1,186 +0,0 @@ -<?php -/* - * $Id: 94cdf9380aea8a52cb09663489c2d2c5e28740aa $ - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This software consists of voluntary contributions made by many individuals - * and is licensed under the LGPL. For more information please see - * <http://phing.info>. - */ - -include_once 'phing/IntrospectionHelper.php'; -include_once 'phing/TaskContainer.php'; - -/** - * The nested element handler class. - * - * This class handles the occurance of runtime registered tags like - * datatypes (fileset, patternset, etc) and it's possible nested tags. It - * introspects the implementation of the class and sets up the data structures. - * - * @author Andreas Aderhold <andi@binarycloud.com> - * @copyright 2001,2002 THYRELL. All rights reserved - * @version $Id$ - * @access public - * @package phing.parser - */ - -class NestedElementHandler extends AbstractHandler { - - /** - * Reference to the parent object that represents the parent tag - * of this nested element - * @var object - */ - private $parent; - - /** - * Reference to the child object that represents the child tag - * of this nested element - * @var object - */ - private $child; - - /** - * Reference to the parent wrapper object - * @var object - */ - private $parentWrapper; - - /** - * Reference to the child wrapper object - * @var object - */ - private $childWrapper; - - /** - * Reference to the related target object - * @var object the target instance - */ - private $target; - - /** - * Constructs a new NestedElement handler and sets up everything. - * - * @param object the ExpatParser object - * @param object the parent handler that invoked this handler - * @param object the ProjectConfigurator object - * @param object the parent object this element is contained in - * @param object the parent wrapper object - * @param object the target object this task is contained in - * @access public - */ - function __construct($parser, $parentHandler, $configurator, $parent, $parentWrapper, $target) { - parent::__construct($parser, $parentHandler); - $this->configurator = $configurator; - if ($parent instanceof TaskAdapter) { - $this->parent = $parent->getProxy(); - } else { - $this->parent = $parent; - } - $this->parentWrapper = $parentWrapper; - $this->target = $target; - } - - /** - * Executes initialization actions required to setup the data structures - * related to the tag. - * <p> - * This includes: - * <ul> - * <li>creation of the nested element</li> - * <li>calling the setters for attributes</li> - * <li>adding the element to the container object</li> - * <li>adding a reference to the element (if id attribute is given)</li> - * </ul> - * - * @param string the tag that comes in - * @param array attributes the tag carries - * @throws ExpatParseException if the setup process fails - * @access public - */ - function init($propType, $attrs) { - $configurator = $this->configurator; - $project = $this->configurator->project; - - // introspect the parent class that is custom - $parentClass = get_class($this->parent); - $ih = IntrospectionHelper::getHelper($parentClass); - try { - if ($this->parent instanceof UnknownElement) { - $this->child = new UnknownElement(strtolower($propType)); - $this->parent->addChild($this->child); - } else { - $this->child = $ih->createElement($project, $this->parent, strtolower($propType)); - } - - $configurator->configureId($this->child, $attrs); - - if ($this->parentWrapper !== null) { - $this->childWrapper = new RuntimeConfigurable($this->child, $propType); - $this->childWrapper->setAttributes($attrs); - $this->parentWrapper->addChild($this->childWrapper); - } else { - $configurator->configure($this->child, $attrs, $project); - $ih->storeElement($project, $this->parent, $this->child, strtolower($propType)); - } - } catch (BuildException $exc) { - throw new ExpatParseException("Error initializing nested element <$propType>", $exc, $this->parser->getLocation()); - } - } - - /** - * Handles character data. - * - * @param string the CDATA that comes in - * @throws ExpatParseException if the CDATA could not be set-up properly - * @access public - */ - function characters($data) { - - $configurator = $this->configurator; - $project = $this->configurator->project; - - if ($this->parentWrapper === null) { - try { - $configurator->addText($project, $this->child, $data); - } catch (BuildException $exc) { - throw new ExpatParseException($exc->getMessage(), $this->parser->getLocation()); - } - } else { - $this->childWrapper->addText($data); - } - } - - /** - * Checks for nested tags within the current one. Creates and calls - * handlers respectively. - * - * @param string the tag that comes in - * @param array attributes the tag carries - * @access public - */ - function startElement($name, $attrs) { - //print(get_class($this) . " name = $name, attrs = " . implode(",",$attrs) . "\n"); - if ($this->child instanceof TaskContainer) { - // taskcontainer nested element can contain other tasks - no other - // nested elements possible - $tc = new TaskHandler($this->parser, $this, $this->configurator, $this->child, $this->childWrapper, $this->target); - $tc->init($name, $attrs); - } else { - $neh = new NestedElementHandler($this->parser, $this, $this->configurator, $this->child, $this->childWrapper, $this->target); - $neh->init($name, $attrs); - } - } -} |