parser_interface.php
Current file: src/processor/parser_interface.php
Legend: executed not executed dead code

  Coverage
  Classes Functions / Methods Lines
Total
100.00% 1 / 1
100.00% 4 / 4 CRAP
100.00% 21 / 21
ParserInterface
100.00% 1 / 1
100.00% 4 / 4 7
100.00% 21 / 21
 __construct()
100.00% 1 / 1 1
100.00% 5 / 5
 processSpecificDocblockTags($docblock_tags)
100.00% 1 / 1 1
100.00% 2 / 2
 treeWalk($function_name, ParserItem $parent_item = null)
100.00% 1 / 1 2
100.00% 5 / 5
 dump()
100.00% 1 / 1 3
100.00% 9 / 9


       1                 : <?php                                                                              
       2                 : /*                                                                                 
       3                 : Copyright 2008 Josh Heidenreich                                                    
       4                 :                                                                                    
       5                 : This file is part of Pelzini.                                                      
       6                 :                                                                                    
       7                 : Pelzini is free software: you can redistribute it and/or modify                    
       8                 : it under the terms of the GNU General Public License as published by               
       9                 : the Free Software Foundation, either version 3 of the License, or                  
      10                 : (at your option) any later version.                                                
      11                 :                                                                                    
      12                 : Pelzini is distributed in the hope that it will be useful,                         
      13                 : but WITHOUT ANY WARRANTY; without even the implied warranty of                     
      14                 : MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the                      
      15                 : GNU General Public License for more details.                                       
      16                 :                                                                                    
      17                 : You should have received a copy of the GNU General Public License                  
      18                 : along with Pelzini.  If not, see <http://www.gnu.org/licenses/>.                   
      19                 : */                                                                                 
      20                 :                                                                                    
      21                 : /**                                                                                
      22                 :  * Contains the {@link ParserInterface} class                                      
      23                 :  *                                                                                 
      24                 :  * @package Parser model                                                           
      25                 :  * @author Josh Heidenreich                                                        
      26                 :  * @since 0.1                                                                      
      27                 :  **/                                                                               
      28                 :                                                                                    
      29                 : /**                                                                                
      30                 :  * Represents an interface                                                         
      31                 :  **/                                                                               
      32                 : class ParserInterface extends CodeParserItem {                                     
      33                 :     public $name;                                                                  
      34                 :     public $functions;                                                             
      35                 :     public $extends;                                                               
      36                 :     public $visibility;                                                            
      37                 :     public $description;                                                           
      38                 :                                                                                    
      39                 :     public function __construct()                                                  
      40                 :     {                                                                              
      41              10 :         parent::__construct();                                                     
      42                 :                                                                                    
      43              10 :         $this->functions = array ();                                               
      44              10 :         $this->variables = array ();                                               
      45              10 :         $this->visibility = 'public';                                              
      46              10 :     }                                                                              
      47                 :                                                                                    
      48                 :                                                                                    
      49                 :     /**                                                                            
      50                 :      * Processes Javadoc tags that are specific to this PaserItem                  
      51                 :      **/                                                                           
      52                 :     protected function processSpecificDocblockTags($docblock_tags)                 
      53                 :     {                                                                              
      54              10 :         $this->description = htmlify_text(@$docblock_tags['@summary']);            
      55              10 :     }                                                                              
      56                 :                                                                                    
      57                 :                                                                                    
      58                 :     /**                                                                            
      59                 :      * Cascades Docblock tags into the children that do not have any tags, and then
      60                 :      * runs processTags() for all of the children items.                           
      61                 :      **/                                                                           
      62                 :     public function treeWalk($function_name, ParserItem $parent_item = null)       
      63                 :     {                                                                              
      64              10 :         call_user_func($function_name, $this, $parent_item);                       
      65                 :                                                                                    
      66              10 :         foreach ($this->functions as $item) {                                      
      67               4 :             $item->treeWalk($function_name, $this);                                
      68              10 :         }                                                                          
      69              10 :     }                                                                              
      70                 :                                                                                    
      71                 :                                                                                    
      72                 :     /**                                                                            
      73                 :      * Debugging use only                                                          
      74                 :      **/                                                                           
      75                 :     public function dump()                                                         
      76                 :     {                                                                              
      77               2 :         echo '<div style="border: 1px orange solid;">';                            
      78               2 :         echo $this->visibility . ' ';                                              
      79               2 :         echo $this->name;                                                          
      80               2 :         echo '<br>' . $this->description;                                          
      81               2 :         foreach ($this->variables as $a) $a->dump();                               
      82               2 :         foreach ($this->functions as $a) $a->dump();                               
      83                 :                                                                                    
      84               2 :         parent::dump();                                                            
      85               2 :         echo '</div>';                                                             
      86               2 :     }                                                                              
      87                 :                                                                                    
      88                 :                                                                                    
      89                 : }                                                                                  
      90                 :                                                                                    
      91                 :                                                                                    
      92                 : ?>                                                                                 

Generated by PHP_CodeCoverage 1.1.2 using PHP 5.4.39-0+deb7u2 and PHPUnit 3.6.10 at Fri Sep 11 11:35:19 WIT 2015.