~ubuntu-branches/ubuntu/trusty/gmetrics/trusty

« back to all changes in this revision

Viewing changes to src/main/groovy/org/gmetrics/metric/linecount/MethodLineCountMetric.groovy

  • Committer: Package Import Robot
  • Author(s): Miguel Landaeta, Miguel Landaeta, tony mancill
  • Date: 2012-01-18 20:57:50 UTC
  • mfrom: (1.1.1)
  • Revision ID: package-import@ubuntu.com-20120118205750-68fv86p7fs8xz470
Tags: 0.5-1
[Miguel Landaeta]
* New upstream release.
* Remove patch ftbfs_613266.diff since it was merged upstream.
* Update dates in copyright file.

[tony mancill]
* Set DMUA flag.

Show diffs side-by-side

added added

removed removed

Lines of Context:
17
17
 
18
18
import org.codehaus.groovy.ast.MethodNode
19
19
import org.codehaus.groovy.ast.expr.ClosureExpression
20
 
import org.gmetrics.result.NumberMetricResult
 
20
 
21
21
import org.gmetrics.metric.AbstractMethodMetric
22
22
import org.gmetrics.source.SourceCode
23
23
import org.gmetrics.result.MetricResult
 
24
import org.gmetrics.metric.MetricLevel
 
25
import org.gmetrics.result.SingleNumberMetricResult
24
26
 
25
27
/**
26
28
 * Metric for counting the lines of code for methods and closure fields.
27
29
 *
28
30
 * @author Chris Mair
29
 
 * @version $Revision: 130 $ - $Date: 2010-07-21 22:46:24 -0400 (Wed, 21 Jul 2010) $
30
31
 */
31
32
class MethodLineCountMetric extends AbstractMethodMetric {
32
33
    final String name = 'MethodLineCount'
35
36
        def visitor = new MethodLineCountAstVisitor(sourceCode:sourceCode)
36
37
        visitor.visitMethod(methodNode)
37
38
        def numLines = visitor.numberOfLinesInMethod
38
 
        return numLines ? new NumberMetricResult(this, numLines, methodNode.lineNumber) : null
 
39
        return numLines ? new SingleNumberMetricResult(this, MetricLevel.METHOD, numLines, methodNode.lineNumber) : null
39
40
    }
40
41
 
41
42
    MetricResult calculate(ClosureExpression closureExpression, SourceCode sourceCode) {
42
43
        def visitor = new MethodLineCountAstVisitor(sourceCode:sourceCode)
43
44
        visitor.visitClosureExpression(closureExpression)
44
 
        return new NumberMetricResult(this, visitor.numberOfLinesInClosure, closureExpression.lineNumber)
 
45
        return new SingleNumberMetricResult(this, MetricLevel.METHOD, visitor.numberOfLinesInClosure, closureExpression.lineNumber)
45
46
    }
46
47
 
47
48
}