]> git.sur5r.net Git - bacula/bacula/blob - gui/baculum/framework/3rdParty/TextHighlighter/Text/Highlighter/Renderer/XML.php
Update ReleaseNotes + ChangeLog
[bacula/bacula] / gui / baculum / framework / 3rdParty / TextHighlighter / Text / Highlighter / Renderer / XML.php
1 <?php
2 /* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
3 /**
4  * XML renderer.
5  *
6  * Based on the HTML renderer by Andrey Demenev.
7  *
8  * LICENSE: This source file is subject to version 3.0 of the PHP license
9  * that is available through the world-wide-web at the following URI:
10  * http://www.php.net/license/3_0.txt.  If you did not receive a copy of
11  * the PHP License and are unable to obtain it through the web, please
12  * send a note to license@php.net so we can mail you a copy immediately.
13  *
14  * @category   Text
15  * @package    Text_Highlighter
16  * @author     Stoyan Stefanov <ssttoo@gmail.com>
17  * @copyright  2006 Stoyan Stefanov
18  * @license    http://www.php.net/license/3_0.txt  PHP License
19  * @version    CVS: $Id: XML.php,v 1.1 2007/06/03 02:37:09 ssttoo Exp $
20  * @link       http://pear.php.net/package/Text_Highlighter
21  */
22
23 /**
24  * @ignore
25  */
26
27 require_once dirname(__FILE__).'/../Renderer.php';
28 require_once dirname(__FILE__).'/../Renderer/Array.php';
29
30 /**
31  * XML renderer, based on Andrey Demenev's HTML renderer.
32  *
33  * @author     Stoyan Stefanov <ssttoo@gmail.com>
34  * @category   Text
35  * @package    Text_Highlighter
36  * @copyright  2006 Stoyan Stefanov
37  * @license    http://www.php.net/license/3_0.txt  PHP License
38  * @version    Release: 0.5.0
39  * @link       http://pear.php.net/package/Text_Highlighter
40  */
41
42 class Text_Highlighter_Renderer_XML extends Text_Highlighter_Renderer_Array
43 {
44
45
46     /**
47      * Options for XML_Serializer
48      *
49      * @access private
50      * @var array
51      */
52     var $_serializer_options = array();
53
54
55     /**
56      * Resets renderer state
57      *
58      * Descendents of Text_Highlighter call this method from the constructor,
59      * passing $options they get as parameter.
60      *
61      * @access protected
62      */
63     function reset()
64     {
65         parent::reset();
66         if (isset($this->_options['xml_serializer'])) {
67             $this->_serializer_options = $this->_options['xml_serializer'];
68         }
69     }
70
71
72     /**
73      * Signals that no more tokens are available
74      *
75      * @abstract
76      * @access public
77      */
78     function finalize()
79     {
80
81         // call parent's finalize(), then serialize array into XML
82         parent::finalize();
83         $output = parent::getOutput();
84
85         $serializer = new XML_Serializer($this->_serializer_options);
86         $result = $serializer->serialize($output);
87         if ($result === true) {
88             $this->_output = $serializer->getSerializedData();
89         }
90     }
91
92
93 }
94
95 /*
96  * Local variables:
97  * tab-width: 4
98  * c-basic-offset: 4
99  * c-hanging-comment-ender-p: nil
100  * End:
101  */
102