统计代码的小工具CodeLineCounter2.1

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

CodeLineCounter2.1 note.

version 2.1
作者: zhang_xzhi
email: zhang_zhi@163.com
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>
[img]/upload/attachment/139172/472d4acd-f2d5-3c87-aa38-fec13e6f703a.jpg[/img]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值