brekke      02/02/25 07:43:19

  Added:       xdocs/stylesheets jdepend.xsl
  Log:
  Using the xsl style sheet submitted by Rob Oxspring <[EMAIL PROTECTED]>
  to the ant project.
  
  Revision  Changes    Path
  1.1                  jakarta-turbine-maven/xdocs/stylesheets/jdepend.xsl
  
  Index: jdepend.xsl
  ===================================================================
  <xsl:stylesheet       xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; version="1.0">
  <xsl:output method="html" indent="yes"/>
  <xsl:decimal-format decimal-separator="." grouping-separator="," />
  
  <xsl:template match="JDepend">
        <html>
        <head>
                <title>JDepend Analysis</title>
                
        <style type="text/css">
          body {
                font:normal 68% verdana,arial,helvetica;
                color:#000000;
          }
          table tr td, tr th {
                  font-size: 68%;
          }
          table.details tr th{
                font-weight: bold;
                text-align:left;
                background:#a6caf0;
          }
          table.details tr td{
                background:#eeeee0;
          }
          
          p {
                line-height:1.5em;
                margin-top:0.5em; margin-bottom:1.0em;
                margin-left:2em;
                margin-right:2em;
          }
          h1 {
                margin: 0px 0px 5px; font: 165% verdana,arial,helvetica
          }
          h2 {
                margin-top: 1em; margin-bottom: 0.5em; font: bold 125% 
verdana,arial,helvetica
          }
          h3 {
                margin-bottom: 0.5em; font: bold 115% verdana,arial,helvetica
          }
          h4 {
                margin-bottom: 0.5em; font: bold 100% verdana,arial,helvetica
          }
          h5 {
                margin-bottom: 0.5em; font: bold 100% verdana,arial,helvetica
          }
          h6 {
                margin-bottom: 0.5em; font: bold 100% verdana,arial,helvetica
          }
          .Error {
                font-weight:bold; color:red;
          }
          .Failure {
                font-weight:bold; color:purple;
          }
          .Properties {
                text-align:right;
          }
          </style>
                
                
        </head>
        <body>
        <!--h1>JDepend Report</h1>
        <ul>
        <xsl:for-each select="./Packages/Package">
                                <xsl:sort select="@name"/>
                <li><xsl:value-of select="@name"/></li>
        </xsl:for-each>
        </ul-->
        
        <h1><a name="top">JDepend Analysis</a></h1>
        <p align="right">Designed for use with <a 
href="http://www.clarkware.com/software/JDepend.html";>JDepend</a> and <a 
href="http://jakarta.apache.org";>Ant</a>.</p>
        <hr size="2" />
        
        <table width="100%"><tr><td>
        <a name="NVsummary"><h2>Summary</h2></a>
        </td><td align="right">
        [<a href="#NVsummary">summary</a>]
        [<a href="#NVpackages">packages</a>]
        [<a href="#NVcycles">cycles</a>]
        [<a href="#NVexplanations">explanations</a>]
        </td></tr></table>
        
        <table width="100%" class="details">
                <tr>
                        <th>Package</th>
                        <th>Total Classes</th>
                        <th><a href="#EXnumber">Abstract Classes</a></th>
                        <th><a href="#EXnumber">Concrete Classes</a></th>
                        <th><a href="#EXafferent">Afferent Couplings</a></th>
                        <th><a href="#EXefferent">Efferent Couplings</a></th>
                        <th><a href="#EXabstractness">Abstractness</a></th>
                        <th><a href="#EXinstability">Instability</a></th>
                        <th><a href="#EXdistance">Distance</a></th>
                        
                </tr>
        <xsl:for-each select="./Packages/Package">
                <xsl:if test="count(error) = 0">
                        <tr>
                                <td align="left">
                                        <a>
                                        <xsl:attribute name="href">#PK<xsl:value-of 
select="@name"/>
                                        </xsl:attribute>
                                        <xsl:value-of select="@name"/>
                                        </a>
                                </td>
                                <td align="right"><xsl:value-of 
