<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia Site Renderer 1.11.1 from org.codehaus.mojo:jdepend-maven-plugin:2.0:generate-no-fork at 2023-01-28

 | Rendered using Apache Maven Default Skin
-->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta name="generator" content="Apache Maven Doxia Site Renderer 1.11.1" />
    <title>Apache Whisker::Velocity &#x2013; JDepend Report Metrics</title>
    <link rel="stylesheet" href="./css/maven-base.css" />
    <link rel="stylesheet" href="./css/maven-theme.css" />
    <link rel="stylesheet" href="./css/site.css" />
    <link rel="stylesheet" href="./css/print.css" media="print" />
<link href="https://fonts.googleapis.com/css?family=Mate+SC" type="text/css" rel="stylesheet" />
  </head>
  <body class="composite">
    <div id="banner">
<div id="bannerLeft">Apache Whisker::Output(velocity)
</div>
<a href="https://www.apache.org/" id="bannerRight"><img src="https://www.apache.org/images/asf_logo_wide.jpg"  alt="The Apache Software Foundation" title="The Apache Software Foundation"/></a>      <div class="clear">
        <hr/>
      </div>
    </div>
    <div id="breadcrumbs">
      <div class="xleft">
        <span id="publishDate">Last Published: 2023-01-28</span>
           | <span id="projectVersion">Version: 0.2-SNAPSHOT</span>
          | <a href="https://www.apache.org/" class="externalLink" title="Apache">Apache</a> &gt;
