<!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>LoggerRendererException.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">LoggerRendererException.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_LoggerRendererException.php.html">LoggerRendererException.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">6 / 6</td>
        </tr>

        <tr>
          <td class="coverDirectory">LoggerRendererException</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">3</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">6 / 6</td>
        </tr>

        <tr>
          <td class="coverFile" colspan="4">&nbsp;<a href="#30">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">3</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">6 / 6</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>                :  * Exception renderer                                                                                               
<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>                :  * @package log4php                                                                                                 
<span class="lineNum" id="container25"><a name="25"></a><a href="#25" id="line25">      25</a> </span>                :  * @subpackage renderers                                                                                            
<span class="lineNum" id="container26"><a name="26"></a><a href="#26" id="line26">      26</a> </span>                :  * @since 2.1                                                                                                       
<span class="lineNum" id="container27"><a name="27"></a><a href="#27" id="line27">      27</a> </span>                :  */                                                                                                                 
<span class="lineNum" id="container28"><a name="28"></a><a href="#28" id="line28">      28</a> </span>                : class LoggerRendererException implements LoggerRendererObject {                                                     
<span class="lineNum" id="container29"><a name="29"></a><a href="#29" id="line29">      29</a> </span>                :                                                                                                                     
<span class="lineNum" id="container30"><a name="30"></a><a href="#30" id="line30">      30</a> </span>                :     public function render($o) {                                                                                    
<span class="lineNum" id="container31"><a name="31"></a><a href="#31" id="line31">      31</a> </span><span class="lineCov">              4 :         $strRep  = 'Throwable('.get_class($o).'): '.$o-&gt;getMessage().' in '.$o-&gt;getFile().' on line '.$o-&gt;getLine();</span>
<span class="lineNum" id="container32"><a name="32"></a><a href="#32" id="line32">      32</a> </span><span class="lineCov">              4 :         $strRep .= PHP_EOL.$o-&gt;getTraceAsString();                                                                  </span>
<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><span class="lineCov">              4 :         if (method_exists($o, 'getPrevious') &amp;&amp; $o-&gt;getPrevious() !== null) {                                       </span>
<span class="lineNum" id="container35"><a name="35"></a><a href="#35" id="line35">      35</a> </span><span class="lineCov">              2 :             $strRep .= PHP_EOL.'Caused by: '.$this-&gt;render($o-&gt;getPrevious());                                      </span>
<span class="lineNum" id="container36"><a name="36"></a><a href="#36" id="line36">      36</a> </span><span class="lineCov">              2 :         }                                                                                                           </span>
<span class="lineNum" id="container37"><a name="37"></a><a href="#37" id="line37">      37</a> </span>                :                                                                                                                     
<span class="lineNum" id="container38"><a name="38"></a><a href="#38" id="line38">      38</a> </span><span class="lineCov">              4 :         return $strRep;                                                                                             </span>
<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>                : }                                                                                                                   

</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 = {
        "panel31": {
          "header": "4 tests cover line 31",
          "body": "<ul><li class=\"testPassed\">LoggerLoggingEventTest::testGetThrowableInformation2</li><li class=\"testPassed\">LoggerThrowableInformationTest::testConstructor</li><li class=\"testPassed\">LoggerThrowableInformationTest::testExceptionChain</li><li class=\"testPassed\">LoggerRendererExceptionTest::testRender</li></ul>",
          "footer": ""
        },
        "panel32": {
          "header": "4 tests cover line 32",
          "body": "<ul><li class=\"testPassed\">LoggerLoggingEventTest::testGetThrowableInformation2</li><li class=\"testPassed\">LoggerThrowableInformationTest::testConstructor</li><li class=\"testPassed\">LoggerThrowableInformationTest::testExceptionChain</li><li class=\"testPassed\">LoggerRendererExceptionTest::testRender</li></ul>",
          "footer": ""
        },
        "panel34": {
          "header": "4 tests cover line 34",
          "body": "<ul><li class=\"testPassed\">LoggerLoggingEventTest::testGetThrowableInformation2</li><li class=\"testPassed\">LoggerThrowableInformationTest::testConstructor</li><li class=\"testPassed\">LoggerThrowableInformationTest::testExceptionChain</li><li class=\"testPassed\">LoggerRendererExceptionTest::testRender</li></ul>",
          "footer": ""
        },
        "panel35": {
          "header": "2 tests cover line 35",
          "body": "<ul><li class=\"testPassed\">LoggerThrowableInformationTest::testExceptionChain</li><li class=\"testPassed\">LoggerRendererExceptionTest::testRender</li></ul>",
          "footer": ""
        },
        "panel36": {
          "header": "2 tests cover line 36",
          "body": "<ul><li class=\"testPassed\">LoggerThrowableInformationTest::testExceptionChain</li><li class=\"testPassed\">LoggerRendererExceptionTest::testRender</li></ul>",
          "footer": ""
        },
        "panel38": {
          "header": "4 tests cover line 38",
          "body": "<ul><li class=\"testPassed\">LoggerLoggingEventTest::testGetThrowableInformation2</li><li class=\"testPassed\">LoggerThrowableInformationTest::testConstructor</li><li class=\"testPassed\">LoggerThrowableInformationTest::testExceptionChain</li><li class=\"testPassed\">LoggerRendererExceptionTest::testRender</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>