select="Stats/TotalClasses"/></td>
                                <td align="right"><xsl:value-of 
select="Stats/AbstractClasses"/></td>
                                <td align="right"><xsl:value-of 
select="Stats/ConcreteClasses"/></td>
                                <td align="right"><xsl:value-of 
select="Stats/Ca"/></td>
                                <td align="right"><xsl:value-of 
select="Stats/Ce"/></td>
                                <td align="right"><xsl:value-of 
select="format-number(Stats/A, '0%')"/></td>
                                <td align="right"><xsl:value-of 
select="format-number(Stats/I, '0%')"/></td>
                                <td align="right"><xsl:value-of 
select="format-number(Stats/D, '0%')"/></td>
                                
  
                        </tr>
                </xsl:if>
        </xsl:for-each>
        <xsl:for-each select="./Packages/Package">
                <xsl:if test="count(error) &gt; 0">
                        <tr>
                                <td align="left">
                                        <xsl:value-of select="@name"/>
                                </td>
                                <td align="left" colspan="8"><xsl:value-of 
select="error"/></td>
                        </tr>
                </xsl:if>
        </xsl:for-each>
        </table>
        
        <table width="100%"><tr><td>
        <a name="NVpackages"><h2>Packages</h2></a>
        </td><td align="right">
        [<a href="#NVsummary">summary</a>]
        [<a href="#NVpackages">packages</a>]
        [<a href="#NVcycles">cycles</a>]
        [<a href="#NVexplanations">explanations</a>]
        </td></tr></table>
        
        <xsl:for-each select="./Packages/Package">
                <xsl:if test="count(error) = 0">
                        <h3><a><xsl:attribute name="name">PK<xsl:value-of 
select="@name"/></xsl:attribute>
                        <xsl:value-of select="@name"/></a></h3>
                        
                        <table width="100%"><tr>
                                <td><a href="#EXafferent">Afferent Couplings</a>: 
<xsl:value-of select="Stats/Ca"/></td>
                                <td><a href="#EXefferent">Efferent Couplings</a>: 
<xsl:value-of select="Stats/Ce"/></td>
                                <td><a href="#EXabstractness">Abstractness</a>: 
<xsl:value-of select="format-number(Stats/A, '0%')"/></td>
                                <td><a href="#EXinstability">Instability</a>: 
<xsl:value-of select="format-number(Stats/I, '0%')"/></td>
                                <td><a href="#EXdistance">Distance</a>: <xsl:value-of 
select="format-number(Stats/D, '0%')"/></td>
                        </tr></table>
                        
                        <table width="100%" class="details">
                                <tr>
                                        <th>Abstract Classes</th>
                                        <th>Concrete Classes</th>
                                        <th>Used by Packages</th>
                                        <th>Uses Packages</th>
                                </tr>
                                <tr>
                                        <td valign="top" width="25%">
                                        <xsl:if test="count(AbstractClasses/Class)=0">
                                                        <i>None</i>
                                                </xsl:if>
                                                <xsl:for-each 
select="AbstractClasses/Class">
                                                        <xsl:value-of 
select="node()"/><br/>
                                                </xsl:for-each>
                                        </td>
                                        <td valign="top" width="25%">
                                                <xsl:if 
test="count(ConcreteClasses/Class)=0">
                                                        <i>None</i>
                                                </xsl:if>
                                                <xsl:for-each 
select="ConcreteClasses/Class">
                                                        <xsl:value-of 
select="node()"/><br/>
                                                </xsl:for-each>
                                        </td>
                                        <td valign="top" width="25%">
                                                <xsl:if test="count(UsedBy/Package)=0">
                                                        <i>None</i>
                                                </xsl:if>
                                                <xsl:for-each select="UsedBy/Package">
                                                        <a>
                                                                <xsl:attribute 
name="href">#PK<xsl:value-of select="node()"/></xsl:attribute>
                                                                <xsl:value-of 