<a href="https://creadur.apache.org/" class="externalLink" title="Creadur">Creadur</a> &gt;
<a href="https://creadur.apache.org/whisker/" class="externalLink" title="Whisker">Whisker</a> &gt;
<a href="index.html" title="Apache Whisker::Velocity">Apache Whisker::Velocity</a> &gt;
JDepend Report Metrics
      </div>
      <div class="xright">      </div>
      <div class="clear">
        <hr/>
      </div>
    </div>
    <div id="leftColumn">
      <div id="navcolumn">
       <h5>Overview</h5>
    <ul>
     <li class="none"><a href="index.html" title="Introduction">Introduction</a></li>
    </ul>
       <h5>Parent Project</h5>
    <ul>
     <li class="none"><a href="../index.html" title="Apache Whisker">Apache Whisker</a></li>
    </ul>
       <h5>Project Documentation</h5>
    <ul>
     <li class="collapsed"><a href="project-info.html" title="Project Information">Project Information</a></li>
     <li class="expanded"><a href="project-reports.html" title="Project Reports">Project Reports</a>
      <ul>
       <li class="none"><a href="rat-report.html" title="Rat Report">Rat Report</a></li>
       <li class="none"><a href="checkstyle.html" title="Checkstyle">Checkstyle</a></li>
       <li class="none"><a href="apidocs/index.html" title="Javadoc">Javadoc</a></li>
       <li class="none"><a href="testapidocs/index.html" title="Test Javadoc">Test Javadoc</a></li>
       <li class="none"><a href="xref/index.html" title="Source Xref">Source Xref</a></li>
       <li class="none"><a href="xref-test/index.html" title="Test Source Xref">Test Source Xref</a></li>
       <li class="none"><a href="surefire-report.html" title="Surefire Report">Surefire Report</a></li>
       <li class="none"><a href="cpd.html" title="CPD">CPD</a></li>
       <li class="none"><a href="pmd.html" title="PMD">PMD</a></li>
       <li class="none"><strong>JDepend</strong></li>
       <li class="none"><a href="taglist.html" title="Tag List">Tag List</a></li>
       <li class="none"><a href="findbugs.html" title="FindBugs">FindBugs</a></li>
      </ul></li>
    </ul>
       <h5>Apache Whisker&trade;</h5>
    <ul>
     <li class="none"><a href="../index.html" title="Introducing Whisker">Introducing Whisker</a></li>
     <li class="none"><a href="../meta-data.html" title="Meta Data">Meta Data</a></li>
     <li class="none"><a href="../apache-whisker-maven-plugin/index.html" title="Maven Plugin">Maven Plugin</a></li>
     <li class="none"><a href="../apache-whisker-cli/index.html" title="Command Line">Command Line</a></li>
     <li class="none"><a href="../apidocs/index.html" title="Javadocs">Javadocs</a></li>
     <li class="none"><a href="../xref/index.html" title="Source Cross-ref">Source Cross-ref</a></li>
     <li class="none"><a href="../faq.html" title="FAQ">FAQ</a></li>
    </ul>
       <h5>Apache Creadur &trade;</h5>
    <ul>
     <li class="none"><a href="https://creadur.apache.org" class="externalLink" title="Creadur Project Home">Creadur Project Home</a></li>
     <li class="none"><a href="https://creadur.apache.org/rat" class="externalLink" title="Apache Rat">Apache Rat</a></li>
     <li class="none"><a href="https://creadur.apache.org/tentacles" class="externalLink" title="Apache Tentacles">Apache Tentacles</a></li>
     <li class="none"><a href="https://www.apache.org/security/" class="externalLink" title="Security">Security</a></li>
     <li class="none"><a href="https://www.apache.org/licenses/" class="externalLink" title="License">License</a></li>
     <li class="none"><a href="https://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsorship">Sponsorship</a></li>
     <li class="none"><a href="https://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">Thanks</a></li>
    </ul>
       <h5>The Apache Software Foundation</h5>
    <ul>
     <li class="none"><a href="https://www.apache.org/foundation" class="externalLink" title="About the Foundation">About the Foundation</a></li>
     <li class="none"><a href="https://projects.apache.org" class="externalLink" title="The projects">The projects</a></li>
     <li class="none"><a href="https://people.apache.org" class="externalLink" title="The people">The people</a></li>
     <li class="none"><a href="https://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How we work">How we work</a></li>
     <li class="none"><a href="https://www.apache.org/foundation/how-it-works.html#history" class="externalLink" title="Our history">Our history</a></li>
     <li class="none"><a href="https://blogs.apache.org/foundation/" class="externalLink" title="News">News</a></li>
    </ul>
       <h5>Contribute</h5>
    <ul>
     <li class="none"><a href="https://www.apache.org/foundation/getinvolved.html" class="externalLink" title="Get Involved">Get Involved</a></li>
    </ul>
       <h5>Committer Info</h5>
    <ul>
     <li class="none"><a href="https://www.apache.org/dev/committers.html" class="externalLink" title="Committers' FAQ">Committers' FAQ</a></li>
     <li class="none"><a href="https://www.apache.org/dev/new-committers-guide.html" class="externalLink" title="New Committers Guide">New Committers Guide</a></li>
     <li class="none"><a href="https://planet.apache.org/committers/" class="externalLink" title="Planet Apache">Planet Apache</a></li>
     <li class="none"><a href="https://community.apache.org/" class="externalLink" title="Community">Community</a></li>
     <li class="none"><a href="https://www.apache.org/legal/" class="externalLink" title="Legal">Legal</a></li>
     <li class="none"><a href="https://www.apache.org/foundation/marks/" class="externalLink" title="Branding">Branding</a></li>
     <li class="none"><a href="https://www.apache.org/press/" class="externalLink" title="Media Relations">Media Relations</a></li>
    </ul>
      <a href="https://maven.apache.org/" title="Maven" class="poweredBy">
        <img class="poweredBy"  alt="Maven" src="https://maven.apache.org/images/logos/maven-feather.png"     />
      </a>
      </div>
    </div>
    <div id="bodyColumn">
      <div id="contentBox">
