<!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>LoggerCategoryPatternConverter.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">LoggerCategoryPatternConverter.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="helpers.html">helpers</a>/<a href="helpers_LoggerCategoryPatternConverter.php.html">LoggerCategoryPatternConverter.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">2 / 2</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">3 / 3</td>
        </tr>

        <tr>
          <td class="coverDirectory">LoggerCategoryPatternConverter</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">2 / 2</td>
          <td class="crap">2</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">3 / 3</td>
        </tr>

        <tr>
          <td class="coverFile" colspan="4">&nbsp;<a href="#33">__construct($formattingInfo, $precision)</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">2 / 2</td>
        </tr>

        <tr>
          <td class="coverFile" colspan="4">&nbsp;<a href="#41">getFullyQualifiedName($event)</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>                :  * @package log4php                                                        
<span class="lineNum" id="container23"><a name="23"></a><a href="#23" id="line23">      23</a> </span>                :  * @subpackage helpers                                                     
<span class="lineNum" id="container24"><a name="24"></a><a href="#24" id="line24">      24</a> </span>                :  */                                                                        
<span class="lineNum" id="container25"><a name="25"></a><a href="#25" id="line25">      25</a> </span>                : class LoggerCategoryPatternConverter extends LoggerNamedPatternConverter { 
<span class="lineNum" id="container26"><a name="26"></a><a href="#26" id="line26">      26</a> </span>                :                                                                            
<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>                :      * Constructor                                                         
<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>                :      * @param string $formattingInfo                                       
<span class="lineNum" id="container31"><a name="31"></a><a href="#31" id="line31">      31</a> </span>                :      * @param integer $precision                                           
<span class="lineNum" id="container32"><a name="32"></a><a href="#32" id="line32">      32</a> </span>                :      */                                                                    
<span class="lineNum" id="container33"><a name="33"></a><a href="#33" id="line33">      33</a> </span>                :     public function __construct($formattingInfo, $precision) {             
<span class="lineNum" id="container34"><a name="34"></a><a href="#34" id="line34">      34</a> </span><span class="lineCov">             12 :         parent::__construct($formattingInfo, $precision);                  </span>
<span class="lineNum" id="container35"><a name="35"></a><a href="#35" id="line35">      35</a> </span><span class="lineCov">             12 :     }                                                                      </span>
<span class="lineNum" id="container36"><a name="36"></a><a href="#36" id="line36">      36</a> </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>                :      * @param LoggerLoggingEvent $event                                    
<span class="lineNum" id="container39"><a name="39"></a><a href="#39" id="line39">      39</a> </span>                :      * @return string                                                      
<span class="lineNum" id="container40"><a name="40"></a><a href="#40" id="line40">      40</a> </span>                :      */                                                                    
<span class="lineNum" id="container41"><a name="41"></a><a href="#41" id="line41">      41</a> </span>                :     public function getFullyQualifiedName($event) {                        
<span class="lineNum" id="container42"><a name="42"></a><a href="#42" id="line42">      42</a> </span><span class="lineCov">             11 :         return $event-&gt;getLoggerName();                                    </span>
<span class="lineNum" id="container43"><a name="43"></a><a href="#43" id="line43">      43</a> </span>                :     }                                                                      
<span class="lineNum" id="container44"><a name="44"></a><a href="#44" id="line44">      44</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 = {
        "panel34": {
          "header": "12 tests cover line 34",
          "body": "<ul><li class=\"testPassed\">LoggerMDCTest::testPatterns</li><li class=\"testPassed\">LoggerMDCTest::testEnvKey</li><li class=\"testPassed\">LoggerMDCTest::testServerKey</li><li class=\"testPassed\">LoggerAppenderPDOTest::testSimpleWithDefaults</li><li class=\"testPassed\">LoggerAppenderPDOTest::testCustomizedSql</li><li class=\"testPassed\">LoggerAppenderPDOTest::testClose</li><li class=\"testPassed\">LoggerPatternParserTest::testErrorLayout</li><li class=\"testPassed\">LoggerLayoutPatternTest::testErrorLayout</li><li class=\"testPassed\">LoggerLayoutPatternTest::testWarnLayout</li><li class=\"testPassed\">LoggerLayoutPatternTest::testInfoLayout</li><li class=\"testPassed\">LoggerLayoutPatternTest::testDebugLayout</li><li class=\"testPassed\">LoggerLayoutPatternTest::testTraceLayout</li></ul>",
          "footer": ""
        },
        "panel35": {
          "header": "12 tests cover line 35",
          "body": "<ul><li class=\"testPassed\">LoggerMDCTest::testPatterns</li><li class=\"testPassed\">LoggerMDCTest::testEnvKey</li><li class=\"testPassed\">LoggerMDCTest::testServerKey</li><li class=\"testPassed\">LoggerAppenderPDOTest::testSimpleWithDefaults</li><li class=\"testPassed\">LoggerAppenderPDOTest::testCustomizedSql</li><li class=\"testPassed\">LoggerAppenderPDOTest::testClose</li><li class=\"testPassed\">LoggerPatternParserTest::testErrorLayout</li><li class=\"testPassed\">LoggerLayoutPatternTest::testErrorLayout</li><li class=\"testPassed\">LoggerLayoutPatternTest::testWarnLayout</li><li class=\"testPassed\">LoggerLayoutPatternTest::testInfoLayout</li><li class=\"testPassed\">LoggerLayoutPatternTest::testDebugLayout</li><li class=\"testPassed\">LoggerLayoutPatternTest::testTraceLayout</li></ul>",
          "footer": ""
        },
        "panel42": {
          "header": "11 tests cover line 42",
          "body": "<ul><li class=\"testPassed\">LoggerMDCTest::testPatterns</li><li class=\"testPassed\">LoggerMDCTest::testEnvKey</li><li class=\"testPassed\">LoggerMDCTest::testServerKey</li><li class=\"testPassed\">LoggerAppenderPDOTest::testSimpleWithDefaults</li><li class=\"testPassed\">LoggerAppenderPDOTest::testCustomizedSql</li><li class=\"testPassed\">LoggerAppenderPDOTest::testClose</li><li class=\"testPassed\">LoggerLayoutPatternTest::testErrorLayout</li><li class=\"testPassed\">LoggerLayoutPatternTest::testWarnLayout</li><li class=\"testPassed\">LoggerLayoutPatternTest::testInfoLayout</li><li class=\"testPassed\">LoggerLayoutPatternTest::testDebugLayout</li><li class=\"testPassed\">LoggerLayoutPatternTest::testTraceLayout</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>
