org.gmetrics.metric.abc
Class AbcAstVisitor

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.abc.AbcAstVisitor
All Implemented Interfaces:
groovy.lang.GroovyObject, org.codehaus.groovy.ast.GroovyClassVisitor, org.codehaus.groovy.ast.GroovyCodeVisitor, AstVisitor

public class AbcAstVisitor
extends AbstractAstVisitor
implements groovy.lang.GroovyObject

AST Visitor for calculating the ABC Metric for a class/method.

Version:
$Revision: 101 $ - $Date: 2010-03-10 19:17:23 -0500 (Wed, 10 Mar 2010) $
Author:
Chris Mair
See Also:
See http://www.softwarerenovation.com/ABCMetric.pdf

Field Summary
 
Fields inherited from class org.gmetrics.metric.AbstractAstVisitor
MAX_SOURCE_LINE_LENGTH, SOURCE_LINE_LAST_SEGMENT_LENGTH
 
Constructor Summary
AbcAstVisitor()
           
 
Method Summary
 groovy.lang.MetaClass getMetaClass()
           
 int getNumberOfAssignments()
           
 int getNumberOfBranches()
           
 int getNumberOfConditions()
           
 java.lang.Object getProperty(java.lang.String name)
           
 boolean getVisited()
           
 java.lang.Object invokeMethod(java.lang.String name, java.lang.Object args)
           
 boolean isVisited()
           
 void setMetaClass(groovy.lang.MetaClass metaClass)
           
 void setNumberOfAssignments(int value)
           
 void setNumberOfBranches(int value)
           
 void setNumberOfConditions(int value)
           
 void setProperty(java.lang.String name, java.lang.Object value)
           
 void visitBinaryExpression(org.codehaus.groovy.ast.expr.BinaryExpression expression)
           
 void visitBooleanExpression(org.codehaus.groovy.ast.expr.BooleanExpression booleanExpression)
           
 void visitConstructorCallExpression(org.codehaus.groovy.ast.expr.ConstructorCallExpression call)
           
 void visitIfElse(org.codehaus.groovy.ast.stmt.IfStatement ifElse)
           
 void visitMethod(org.codehaus.groovy.ast.MethodNode methodNode)
           
 void visitMethodCallExpression(org.codehaus.groovy.ast.expr.MethodCallExpression call)
           
 void visitNotExpression(org.codehaus.groovy.ast.expr.NotExpression notExpression)
           
 void visitPostfixExpression(org.codehaus.groovy.ast.expr.PostfixExpression expression)
           
 void visitPrefixExpression(org.codehaus.groovy.ast.expr.PrefixExpression expression)
           
 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 visitTryCatchFinally(org.codehaus.groovy.ast.stmt.TryCatchStatement statement)
           
 
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, visitCatchStatement, visitClass, visitClassCodeContainer, visitConstructor, visitConstructorOrMethod, visitContinueStatement, visitDoWhileLoop, visitExpressionStatement, visitField, visitForLoop, visitProperty, visitReturnStatement, visitStatement, visitSynchronizedStatement, visitThrowStatement, visitWhileLoop
 
Methods inherited from class org.codehaus.groovy.ast.CodeVisitorSupport
visitArgumentlistExpression, visitArrayExpression, visitAttributeExpression, visitBitwiseNegationExpression, visitBytecodeExpression, visitCastExpression, visitClassExpression, visitClosureExpression, visitClosureListExpression, visitConstantExpression, visitDeclarationExpression, visitFieldExpression, visitGStringExpression, visitListExpression, visitListOfExpressions, visitMapEntryExpression, visitMapExpression, visitMethodPointerExpression, 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

AbcAstVisitor

public AbcAstVisitor()
Method Detail

getNumberOfAssignments

public int getNumberOfAssignments()

setNumberOfAssignments

public void setNumberOfAssignments(int value)

getNumberOfBranches

public int getNumberOfBranches()

setNumberOfBranches

public void setNumberOfBranches(int value)

getNumberOfConditions

public int getNumberOfConditions()

setNumberOfConditions

public void setNumberOfConditions(int value)

getVisited

public final boolean getVisited()

isVisited

public final boolean isVisited()

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

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

visitPrefixExpression

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

visitPostfixExpression

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

visitMethodCallExpression

public void visitMethodCallExpression(org.codehaus.groovy.ast.expr.MethodCallExpression call)
Specified by:
visitMethodCallExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
Overrides:
visitMethodCallExpression 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

visitConstructorCallExpression

public void visitConstructorCallExpression(org.codehaus.groovy.ast.expr.ConstructorCallExpression call)
Specified by:
visitConstructorCallExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
Overrides:
visitConstructorCallExpression in class org.codehaus.groovy.ast.CodeVisitorSupport

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

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

visitTryCatchFinally

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

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

visitBooleanExpression

public void visitBooleanExpression(org.codehaus.groovy.ast.expr.BooleanExpression booleanExpression)
Specified by:
visitBooleanExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
Overrides:
visitBooleanExpression in class org.codehaus.groovy.ast.CodeVisitorSupport

visitNotExpression

public void visitNotExpression(org.codehaus.groovy.ast.expr.NotExpression notExpression)
Specified by:
visitNotExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
Overrides:
visitNotExpression 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.