<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html lang="en">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>LoggerRendererDefault.php</title>
    <link rel="stylesheet" type="text/css" href="style.css">
    <link rel="stylesheet" type="text/css" href="container.css">
    <script type="text/javascript" src="yahoo-dom-event.js"></script>
    <script type="text/javascript" src="container-min.js"></script>
  </head>

  <body class="yui-skin-sam">
    <table width="100%" border="0" cellspacing="0" cellpadding="0">
      <tr><td class="title">LoggerRendererDefault.php</td></tr>
      <tr><td class="ruler"><img src="glass.png" width="3" height="3" alt=""></td></tr>

      <tr>
        <td width="100%">
          <table cellpadding="1" border="0" width="100%">
            <tr>
              <td class="headerItem" width="20%">Current file:</td>
              <td class="headerValue" width="80%"><a href="index.html">/home/ihabunek/apache/log4php/src/main/php</a>/<a href="renderers.html">renderers</a>/<a href="renderers_LoggerRendererDefault.php.html">LoggerRendererDefault.php</a></td>
            </tr>
            <tr>
              <td class="legendItem" width="20%">Legend:</td>
              <td class="legendValue" width="80%">
                <span class="legendCov">executed</span>
                <span class="legendNoCov">not executed</span>
                <span class="legendDeadCode">dead code</span>
              </td>
            </tr>
          </table>
        </td>
      </tr>

      <tr>
        <td class="ruler"><img src="glass.png" width="3" height="3" alt=""></td>
      </tr>
    </table>

    <br />

    <center>
      <table width="90%" cellpadding="2" cellspacing="1" border="0">
        <tr>
          <td class="tableHead" width="30%">&nbsp;</td>
          <td class="tableHead" colspan="10">Coverage</td>
        </tr>
        <tr>
          <td class="tableHead">&nbsp;</td>
          <td class="tableHead" colspan="3">Classes</td>
          <td class="tableHead" colspan="4">Functions / Methods</td>
          <td class="tableHead" colspan="3">Lines</td>
        </tr>
        <tr>
          <td class="coverDirectory">Total</td>
          <td class="coverBar">
             <div class="coverBarOutline" title="100.00%">
                <div class="size chameleon"  style="width:100%" title="100.00%"></div>
             </div>
          </td>
          <td class="coverPerHi">100.00%</td>
          <td class="coverNumHi">1 / 1</td>
          <td class="coverBar">
            <div class="coverBarOutline" title="100.00%">
                <div class="size chameleon"  style="width:100%" title="100.00%"></div>
            </div>
          </td>
          <td class="coverPerHi">100.00%</td>
          <td class="coverNumHi">1 / 1</td>
          <td class="crap"><acronym title="Change Risk Anti-Patterns (CRAP) Index">CRAP</acronym></td>
          <td class="coverBar">
            <div class="coverBarOutline" title="100.00%">
                <div class="size chameleon"  style="width:100%" title="100.00%"></div>
            </div>
          </td>
          <td class="coverPerHi">100.00%</td>
          <td class="coverNumHi">1 / 1</td>
        </tr>

        <tr>
          <td class="coverDirectory">LoggerRendererDefault</td>
          <td class="coverBar">
             <div class="coverBarOutline" title="100.00%">
                <div class="size chameleon"  style="width:100%" title="100.00%"></div>
             </div>
          </td>
          <td class="coverPerHi">100.00%</td>
          <td class="coverNumHi">1 / 1</td>
          <td class="coverBar">
            <div class="coverBarOutline" title="100.00%">
                <div class="size chameleon"  style="width:100%" title="100.00%"></div>
            </div>
          </td>
          <td class="coverPerHi">100.00%</td>
          <td class="coverNumHi">1 / 1</td>
          <td class="crap">1</td>
          <td class="coverBar">
            <div class="coverBarOutline" title="100.00%">
                <div class="size chameleon"  style="width:100%" title="100.00%"></div>
            </div>
          </td>
          <td class="coverPerHi">100.00%</td>
          <td class="coverNumHi">1 / 1</td>
        </tr>

        <tr>
          <td class="coverFile" colspan="4">&nbsp;<a href="#48">render($o)</a></td>
          <td class="coverBar">
            <div class="coverBarOutline" title="100.00%">
                <div class="size chameleon"  style="width:100%" title="100.00%"></div>
            </div>
          </td>
          <td class="coverPerHi">100.00%</td>
          <td class="coverNumHi">1 / 1</td>
          <td class="crap">1</td>
          <td class="coverBar">
              <div class="coverBarOutline" title="100.00%">
                  <div class="size chameleon"  style="width:100%" title="100.00%"></div>
              </div>
          </td>
          <td class="coverPerHi">100.00%</td>
          <td class="coverNumHi">1 / 1</td>
        </tr>


      </table>
    </center>

    <br />

    <table cellpadding="0" cellspacing="0" border="0">
      <tr>
        <td><br /></td>
      </tr>
      <tr>
        <td>
