package hudson.plugins.javancss;
import hudson.plugins.helpers.health.HealthMetric;
import org.apache.commons.beanutils.Converter;
/**
* Created by IntelliJ IDEA. User: stephen Date: 18-Mar-2008 Time: 06:04:17 To change this template use File | Settings
* | File Templates.
*/
public enum JavaNCSSHealthMetrics implements HealthMetric<JavaNCSSBuildIndividualReport> {
COMMENT_RATIO {
public String getName() {
return "% of lines that are comments";
}
public float measure(JavaNCSSBuildIndividualReport report) {
final float ncss = report.getTotals().getNcss();
final float comments = report.getTotals().getJavadocLines()
+ report.getTotals().getMultiCommentLines()
+ report.getTotals().getSingleCommentLines();
return (comments * 100) / (ncss + comments);
}
public float getBest() {
return 100;
}
public float getWorst() {
return 0;
}
},
JAVADOC_RATIO {
public String getName() {
return "Ratio of javadocs to classes and functions";
}
public float measure(JavaNCSSBuildIndividualReport report) {
final float javadocs = report.getTotals().getJavadocs();
final float total = report.getTotals().getClasses()
+ report.getTotals().getFunctions();
return javadocs / total;
}
public float getBest() {
return 1;
}
public float getWorst() {
return 0;
}
};
static Converter CONVERTER = new Converter() {
public Object convert(Class aClass, Object o) {
return valueOf(o.toString());
}
};
}