org.gmetrics.metric.cyclomatic
Class CyclomaticComplexityAstVisitor

java.lang.Object
  extended by org.codehaus.groovy.ast.CodeVisitorSupport
      extended by org.codehaus.groovy.ast.ClassCodeVisitorSupport
          extended by org.gmetrics.metric.AbstractAstVisitor
              extended by org.gmetrics.metric.cyclomatic.CyclomaticComplexityAstVisitor
All Implemented Interfaces:
groovy.lang.GroovyObject, org.codehaus.groovy.ast.GroovyClassVisitor, org.codehaus.groovy.ast.GroovyCodeVisitor, AstVisitor

public class CyclomaticComplexityAstVisitor
extends AbstractAstVisitor
implements groovy.lang.GroovyObject

AST Visitor for calculating the Cyclomatic Complexity for a method or closure field.

Version:
$Revision: 101 $ - $Date: 2010-03-10 19:17:23 -0500 (Wed, 10 Mar 2010) $
Author:
Chris Mair
See Also:
CyclomaticComplexityMetric

Field Summary
 
Fields inherited from class org.gmetrics.metric.AbstractAstVisitor
MAX_SOURCE_LINE_LENGTH, SOURCE_LINE_LAST_SEGMENT_LENGTH
 
Constructor Summary
CyclomaticComplexityAstVisitor()
           
 
Method Summary
 java.lang.Integer getComplexity()
           
 groovy.lang.MetaClass getMetaClass()
           
 java.lang.Object getProperty(java.lang.String name)
           
 java.lang.Object invokeMethod(java.lang.String name, java.lang.Object args)
           
 void setComplexity(java.lang.Integer value)
           
 void setMetaClass(groovy.lang.MetaClass metaClass)
           
 void setProperty(java.lang.String name, java.lang.Object value)
           
 void visitBinaryExpression(org.codehaus.groovy.ast.expr.BinaryExpression expression)
           
 void visitCatchStatement(org.codehaus.groovy.ast.stmt.CatchStatement statement)
           
 void visitForLoop(org.codehaus.groovy.ast.stmt.ForStatement forLoop)
           
 void visitIfElse(org.codehaus.groovy.ast.stmt.IfStatement ifElse)
           
 void visitMethod(org.codehaus.groovy.ast.MethodNode methodNode)
           
 void visitPropertyExpression(org.codehaus.groovy.ast.expr.PropertyExpression expression)
           
 void visitSwitch(org.codehaus.groovy.ast.stmt.SwitchStatement statement)
           
 void visitTernaryExpression(org.codehaus.groovy.ast.expr.TernaryExpression expression)
           
 void visitWhileLoop(org.codehaus.groovy.ast.stmt.WhileStatement loop)
           
 
Methods inherited from class org.gmetrics.metric.AbstractAstVisitor
getSourceCode, getSourceUnit, isFirstVisit, isSyntheticNonRunMethod, setSourceCode, sourceLine
 
Methods inherited from class org.codehaus.groovy.ast.ClassCodeVisitorSupport
addError, visitAnnotations, visitAssertStatement, visitBlockStatement, visitBreakStatement, visitCaseStatement, visitClass, visitClassCodeContainer, visitConstructor, visitConstructorOrMethod, visitContinueStatement, visitDoWhileLoop, visitExpressionStatement, visitField, visitProperty, visitReturnStatement, visitStatement, visitSynchronizedStatement, visitThrowStatement, visitTryCatchFinally
 
Methods inherited from class org.codehaus.groovy.ast.CodeVisitorSupport
visitArgumentlistExpression, visitArrayExpression, visitAttributeExpression, visitBitwiseNegationExpression, visitBooleanExpression, visitBytecodeExpression, visitCastExpression, visitClassExpression, visitClosureExpression, visitClosureListExpression, visitConstantExpression, visitConstructorCallExpression, visitDeclarationExpression, visitFieldExpression, visitGStringExpression, visitListExpression, visitListOfExpressions, visitMapEntryExpression, visitMapExpression, visitMethodCallExpression, visitMethodPointerExpression, visitNotExpression, visitPostfixExpression, visitPrefixExpression, visitRangeExpression, visitRegexExpression, visitShortTernaryExpression, visitSpreadExpression, visitSpreadMapExpression, visitStaticMethodCallExpression, visitTupleExpression, visitUnaryMinusExpression, visitUnaryPlusExpression, visitVariableExpression
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.codehaus.groovy.ast.GroovyClassVisitor
visitClass, visitConstructor, visitField, visitProperty
 

