. */ require_once 'phing/Task.php'; /** * Call another target in the same project. * *
 *    
 *      
 *        
 *        
 *       
 *    
 *
 *    
 *      
 *    
 *  
* *

This only works as expected if neither property1 nor foo are * defined in the project itself. * * @author Andreas Aderhold * @copyright 2001,2002 THYRELL. All rights reserved * @version $Revision: 1.9 $ * @access public * @package phing.tasks.system */ class PhingCallTask extends Task { private $callee; private $subTarget; // must match the default value of PhingTask#inheritAll private $inheritAll = true; // must match the default value of PhingTask#inheritRefs private $inheritRefs = false; /** * If true, pass all properties to the new Phing project. * Defaults to true. Future use. * @param boolean new value */ function setInheritAll($inherit) { $this->inheritAll = (boolean) $inherit; } /** * If true, pass all references to the new Phing project. * Defaults to false. Future use. * * @param boolean new value */ function setInheritRefs($inheritRefs) { $this->inheritRefs = (boolean) $inheritRefs; } /** * init this task by creating new instance of the phing task and * configuring it's by calling its own init method. */ function init() { $this->callee = $this->project->createTask("phing"); $this->callee->setOwningTarget($this->getOwningTarget()); $this->callee->setTaskName($this->getTaskName()); $this->callee->setLocation($this->getLocation()); $this->callee->init(); } /** * hand off the work to the phing task of ours, after setting it up * @throws BuildException on validation failure or if the target didn't * execute */ function main() { $this->log("Running PhingCallTask for target '" . $this->subTarget . "'", PROJECT_MSG_DEBUG); if ($this->callee === null) { $this->init(); } if ($this->subTarget === null) { throw new BuildException("Attribute target is required.", $this->location); } $this->callee->setPhingfile($this->project->getProperty("phing.file")); $this->callee->setTarget($this->subTarget); $this->callee->setInheritAll($this->inheritAll); $this->callee->setInheritRefs($this->inheritRefs); $this->callee->main(); } /** * Alias for createProperty * @see createProperty() */ function createParam() { if ($this->callee === null) { $this->init(); } return $this->callee->createProperty(); } /** * Property to pass to the invoked target. */ function createProperty() { if ($this->callee === null) { $this->init(); } return $this->callee->createProperty(); } /** * Target to execute, required. */ function setTarget($target) { $this->subTarget = (string) $target; } }