<pre class="source">
<span class="lineNum" id="container1"><a name="1"></a><a href="#1" id="line1">       1</a> </span>                : &lt;?php                                                                      
<span class="lineNum" id="container2"><a name="2"></a><a href="#2" id="line2">       2</a> </span>                : /**                                                                        
<span class="lineNum" id="container3"><a name="3"></a><a href="#3" id="line3">       3</a> </span>                :  * Licensed to the Apache Software Foundation (ASF) under one or more      
<span class="lineNum" id="container4"><a name="4"></a><a href="#4" id="line4">       4</a> </span>                :  * contributor license agreements. See the NOTICE file distributed with    
<span class="lineNum" id="container5"><a name="5"></a><a href="#5" id="line5">       5</a> </span>                :  * this work for additional information regarding copyright ownership.     
<span class="lineNum" id="container6"><a name="6"></a><a href="#6" id="line6">       6</a> </span>                :  * The ASF licenses this file to You under the Apache License, Version 2.0 
<span class="lineNum" id="container7"><a name="7"></a><a href="#7" id="line7">       7</a> </span>                :  * (the &quot;License&quot;); you may not use this file except in compliance with    
<span class="lineNum" id="container8"><a name="8"></a><a href="#8" id="line8">       8</a> </span>                :  * the License. You may obtain a copy of the License at                    
<span class="lineNum" id="container9"><a name="9"></a><a href="#9" id="line9">       9</a> </span>                :  *                                                                         
<span class="lineNum" id="container10"><a name="10"></a><a href="#10" id="line10">      10</a> </span>                :  *       http://www.apache.org/licenses/LICENSE-2.0                        
<span class="lineNum" id="container11"><a name="11"></a><a href="#11" id="line11">      11</a> </span>                :  *                                                                         
<span class="lineNum" id="container12"><a name="12"></a><a href="#12" id="line12">      12</a> </span>                :  * Unless required by applicable law or agreed to in writing, software     
<span class="lineNum" id="container13"><a name="13"></a><a href="#13" id="line13">      13</a> </span>                :  * distributed under the License is distributed on an &quot;AS IS&quot; BASIS,       
<span class="lineNum" id="container14"><a name="14"></a><a href="#14" id="line14">      14</a> </span>                :  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
<span class="lineNum" id="container15"><a name="15"></a><a href="#15" id="line15">      15</a> </span>                :  * See the License for the specific language governing permissions and     
<span class="lineNum" id="container16"><a name="16"></a><a href="#16" id="line16">      16</a> </span>                :  * limitations under the License.                                          
<span class="lineNum" id="container17"><a name="17"></a><a href="#17" id="line17">      17</a> </span>                :  *                                                                         
<span class="lineNum" id="container18"><a name="18"></a><a href="#18" id="line18">      18</a> </span>                :  * @package log4php                                                        
<span class="lineNum" id="container19"><a name="19"></a><a href="#19" id="line19">      19</a> </span>                :  */                                                                        
<span class="lineNum" id="container20"><a name="20"></a><a href="#20" id="line20">      20</a> </span>                :                                                                            
<span class="lineNum" id="container21"><a name="21"></a><a href="#21" id="line21">      21</a> </span>                : /**                                                                        
<span class="lineNum" id="container22"><a name="22"></a><a href="#22" id="line22">      22</a> </span>                :  * The default Renderer renders objects by type casting.                   
<span class="lineNum" id="container23"><a name="23"></a><a href="#23" id="line23">      23</a> </span>                :  *                                                                         
<span class="lineNum" id="container24"><a name="24"></a><a href="#24" id="line24">      24</a> </span>                :  * Example:                                                                
<span class="lineNum" id="container25"><a name="25"></a><a href="#25" id="line25">      25</a> </span>                :  *                                                                         
<span class="lineNum" id="container26"><a name="26"></a><a href="#26" id="line26">      26</a> </span>                :  * {@example ../../examples/php/renderer_default.php 19}&lt;br&gt;               
<span class="lineNum" id="container27"><a name="27"></a><a href="#27" id="line27">      27</a> </span>                :  * {@example ../../examples/resources/renderer_default.properties 18}&lt;br&gt;  
<span class="lineNum" id="container28"><a name="28"></a><a href="#28" id="line28">      28</a> </span>                :  * &lt;pre&gt;                                                                   
<span class="lineNum" id="container29"><a name="29"></a><a href="#29" id="line29">      29</a> </span>                :  * DEBUG - Now comes the current MyClass object:                           
<span class="lineNum" id="container30"><a name="30"></a><a href="#30" id="line30">      30</a> </span>                :  * DEBUG - Person::__set_state(array(                                      
<span class="lineNum" id="container31"><a name="31"></a><a href="#31" id="line31">      31</a> </span>                :  *  'firstName' =&gt; 'John',                                                 
<span class="lineNum" id="container32"><a name="32"></a><a href="#32" id="line32">      32</a> </span>                :  *  'lastName' =&gt; 'Doe',                                                   
<span class="lineNum" id="container33"><a name="33"></a><a href="#33" id="line33">      33</a> </span>                :  * ))                                                                      
<span class="lineNum" id="container34"><a name="34"></a><a href="#34" id="line34">      34</a> </span>                :  * &lt;/pre&gt;                                                                  
<span class="lineNum" id="container35"><a name="35"></a><a href="#35" id="line35">      35</a> </span>                :  *                                                                         
<span class="lineNum" id="container36"><a name="36"></a><a href="#36" id="line36">      36</a> </span>                :  * @package log4php                                                        
<span class="lineNum" id="container37"><a name="37"></a><a href="#37" id="line37">      37</a> </span>                :  * @subpackage renderers                                                   
<span class="lineNum" id="container38"><a name="38"></a><a href="#38" id="line38">      38</a> </span>                :  * @since 0.3                                                              
<span class="lineNum" id="container39"><a name="39"></a><a href="#39" id="line39">      39</a> </span>                :  */                                                                        
<span class="lineNum" id="container40"><a name="40"></a><a href="#40" id="line40">      40</a> </span>                : class LoggerRendererDefault implements LoggerRendererObject {              
<span class="lineNum" id="container41"><a name="41"></a><a href="#41" id="line41">      41</a> </span>                :                                                                            
<span class="lineNum" id="container42"><a name="42"></a><a href="#42" id="line42">      42</a> </span>                :     /**                                                                    
<span class="lineNum" id="container43"><a name="43"></a><a href="#43" id="line43">      43</a> </span>                :      * Render objects by type casting                                      
<span class="lineNum" id="container44"><a name="44"></a><a href="#44" id="line44">      44</a> </span>                :      *                                                                     
<span class="lineNum" id="container45"><a name="45"></a><a href="#45" id="line45">      45</a> </span>                :      * @param mixed $o the object to render                                
<span class="lineNum" id="container46"><a name="46"></a><a href="#46" id="line46">      46</a> </span>                :      * @return string                                                      
<span class="lineNum" id="container47"><a name="47"></a><a href="#47" id="line47">      47</a> </span>                :      */                                                                    
<span class="lineNum" id="container48"><a name="48"></a><a href="#48" id="line48">      48</a> </span>                :     public function render($o) {                                           
<span class="lineNum" id="container49"><a name="49"></a><a href="#49" id="line49">      49</a> </span><span class="lineCov">              1 :         return var_export($o, true);                                       </span>
<span class="lineNum" id="container50"><a name="50"></a><a href="#50" id="line50">      50</a> </span>                :     }                                                                      
<span class="lineNum" id="container51"><a name="51"></a><a href="#51" id="line51">      51</a> </span>                : }                                                                          

