diff options
Diffstat (limited to 'buildscripts/phing/classes/phing/tasks/ext/PearPackageTask.php')
-rw-r--r-- | buildscripts/phing/classes/phing/tasks/ext/PearPackageTask.php | 115 |
1 files changed, 99 insertions, 16 deletions
diff --git a/buildscripts/phing/classes/phing/tasks/ext/PearPackageTask.php b/buildscripts/phing/classes/phing/tasks/ext/PearPackageTask.php index 4f8ee3ab..47945998 100644 --- a/buildscripts/phing/classes/phing/tasks/ext/PearPackageTask.php +++ b/buildscripts/phing/classes/phing/tasks/ext/PearPackageTask.php @@ -1,6 +1,6 @@ <?php /* - * $Id: PearPackageTask.php 59 2006-04-28 14:49:47Z mrook $ + * $Id: 2078fd5bab3dd6dcea0345a12fce86a24586c765 $ * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT @@ -74,15 +74,15 @@ include_once 'phing/types/FileSet.php'; * * @author Hans Lellelid <hans@xmpl.org> * @package phing.tasks.ext - * @version $Revision: 1.9 $ + * @version $Id: 2078fd5bab3dd6dcea0345a12fce86a24586c765 $ */ class PearPackageTask extends MatchingTask { /** */ - private $package; + protected $package; /** Base directory for reading files. */ - private $dir; + protected $dir; /** Package file */ private $packageFile; @@ -91,15 +91,21 @@ class PearPackageTask extends MatchingTask { private $filesets = array(); /** @var PEAR_PackageFileManager */ - private $pkg; + protected $pkg; private $preparedOptions = array(); /** @var array PearPkgOption[] */ - private $options = array(); + protected $options = array(); /** Nested <mapping> (complex options) types. */ - private $mappings = array(); + protected $mappings = array(); + + /** + * Nested <role> elements + * @var PearPkgRole[] + */ + protected $roles = array(); public function init() { include_once 'PEAR/PackageFileManager.php'; @@ -112,7 +118,7 @@ class PearPackageTask extends MatchingTask { * Sets PEAR package.xml options, based on class properties. * @return void */ - private function setOptions() { + protected function setOptions() { // 1) first prepare/populate options $this->populateOptions(); @@ -147,6 +153,11 @@ class PearPackageTask extends MatchingTask { if (PEAR::isError($e)) { throw new BuildException("Unable to set options.", new Exception($e->getMessage())); } + + // convert roles + foreach ($this->roles as $role) { + $this->pkg->addRole($role->getExtension(), $role->getRole()); + } } /** @@ -180,9 +191,9 @@ class PearPackageTask extends MatchingTask { $this->preparedOptions['packagefile'] = $f->getName(); // must end in trailing slash $this->preparedOptions['outputdirectory'] = $f->getParent() . DIRECTORY_SEPARATOR; - $this->log("Creating package file: " . $f->__toString(), PROJECT_MSG_INFO); + $this->log("Creating package file: " . $f->__toString(), Project::MSG_INFO); } else { - $this->log("Creating [default] package.xml file in base directory.", PROJECT_MSG_INFO); + $this->log("Creating [default] package.xml file in base directory.", Project::MSG_INFO); } // converts option objects and mapping objects into @@ -244,11 +255,12 @@ class PearPackageTask extends MatchingTask { /** * Nested creator, creates a FileSet for this task * - * @return FileSet The created fileset object + * @param FileSet $fileset Set of files to add to the package + * + * @return void */ - function createFileSet() { - $num = array_push($this->filesets, new FileSet()); - return $this->filesets[$num-1]; + public function addFileSet(FileSet $fs) { + $this->filesets[] = $fs; } /** @@ -289,7 +301,7 @@ class PearPackageTask extends MatchingTask { /** * Handles nested generic <option> elements. */ - function createOption() { + public function createOption() { $o = new PearPkgOption(); $this->options[] = $o; return $o; @@ -298,17 +310,30 @@ class PearPackageTask extends MatchingTask { /** * Handles nested generic <option> elements. */ - function createMapping() { + public function createMapping() { $o = new PearPkgMapping(); $this->mappings[] = $o; return $o; } + + /** + * Handles nested <role> elements + * @return PearPkgRole + */ + public function createRole() + { + $role = new PearPkgRole(); + $this->roles[] = $role; + return $role; + } } /** * Generic option class is used for non-complex options. + * + * @package phing.tasks.ext */ class PearPkgOption { @@ -326,6 +351,8 @@ class PearPkgOption { /** * Handles complex options <mapping> elements which are hashes (assoc arrays). + * + * @package phing.tasks.ext */ class PearPkgMapping { @@ -369,6 +396,8 @@ class PearPkgMapping { /** * Sub-element of <mapping>. + * + * @package phing.tasks.ext */ class PearPkgMappingElement { @@ -419,3 +448,57 @@ class PearPkgMappingElement { } } + +/** + * Encapsulates file roles + * + * @package phing.tasks.ext + */ +class PearPkgRole +{ + /** + * @var string + */ + private $extension; + + /** + * @var string + */ + private $role; + + /** + * Sets the file extension + * @param string $extension + */ + public function setExtension($extension) + { + $this->extension = $extension; + } + + /** + * Retrieves the file extension + * @return string + */ + public function getExtension() + { + return $this->extension; + } + + /** + * Sets the role + * @param string $role + */ + public function setRole($role) + { + $this->role = $role; + } + + /** + * Retrieves the role + * @return string + */ + public function getRole() + { + return $this->role; + } +}
\ No newline at end of file |