select="node()"/>
                                                        </a><br/>
                                                </xsl:for-each>
                                        </td>
                                        <td valign="top" width="25%">
                                                <xsl:if 
test="count(DependsUpon/Package)=0">
                                                        <i>None</i>
                                                </xsl:if>
                                                <xsl:for-each 
select="DependsUpon/Package">
                                                        <a>
                                                                <xsl:attribute 
name="href">#PK<xsl:value-of select="node()"/></xsl:attribute>
                                                                <xsl:value-of 
select="node()"/>
                                                        </a><br/>
                                                </xsl:for-each>
                                        </td>
                                </tr>
                        </table>
                </xsl:if>
        </xsl:for-each>
        
        <table width="100%"><tr><td>
        <a name="NVcycles"><h2>Cycles</h2></a>
        </td><td align="right">
        [<a href="#NVsummary">summary</a>]
        [<a href="#NVpackages">packages</a>]
        [<a href="#NVcycles">cycles</a>]
        [<a href="#NVexplanations">explanations</a>]
        </td></tr></table>
        
        <xsl:if test="count(Cycles/Package) = 0">
                <p>There are no cyclic dependancies.</p>
        </xsl:if>
        <xsl:for-each select="Cycles/Package">
                <h3><xsl:value-of select="@Name"/></h3><p>
                <xsl:for-each select="Package">
                        <xsl:value-of select="."/><br/>
                </xsl:for-each></p>
        </xsl:for-each>
        
        <table width="100%"><tr><td>
        <a name="NVexplanations"><h2>Explanations</h2></a>
        </td><td align="right">
        [<a href="#NVsummary">summary</a>]
        [<a href="#NVpackages">packages</a>]
        [<a href="#NVcycles">cycles</a>]
        [<a href="#NVexplanations">explanations</a>]
        </td></tr></table>
        
        <p>The following explanations are for quick reference and are lifted directly 
from the original <a href="http://www.clarkware.com/software/JDepend.html";>JDepend 
documentation</a>.</p>
        
        <h3><a name="EXnumber">Number of Classes</a></h3>
                <p>The number of concrete and abstract classes (and interfaces) in the 
package is an indicator of the extensibility of the package.</p>
        <h3><a name="EXafferent">Afferent Couplings</a></h3>
                <p>The number of other packages that depend upon classes within the 
package is an indicator of the package's responsibility. </p>
        <h3><a name="EXefferent">Efferent Couplings</a></h3>
                <p>The number of other packages that the classes in the package depend 
upon is an indicator of the package's independence. </p>
        <h3><a name="EXabstractness">Abstractness</a></h3> 
                <p>The ratio of the number of abstract classes (and interfaces) in the 
analyzed package to the total number of classes in the analyzed package. </p>
                <p>The range for this metric is 0 to 1, with A=0 indicating a 
completely concrete package and A=1 indicating a completely abstract package. </p>
        <h3><a name="EXinstability">Instability</a></h3>
                <p>The ratio of efferent coupling (Ce) to total coupling (Ce / (Ce + 
Ca)). This metric is an indicator of the package's resilience to change. </p>
                <p>The range for this metric is 0 to 1, with I=0 indicating a 
completely stable package and I=1 indicating a completely instable package. </p>
        <h3><a name="EXdistance">Distance</a></h3>
                <p>The perpendicular distance of a package from the idealized line A + 
I = 1. This metric is an indicator of the package's balance between abstractness and 
stability. </p>
                <p>A package squarely on the main sequence is optimally balanced with 
respect to its abstractness and stability. Ideal packages are either completely 
abstract and stable (x=0, y=1) or completely concrete and instable (x=1, y=0). </p>
                <p>The range for this metric is 0 to 1, with D=0 indicating a package 
that is coincident with the main sequence and D=1 indicating a package that is as far 
from the main sequence as possible. </p>
        
        </body>
        </html>
  </xsl:template>
  
  </xsl:stylesheet>
  
  
  

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to