</pre>
        </td>
      </tr>
    </table>

    <table width="100%" border="0" cellspacing="0" cellpadding="0">
      <tr><td class="ruler"><img src="glass.png" width="3" height="3" alt=""></td></tr>
      <tr><td class="versionInfo">Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 1.1.1</a> using <a href="http://www.php.net/" target="_top">PHP 5.3.3-7+squeeze3</a> and PHPUnit 3.6.3 at Sat Feb 18 22:32:39 GMT 2012.</td></tr>
    </table>

    <br />

    <script type="text/javascript">
      //<![CDATA[
      $E = YAHOO.util.Event;
      YAHOO.namespace("phpunit.container");
      YAHOO.phpunit.container.panelsData = {
        "panel49": {
          "header": "1 test covers line 49",
          "body": "<ul><li class=\"testPassed\">LoggerRendererDefaultTest::testDoRender</li></ul>",
          "footer": ""
        },
      "dummy": ""
      };

      YAHOO.phpunit.container.prepare = function (e) {
        var elemId = $E.getTarget(e).id;
        var line = elemId.substr(4);
        var panelId = "panel" + line;
        var containerId = "container" + line;

        var panelData = YAHOO.phpunit.container.panelsData[panelId];

        var panel = new YAHOO.widget.Panel(panelId, { visible:false, draggable:false, close:true } );
        panel.setHeader(panelData["header"]);
        panel.setBody(panelData["body"]);
        panel.setFooter(panelData["footer"]);
        panel.render(containerId);

        $E.addListener(elemId, "click", panel.show, panel, true);
        $E.removeListener(elemId, "mouseover");
      };

      function init() {
        var ypc = YAHOO.phpunit.container;
        for (var panelId in ypc.panelsData) {
          var elemId = "line" + panelId.substr(5);
          $E.addListener(elemId, "mouseover", ypc.prepare);
        }
      }

      $E.addListener(window, "load", init);
      //]]>
    </script>
  </body>
</html>