<section>
<h2><a name="Metric_Results"></a>Metric Results</h2>[ <a href="#summary">summary</a> ] [ <a href="#packages">packages</a> ] [ <a href="#cycles">cycles</a> ] [ <a href="#explanations">explanations</a> ] <br /><br />The following document contains the results of a JDepend metric analysis. The various metrics are defined at the bottom of this document.<br /><br /><a name="summary"></a>
<h2><a name="Summary"></a>Summary</h2>[ <a href="#summary">summary</a> ] [ <a href="#packages">packages</a> ] [ <a href="#cycles">cycles</a> ] [ <a href="#explanations">explanations</a> ] <br /><br />
<table border="0" class="bodyTable">
<tr class="a">
<th>Package</th>
<th>TC</th>
<th>CC</th>
<th>AC</th>
<th>Ca</th>
<th>Ce</th>
<th>A</th>
<th>I</th>
<th>D</th>
<th>V</th></tr>
<tr class="b">
<td><a href="#org.apache.creadur.whisker.out.velocity">org.apache.creadur.whisker.out.velocity</a></td>
<td>7</td>
<td>6</td>
<td>1</td>
<td>0</td>
<td>11</td>
<td>14.0%</td>
<td>100.0%</td>
<td>14.0%</td>
<td>1</td></tr></table><a name="packages"></a>
<h2><a name="Packages"></a>Packages</h2>[ <a href="#summary">summary</a> ] [ <a href="#packages">packages</a> ] [ <a href="#cycles">cycles</a> ] [ <a href="#explanations">explanations</a> ] <br /><a name="org.apache.creadur.whisker.out.velocity"></a>
<h3><a name="org.apache.creadur.whisker.out.velocity"></a>org.apache.creadur.whisker.out.velocity</h3>
<table border="0" class="bodyTable">
<tr class="a">
<th>Afferent Couplings</th>
<th>Efferent Couplings</th>
<th>Abstractness</th>
<th>Instability</th>
<th>Distance</th></tr>
<tr class="b">
<td>0</td>
<td>11</td>
<td>14.0%</td>
<td>100.0%</td>
<td>14.0%</td></tr></table>
<table border="0" class="bodyTable">
<tr class="a">
<th>Abstract Classes</th>
<th>Concrete Classes</th>
<th>Used by Packages</th>
<th>Uses Packages</th></tr>
<tr class="b">
<td>org.apache.creadur.whisker.out.velocity.package-info<br /></td>
<td>org.apache.creadur.whisker.out.velocity.Indentation<br />org.apache.creadur.whisker.out.velocity.Product<br />org.apache.creadur.whisker.out.velocity.RenderingHelper<br />org.apache.creadur.whisker.out.velocity.VelocityEngine<br />org.apache.creadur.whisker.out.velocity.VelocityReports<br />org.apache.creadur.whisker.out.velocity.VelocityReports$1<br /></td>
<td><i>None</i></td>
<td>java.io<br />java.lang<br />java.util<br />org.apache.commons.io<br />org.apache.commons.lang3<br />org.apache.commons.logging<br />org.apache.creadur.whisker.app<br />org.apache.creadur.whisker.app.analysis<br />org.apache.creadur.whisker.model<br />org.apache.velocity<br />org.apache.velocity.app<br /></td></tr></table><a name="cycles"></a>
<h2><a name="Cycles"></a>Cycles</h2>[ <a href="#summary">summary</a> ] [ <a href="#packages">packages</a> ] [ <a href="#cycles">cycles</a> ] [ <a href="#explanations">explanations</a> ] <br /><br />There are no cyclic dependencies.<br /><a name="explanations"></a>
<h2><a name="Explanation"></a>Explanation</h2>[ <a href="#summary">summary</a> ] [ <a href="#packages">packages</a> ] [ <a href="#cycles">cycles</a> ] [ <a href="#explanations">explanations</a> ] <br /><br />The following explanations are for quick reference and are lifted directly from the original JDepend documentation.<br /><br />
<table border="0" class="bodyTable">
<tr class="a">
<th>Term</th>
<th>Description</th></tr>
<tr class="b">
<td>Number of Classes</td>
<td>The number of concrete and abstract classes (and interfaces) in the package is an indicator of the extensibility of the package.</td></tr>
<tr class="a">
<td>Afferent Couplings</td>
<td>The number of other packages that depend upon classes within the package is an indicator of the package's responsibility.</td></tr>
<tr class="b">
<td>Efferent Couplings</td>
<td>The number of other packages that the classes in the package depend upon is an indicator of the package's independence.</td></tr>
<tr class="a">
<td>Abstractness</td>
<td>The ratio of the number of abstract classes (and interfaces) in the analyzed package to the total number of classes in the analyzed package. 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.</td></tr>
<tr class="b">
<td>Instability</td>
<td>The ratio of efferent coupling (Ce) to total coupling (Ce / (Ce + Ca)). This metric is an indicator of the package's resilience to change. 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.</td></tr>
<tr class="a">
<td>Distance</td>
<td>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. 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). 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.</td></tr>
<tr class="b">
<td>Cycles</td>
<td>Packages participating in a package dependency cycle are  in a deadly embrace with respect to reusability and their  release cycle. Package dependency cycles can be easily identified by reviewing the textual reports of dependency cycles. Once these dependency cycles have been identified with JDepend, they can be broken by employing various object-oriented techniques.</td></tr></table></section>
      </div>
    </div>
    <div class="clear">
      <hr/>
    </div>
    <div id="footer">
      <div class="xright">
        Copyright © 2012-2023 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.
      Apache Creadur, Creadur, Apache Rat, Apache Tentacles, Apache Whisker, Apache and the Apache feather logo are trademarks
      of The Apache Software Foundation.
      All other marks mentioned may be trademarks or registered trademarks of their respective owners.
      This is user documentation, not legal advice.
      </div>
      <div class="clear">
        <hr/>
      </div>
    </div>
  </body>
</html>
