⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 checkstyle.jsl

📁 数据仓库工具
💻 JSL
字号:
<?xml version="1.0"?>

<jsl:stylesheet
  select="$doc"
  xmlns:j="jelly:core"
  xmlns:jsl="jelly:jsl"
  xmlns:util="jelly:util"
  xmlns:x="jelly:xml"
  xmlns:doc="doc"
  xmlns="dummy" trim="false">

  <!-- This needs to be instantiated here to be available in the template matches -->
  <j:useBean var="mavenTool" class="org.apache.maven.MavenTool"/>
  <j:useBean var="htmlescape" class="org.apache.velocity.anakia.Escape"/>
  <j:useBean var="fileutil" class="org.apache.velocity.texen.util.FileUtil"/>
  <j:useBean var="pathtool" class="org.apache.maven.DVSLPathTool"/>

  <jsl:template match="checkstyle">
    <document>

      <properties>
        <title>Checkstyle Results</title>
      </properties>

      <body>
        <section name="Checkstyle Results">
          <p>
            The following document contains the results of
            <a
              href="http://checkstyle.sourceforge.net/">Checkstyle</a>.
          </p>
        </section>

        <section name="Summary">
          <j:set var="fileCount"><x:expr select="count(file)"/></j:set>
          <j:set var="errorCount"><x:expr select="count(file/error)"/></j:set>
          <table>
            <tr>
              <th>Files</th>
              <th>Errors</th>
            </tr>
            <tr>
              <td><doc:formatAsNumber string="${fileCount}" pattern="0"/></td>
              <td><doc:formatAsNumber string="${errorCount}" pattern="0"/></td>
            </tr>
          </table>
        </section>

        <section name="Files">
          <table>
            <tr>
              <th>Files</th>
              <th>Errors</th>
            </tr>
            <j:set var="fullSrcDir" value="${basedir}/${pom.build.sourceDirectory}"/>
            <j:set var="srcDir" value="${fileutil.file(fullSrcDir).getAbsolutePath()}"/>
            <j:set var="srcDirLength" value="${srcDir.length() + 1}"/>
            <x:set var="files" select="file"/>
            <!-- x:forEach is busted -->
            <j:forEach var="file" items="${files}">
              <!-- Type coercion doesn't work worth a fuck in jexl. -->
              <j:set var="name" value="${file.attribute('name').getValue()}"/>
              <j:set var="name" value="${name.substring(mavenTool.toInteger(srcDirLength.toString()))}"/>
              <util:replace var="name" value="${name}" oldChar="\\" newChar="/"/>
              <!--- +1 is for the trailing slash above -->
              <j:set var="errorCount"><x:expr select="count($file/error)"/></j:set>
              
              <j:if test="${errorCount != 0}">
                <tr>
                  <td>
                    <a href="#${name}">${name}</a>
                  </td>
                  <td><doc:formatAsNumber string="${errorCount}" pattern="0"/></td>
                </tr>
              </j:if>
            </j:forEach>
          </table>

          <j:forEach var="file" items="${files}">
            <x:set var="errorCount" select="count($file/error)"/>
            <j:if test="${errorCount != 0}">
              <j:set var="name" value="${file.attribute('name').getValue()}"/>
              <j:set var="name" value="${name.substring(mavenTool.toInteger(srcDirLength.toString()))}"/>
              <util:replace var="name" value="${name}" oldChar="\\" newChar="/"/>
              
              <subsection name="${name}">
                <table>
                  <tr>
                    <th>Error</th>
                    <th>Line</th>
                  </tr>
                  <x:set var="errors" select="$file/error"/>
                  <j:forEach var="error" items="${errors}">
                    <tr>
                      <td>
                        <j:set var="errorMessage" value="${error.attribute('message').getValue()}"/>
                        ${htmlescape.getText(errorMessage)}
                      </td>
                      <td>
                        <j:set var="line" value="${error.attribute('line').getValue()}"/>
                        <j:set var="lastIndex" value="${name.lastIndexOf('.java')}"/>
                        <j:choose>
                          <j:when test="${lastIndex > 0}">
                            <j:set var="index" value="${mavenTool.toInteger(lastIndex.toString())}"/>
                            <j:set var="nameWithoutJavaExtension" value="${name.substring(0, index)}"/>
                            <util:replace var="nameWithoutJavaExtension" value="${nameWithoutJavaExtension}" oldChar="\\" newChar="/"/>
                            <a href="xref/${nameWithoutJavaExtension}.html#${line}">${line}</a>
                          </j:when>
                          <j:otherwise>
                            ${line}
                          </j:otherwise>
                        </j:choose>
                      </td>
                    </tr>
                  </j:forEach>
                </table>
              </subsection>
            </j:if>
          </j:forEach>
        </section>
      </body>
    </document>
  </jsl:template>
</jsl:stylesheet>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -