summaryrefslogtreecommitdiff
path: root/buildscripts/PhpDocumentor/phpDocumentor/Converters/XML/DocBook/peardoc2/Beautifier.php
diff options
context:
space:
mode:
Diffstat (limited to 'buildscripts/PhpDocumentor/phpDocumentor/Converters/XML/DocBook/peardoc2/Beautifier.php')
-rw-r--r--buildscripts/PhpDocumentor/phpDocumentor/Converters/XML/DocBook/peardoc2/Beautifier.php135
1 files changed, 135 insertions, 0 deletions
diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/XML/DocBook/peardoc2/Beautifier.php b/buildscripts/PhpDocumentor/phpDocumentor/Converters/XML/DocBook/peardoc2/Beautifier.php
new file mode 100644
index 00000000..81b2e782
--- /dev/null
+++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/XML/DocBook/peardoc2/Beautifier.php
@@ -0,0 +1,135 @@
+<?PHP
+/**
+ * XML/Beautifier.php
+ *
+ * Format XML files containing unknown entities (like all of peardoc)
+ *
+ * phpDocumentor :: automatic documentation generator
+ *
+ * PHP versions 4 and 5
+ *
+ * Copyright (c) 2004-2006 Gregory Beaver
+ *
+ * LICENSE:
+ *
+ * This library is free software; you can redistribute it
+ * and/or modify it under the terms of the GNU Lesser General
+ * Public License as published by the Free Software Foundation;
+ * either version 2.1 of the License, or (at your option) any
+ * later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * @package phpDocumentor
+ * @subpackage Parsers
+ * @author Greg Beaver <cellog@php.net>
+ * @copyright 2004-2006 Gregory Beaver
+ * @license http://www.opensource.org/licenses/lgpl-license.php LGPL
+ * @version CVS: $Id: Beautifier.php 212211 2006-04-30 22:18:14Z cellog $
+ * @filesource
+ * @link http://www.phpdoc.org
+ * @link http://pear.php.net/PhpDocumentor
+ * @since 1.3.0
+ */
+
+
+/**
+ * This is just like XML_Beautifier, but uses {@link phpDocumentor_XML_Beautifier_Tokenizer}
+ * @package phpDocumentor
+ * @subpackage Parsers
+ * @since 1.3.0
+ */
+class phpDocumentor_peardoc2_XML_Beautifier extends XML_Beautifier {
+
+ /**
+ * format a file or URL
+ *
+ * @access public
+ * @param string $file filename
+ * @param mixed $newFile filename for beautified XML file (if none is given, the XML string will be returned.)
+ * if you want overwrite the original file, use XML_BEAUTIFIER_OVERWRITE
+ * @param string $renderer Renderer to use, default is the plain xml renderer
+ * @return mixed XML string of no file should be written, true if file could be written
+ * @throws PEAR_Error
+ * @uses _loadRenderer() to load the desired renderer
+ */
+ function formatFile($file, $newFile = null, $renderer = "Plain")
+ {
+ if ($this->apiVersion() != '1.0') {
+ return $this->raiseError('API version must be 1.0');
+ }
+ /**
+ * Split the document into tokens
+ * using the XML_Tokenizer
+ */
+ require_once dirname(__FILE__) . '/Tokenizer.php';
+ $tokenizer = new phpDocumentor_XML_Beautifier_Tokenizer();
+
+ $tokens = $tokenizer->tokenize( $file, true );
+
+ if (PEAR::isError($tokens)) {
+ return $tokens;
+ }
+
+ include_once dirname(__FILE__) . '/Plain.php';
+ $renderer = new PHPDoc_XML_Beautifier_Renderer_Plain($this->_options);
+
+ $xml = $renderer->serialize($tokens);
+
+ if ($newFile == null) {
+ return $xml;
+ }
+
+ $fp = @fopen($newFile, "w");
+ if (!$fp) {
+ return PEAR::raiseError("Could not write to output file", XML_BEAUTIFIER_ERROR_NO_OUTPUT_FILE);
+ }
+
+ flock($fp, LOCK_EX);
+ fwrite($fp, $xml);
+ flock($fp, LOCK_UN);
+ fclose($fp);
+ return true; }
+
+ /**
+ * format an XML string
+ *
+ * @access public
+ * @param string $string XML
+ * @return string formatted XML string
+ * @throws PEAR_Error
+ */
+ function formatString($string, $renderer = "Plain")
+ {
+ if ($this->apiVersion() != '1.0') {
+ return $this->raiseError('API version must be 1.0');
+ }
+ /**
+ * Split the document into tokens
+ * using the XML_Tokenizer
+ */
+ require_once dirname(__FILE__) . '/Tokenizer.php';
+ $tokenizer = new phpDocumentor_XML_Beautifier_Tokenizer();
+
+ $tokens = $tokenizer->tokenize( $string, false );
+
+ if (PEAR::isError($tokens)) {
+ return $tokens;
+ }
+
+ include_once dirname(__FILE__) . '/Plain.php';
+ $renderer = new PHPDoc_XML_Beautifier_Renderer_Plain($this->_options);
+
+ $xml = $renderer->serialize($tokens);
+
+ return $xml;
+ }
+}
+?> \ No newline at end of file