Constructor Detail

CyclomaticComplexityAstVisitor

public CyclomaticComplexityAstVisitor()
Method Detail

getComplexity

public java.lang.Integer getComplexity()

setComplexity

public void setComplexity(java.lang.Integer value)

visitMethod

public void visitMethod(org.codehaus.groovy.ast.MethodNode methodNode)
Specified by:
visitMethod in interface org.codehaus.groovy.ast.GroovyClassVisitor
Overrides:
visitMethod in class org.codehaus.groovy.ast.ClassCodeVisitorSupport

visitIfElse

public void visitIfElse(org.codehaus.groovy.ast.stmt.IfStatement ifElse)
Specified by:
visitIfElse in interface org.codehaus.groovy.ast.GroovyCodeVisitor
Overrides:
visitIfElse in class org.codehaus.groovy.ast.ClassCodeVisitorSupport

visitWhileLoop

public void visitWhileLoop(org.codehaus.groovy.ast.stmt.WhileStatement loop)
Specified by:
visitWhileLoop in interface org.codehaus.groovy.ast.GroovyCodeVisitor
Overrides:
visitWhileLoop in class org.codehaus.groovy.ast.ClassCodeVisitorSupport

visitForLoop

public void visitForLoop(org.codehaus.groovy.ast.stmt.ForStatement forLoop)
Specified by:
visitForLoop in interface org.codehaus.groovy.ast.GroovyCodeVisitor
Overrides:
visitForLoop in class org.codehaus.groovy.ast.ClassCodeVisitorSupport

visitSwitch

public void visitSwitch(org.codehaus.groovy.ast.stmt.SwitchStatement statement)
Specified by:
visitSwitch in interface org.codehaus.groovy.ast.GroovyCodeVisitor
Overrides:
visitSwitch in class org.codehaus.groovy.ast.ClassCodeVisitorSupport

visitCatchStatement

public void visitCatchStatement(org.codehaus.groovy.ast.stmt.CatchStatement statement)
Specified by:
visitCatchStatement in interface org.codehaus.groovy.ast.GroovyCodeVisitor
Overrides:
visitCatchStatement in class org.codehaus.groovy.ast.ClassCodeVisitorSupport

visitBinaryExpression

public void visitBinaryExpression(org.codehaus.groovy.ast.expr.BinaryExpression expression)
Specified by:
visitBinaryExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
Overrides:
visitBinaryExpression in class org.codehaus.groovy.ast.CodeVisitorSupport

visitTernaryExpression

public void visitTernaryExpression(org.codehaus.groovy.ast.expr.TernaryExpression expression)
Specified by:
visitTernaryExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
Overrides:
visitTernaryExpression in class org.codehaus.groovy.ast.CodeVisitorSupport

visitPropertyExpression

public void visitPropertyExpression(org.codehaus.groovy.ast.expr.PropertyExpression expression)
Specified by:
visitPropertyExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
Overrides:
visitPropertyExpression in class org.codehaus.groovy.ast.CodeVisitorSupport

getMetaClass

public groovy.lang.MetaClass getMetaClass()
Specified by:
getMetaClass in interface groovy.lang.GroovyObject
Overrides:
getMetaClass in class AbstractAstVisitor

setMetaClass

public void setMetaClass(groovy.lang.MetaClass metaClass)
Specified by:
setMetaClass in interface groovy.lang.GroovyObject
Overrides:
setMetaClass in class AbstractAstVisitor

invokeMethod

public java.lang.Object invokeMethod(java.lang.String name,
                                     java.lang.Object args)
Specified by:
invokeMethod in interface groovy.lang.GroovyObject
Overrides:
invokeMethod in class AbstractAstVisitor

getProperty

public java.lang.Object getProperty(java.lang.String name)
Specified by:
getProperty in interface groovy.lang.GroovyObject
Overrides:
getProperty in class AbstractAstVisitor

setProperty

public void setProperty(java.lang.String name,
                        java.lang.Object value)
Specified by:
setProperty in interface groovy.lang.GroovyObject
Overrides:
setProperty in class AbstractAstVisitor


Copyright © 2010. All Rights Reserved.