统计代码的小工具CodeLineCounter2.1

最新版本
http://zhang-xzhi-xjtu.iteye.com/blog/474702

CodeLineCounter2.1 note.

version 2.1
作者: zhang_xzhi
email: [email protected]
blog: http://zhang-xzhi-xjtu.iteye.com
svn: https://codelinecounter.svn.sourceforge.net/svnroot/codelinecounter

1 一句话介绍
源代码统计工具,支持基于Spring的配置以及提供了一些扩展点使得用户可以方便的扩展。
同时可以生成各种各样的报表。

2 系统设计及扩展
系统按照以下阶段执行。
阶段1 筛选需要统计的文件      阶段2 统计文件的行数       阶段3 生成各式报告

接收文件用
public interface CodeFileFilter {
	public boolean filterFile(File file);
}

来判断。系统提供了一些Filter,用户也可以提供新的实现。如果用户没有配置Filter,则使用默认的Filter。

PostfixIncludeFilter: 默认的Filter,现在可以处理后缀名为bat,c,cs,java,sql,xml的文件。
AndFilter: 多个Filter的逻辑与Filter。
BypassFilter:处理所有文件的Filter。
DirDenyFilter:拒绝目录Filter,拒绝指定目录。
DirStringDenyFilter:拒绝路径包含指定字符串的目录。
FileModifyTimeFilter:最后修改时间Filter,只接受指定天数内修改过的File。
NotFilter: 一个Filter的反向Filter。
OrFilter: 多个Filter的逻辑或Filter。


统计行数用
public interface CodeFileParser {
	public ResultItem parse(File file);
}

定义。ResultItem中包含文件名和行数,空行数,注释行数。系统提供了一些parser,用户也可以提供新的实现。
如果用户没有配置Parser,则使用默认的Parser。

PostfixParser: 默认的parser,根据文件后缀名的不同选择不同的Parser。现在可以处理后缀名为bat,c,cs,java,sql,xml的文件。
BatParser:统计bat文件。
CParser:统计c文件。
CSharpParser:统计c#文件。
JavaParser:统计java文件。
SqlParser:统计sql文件。
TextParser:统计纯文本文件。
XmlParser:统计xml文件。


一次检查结果可以使用多种形式报告,报告用
public interface Reporter {
	public void report(DirConfigItem dirConfigItem, Set<ResultItem> resultSet);
}

定义。报告可以是任何形式,系统提供了一些Reporter,用户也可以提供新的实现。
如果用户没有配置Reporter,则使用默认的Reporters。默认用PostfixHtmlReporter和PackageHtmlReporter。

PackageHtmlReporter:按照层级统计,可以配置层级的深度,默认值为2,输出html。
PostfixHtmlReporter:基于后缀的统计,输出html。
PostfixConsoleReporter: 基于后缀的统计,在控制台输出。
SimpleHtmlReporter:所有文件的统计,输出html。
SimpleConsoleReporter: 所有文件的统计,在控制台输出。

3 配置

logconfig.xml 日志配置文件。

itemConfig.xml 检查项配置文件。

在item.xml里面配置Filter,Parser,Reporter。如果不配置则使用默认配置。
DirConfigItem代表一个检查项。它的配置如下:
itemId:生成html的文件名。
baseDir:检查的根目录。
一个filter来filter要检查的文件,如果不配置使用默认配置。
一个Parser来分析文件,如果不配置使用默认配置。
一个Reporter列表来报告检查结果,如果不配置使用默认配置。

DirConfigItemCollection可以包含多个DirConfigItem。

4 如何扩展

用户可以自定义CodeFileFilter,CodeFileParser ,Reporter 来扩展系统的功能。通过修改itemConfig.xml可以简单的使用新定义的class。

5 默认效果
以下是一个使用默认配置生成的报表。
<bean id="item1" class="codecounter.DirConfigItem">
    <property name="itemId"><value>item1</value></property>
    <property name="baseDir"><value>F:\java_program\CodeLineCounter</value></property>
</bean>

你可能感兴趣的:(spring,sql,xml,SVN,C#)