changed git call from https to git readonly
[atutor.git] / mods / phpdoc / PHPDoc / accessor / PhpdocWarningAccessor.php
1 <?php\r
2 /**\r
3 * Extracts the warnings from PHPDoc warnings_* files.\r
4\r
5 */\r
6 class PhpdocWarningAccessor extends PhpdocAccessor {\r
7 \r
8         /**\r
9         * If set to true all get_xy() functions will free their resources.\r
10         * @var          boolean\r
11         * @access       public\r
12         */\r
13         var $freeOnGet = true;  \r
14         \r
15         /**\r
16         * Array of warnings.\r
17         * @var  array\r
18         */\r
19         var $warnings = array();\r
20         \r
21         /**\r
22         * Flag used to detect if get_xy() was called.s\r
23         * @var  boolean\r
24         */\r
25         var $flag_build = false;\r
26         \r
27         /**\r
28         * Returns a hash of warnings in of the given XML file.\r
29         *\r
30         * @param        string  XML file\r
31         * @return       array\r
32         * @access       public\r
33         * @see  $freeOnGet\r
34         */\r
35         function getWarnings($xmlfile) {\r
36                 \r
37                 $this->buildWarnings($xmlfile);\r
38                 \r
39                 if ($this->freeOnGet) {\r
40                         \r
41                         $data = $this->warnings; \r
42                         $this->warnings = array();\r
43                         return $data;\r
44                         \r
45                 } else {\r
46                         \r
47                         return $this->warnings;\r
48                         \r
49                 }\r
50                 \r
51         } // end func getWarnings\r
52         \r
53         /**\r
54         * Build the internal list of warnings.\r
55         *\r
56         * @param        string  XML file to load\r
57         */\r
58         function buildWarnings($xmlfile) {\r
59                 \r
60                 if ($this->flag_build)\r
61                         return;\r
62                         \r
63                 $this->flag_build = true;\r
64                 $this->warnings         = array();\r
65                 $this->loadXMLFile($xmlfile);\r
66 \r
67                 if(!isset($this->xml["warnings"][0]))\r
68                         $this->xml["warnings"] = array( $this->xml["warnings"] );\r
69                 \r
70                 reset($this->xml["warnings"]);\r
71                 while (list($k, $warnings)=each($this->xml["warnings"])) {\r
72                 \r
73                         $file = $warnings["file"];\r
74                         if (!isset($warnings["warning"][0])) \r
75                                 $warnings["warning"] = array($warnings["warning"]);\r
76                         $this->warnings[$file] = $warnings["warning"];\r
77                                         \r
78                 }\r
79 \r
80                 $this->xml = "";\r
81                 \r
82         } // end func buildWarnings\r
83         \r
84         function init() {\r
85                 $this->flag_build = false;\r
86         } // end func init\r
87         \r
88 } // end class PhpdocWarningAccess\r
89 ?>