diff options
Diffstat (limited to 'buildscripts/phing/classes/phing/tasks/ext/pdo/PDOSQLExecFormatterElement.php')
-rw-r--r-- | buildscripts/phing/classes/phing/tasks/ext/pdo/PDOSQLExecFormatterElement.php | 313 |
1 files changed, 0 insertions, 313 deletions
diff --git a/buildscripts/phing/classes/phing/tasks/ext/pdo/PDOSQLExecFormatterElement.php b/buildscripts/phing/classes/phing/tasks/ext/pdo/PDOSQLExecFormatterElement.php deleted file mode 100644 index bc657604..00000000 --- a/buildscripts/phing/classes/phing/tasks/ext/pdo/PDOSQLExecFormatterElement.php +++ /dev/null @@ -1,313 +0,0 @@ -<?php -/** - * $Id: a3ca52c2b277a8cbc0d2802b75f2bea18701b636 $ - * - * 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>. - */ - -require_once 'phing/system/io/PhingFile.php'; -require_once 'phing/tasks/ext/pdo/PlainPDOResultFormatter.php'; -require_once 'phing/tasks/ext/pdo/XMLPDOResultFormatter.php'; -require_once 'phing/util/LogWriter.php'; - -/** - * A class to represent the nested <formatter> element for PDO SQL results. - * - * This class is inspired by the similarly-named class in the PHPUnit tasks. - * - * @author Hans Lellelid <hans@xmpl.org> - * @package phing.tasks.ext.pdo - * @since 2.3.0 - */ -class PDOSQLExecFormatterElement -{ - /** - * @var PDOResultFormatter - */ - private $formatter; - - /** - * The type of the formatter (used for built-in formatter classes). - * @var string - */ - private $type = ""; - - /** - * Whether to use file (or write output to phing log). - * @var boolean - */ - private $useFile = true; - - /** - * Output file for formatter. - * @var PhingFile - */ - private $outfile; - - /** - * Print header columns. - * @var boolean - */ - private $showheaders = true; - - /** - * Whether to format XML output. - * @var boolean - */ - private $formatoutput = true; - - /** - * Encoding for XML output. - * @var string - */ - private $encoding; - - /** - * Column delimiter. - * Defaults to ',' - * @var string - */ - private $coldelimiter = ","; - - /** - * Row delimiter. - * Defaults to PHP_EOL. - * @var string - */ - private $rowdelimiter = PHP_EOL; - - /** - * Append to an existing file or overwrite it? - * @var boolean - */ - private $append = false; - - /** - * Parameters for a custom formatter. - * @var array Parameter[] - */ - private $formatterParams = array(); - - /** - * @var PDOSQLExecTask - */ - private $parentTask; - - /** - * Construct a new PDOSQLExecFormatterElement with parent task. - * @param PDOSQLExecTask $parentTask - */ - public function __construct(PDOSQLExecTask $parentTask) - { - $this->parentTask = $parentTask; - } - - /** - * Supports nested <param> element (for custom formatter classes). - * @return Parameter - */ - public function createParam() { - $num = array_push($this->parameters, new Parameter()); - return $this->parameters[$num-1]; - } - - /** - * Gets a configured output writer. - * @return Writer - */ - private function getOutputWriter() - { - if ($this->useFile) { - $of = $this->getOutfile(); - if (!$of) { - $of = new PhingFile($this->formatter->getPreferredOutfile()); - } - return new FileWriter($of, $this->append); - } else { - return $this->getDefaultOutput(); - } - } - - /** - * Configures wrapped formatter class with any attributes on this element. - */ - public function prepare() { - - if (!$this->formatter) { - throw new BuildException("No formatter specified (use type or classname attribute)", $this->getLocation()); - } - - $out = $this->getOutputWriter(); - - $this->parentTask->log("Setting output writer to: " . get_class($out), Project::MSG_VERBOSE); - $this->formatter->setOutput($out); - - if ($this->formatter instanceof PlainPDOResultFormatter) { - // set any options that apply to the plain formatter - $this->formatter->setShowheaders($this->showheaders); - $this->formatter->setRowdelim($this->rowdelimiter); - $this->formatter->setColdelim($this->coldelimiter); - } elseif ($this->formatter instanceof XMLPDOResultFormatter) { - // set any options that apply to the xml formatter - $this->formatter->setEncoding($this->encoding); - $this->formatter->setFormatOutput($this->formatoutput); - } - - foreach($this->formatterParams as $param) { - $param = new Parameter(); - $method = 'set' . $param->getName(); - if (!method_exists($this->formatter, $param->getName())) { - throw new BuildException("Formatter " . get_class($this->formatter) . " does not have a $method method.", $this->getLocation()); - } - call_user_func(array($this->formatter, $method), $param->getValue()); - } - } - - /** - * Sets the formatter type. - * @param string $type - */ - function setType($type) { - $this->type = $type; - if ($this->type == "xml") { - $this->formatter = new XMLPDOResultFormatter(); - } elseif ($this->type == "plain") { - $this->formatter = new PlainPDOResultFormatter(); - } else { - throw new BuildException("Formatter '" . $this->type . "' not implemented"); - } - } - - /** - * Set classname for a custom formatter (must extend PDOResultFormatter). - * @param string $className - */ - function setClassName($className) { - $classNameNoDot = Phing::import($className); - $this->formatter = new $classNameNoDot(); - } - - /** - * Set whether to write formatter results to file. - * @param boolean $useFile - */ - function setUseFile($useFile) { - $this->useFile = (boolean) $useFile; - } - - /** - * Return whether to write formatter results to file. - * @return boolean - */ - function getUseFile() { - return $this->useFile; - } - - /** - * Sets the output file for the formatter results. - * @param PhingFile $outFile - */ - function setOutfile(PhingFile $outfile) { - $this->outfile = $outfile; - } - - /** - * Get the output file. - * @return PhingFile - */ - function getOutfile() { - return $this->outfile; - /* - } else { - return new PhingFile($this->formatter->getPreferredOutfile()); - }*/ - } - - /** - * whether output should be appended to or overwrite - * an existing file. Defaults to false. - * @param boolean $append - */ - public function setAppend($append) { - $this->append = (boolean) $append; - } - - /** - * Whether output should be appended to file. - * @return boolean - */ - public function getAppend() { - return $this->append; - } - - /** - * Print headers for result sets from the - * statements; optional, default true. - * @param boolean $showheaders - */ - public function setShowheaders($showheaders) { - $this->showheaders = (boolean) $showheaders; - } - - /** - * Sets the column delimiter. - * @param string $v - */ - public function setColdelim($v) { - $this->coldelimiter = $v; - } - - /** - * Sets the row delimiter. - * @param string $v - */ - public function setRowdelim($v) { - $this->rowdelimiter = $v; - } - - /** - * Set the DOM document encoding. - * @param string $v - */ - public function setEncoding($v) { - $this->encoding = $v; - } - - /** - * @param boolean $v - */ - public function setFormatOutput($v) { - $this->formatOutput = (boolean) $v; - } - - /** - * Gets a default output writer for this task. - * @return Writer - */ - private function getDefaultOutput() - { - return new LogWriter($this->parentTask); - } - - /** - * Gets the formatter that has been configured based on this element. - * @return PDOResultFormatter - */ - function getFormatter() { - return $this->formatter; - } -} |