org.codenarc.rule
Class AbstractAstVisitor
java.lang.Object
org.codehaus.groovy.ast.CodeVisitorSupport
org.codehaus.groovy.ast.ClassCodeVisitorSupport
org.codenarc.rule.ClassCodeVisitorSupportHack
org.codenarc.rule.AbstractAstVisitor
- All Implemented Interfaces:
- org.codehaus.groovy.ast.GroovyClassVisitor, org.codehaus.groovy.ast.GroovyCodeVisitor, AstVisitor
- Direct Known Subclasses:
- AbstractClassWithoutAbstractMethodAstVisitor, AbstractClassWithPublicConstructorAstVisitor, AbstractConstructorCallAstVisitor, AbstractFinallyAstVisitor, AbstractLastStatementInBlockAstVisitor, AbstractMethodMetricAstVisitor, AbstractTypeNameAstVisitor, AddEmptyStringAstVisitor, ArrayReturnTracker, AssertionTrap, AssignCollectionSortAstVisitor, AssignCollectionUniqueAstVisitor, AssignmentInConditionalAstVisitor, BitwiseOperatorInConditionalAstVisitor, BooleanMethodReturnsNullAstVisitor, BooleanReturnTracker, BracesForForLoopAstVisitor, BracesForIfElseAstVisitor, BracesForMethodAstVisitor, BracesForTryCatchFinallyAstVisitor, BrokenNullCheckAstVisitor, BrokenOddnessCheckAstVisitor, BusyWaitAstVisitor, ClassReferenceAstVisitor, ClassSizeAstVisitor, CloneableWithoutCloneAstVisitor, CollectAllIsDeprecatedAstVisitor, CollectionReturnTracker, CommonCatchAstVisitor, CommonThrowAstVisitor, ComparisonOfTwoConstantsAstVisitor, ComparisonWithSelfAstVisitor, ConfusingClassNamedExceptionAstVisitor, ConfusingMethodNameAstVisitor, ConfusingMultipleReturnsAstVisitor, ConfusingTernaryAstVisitor, ConsecutiveStringConcatenationAstVisitor, ConstantAssertExpressionAstVisitor, ConstantIfExpressionAstVisitor, ConstantsOnlyInterfaceAstVisitor, ConstantTernaryExpressionAstVisitor, CouldBeElvisAstVisitor, CoupledTestCaseAstVisitor, DeadCodeAstVisitor, DoubleCheckedLockingAstVisitor, DoubleNegativeAstVisitor, DuplicateCaseStatementAstVisitor, DuplicateListLiteralAstVisitor, DuplicateLiteralAstVisitor, DuplicateMapKeyAstVisitor, DuplicateMapLiteralAstVisitor, DuplicateSetValueAstVisitor, ElseBlockBracesAstVisitor, EmptyCatchBlockAstVisitor, EmptyElseBlockAstVisitor, EmptyFinallyBlockAstVisitor, EmptyForStatementAstVisitor, EmptyIfStatementAstVisitor, EmptyInstanceInitializerAstVisitor, EmptySwitchStatementAstVisitor, EmptySynchronizedStatementAstVisitor, EmptyTryBlockAstVisitor, EmptyWhileStatementAstVisitor, EqualsAndHashCodeAstVisitor, ExceptionExtendsErrorAstVisitor, ExplicitTypeInstantiationAstVisitor, FieldNameAstVisitor, FieldReferenceAstVisitor, FinalClassWithProtectedMemberAstVisitor, ForLoopShouldBeWhileLoopAstVisitor, ForStatementBracesAstVisitor, GetterMethodCouldBePropertyAstVisitor, GrailsDomainHasEqualsAstVisitor, GrailsDomainHasToStringAstVisitor, GrailsServletContextReferenceAstVisitor, GrailsSessionReferenceAstVisitor, GroovyLangImmutableAstVisitor, GStringAsMapKeyAstVisitor, HardCodedWindowsFileSeparatorAstVisitor, HardcodedWindowsRootDirectoryAstVisitor, IfStatementBracesAstVisitor, IllegalPackageReferenceAstVisitor, ImplementationAsTypeAstVisitor, InsecureRandomAstVisitor, InvertedIfElseAstVisitor, JavaIoPackageAccessAstVisitor, LoggingSwallowsStacktraceAstVisitor, LongLiteralWithLowerCaseLAstVisitor, MathRandomTracker, MethodCountAstVisitor, MethodSizeAstVisitor, MissingNewInThrowStatementAstVisitor, NestedBlockDepthAstVisitor, NestedSynchronizationAstVisitor, NonFinalSubclassOfSensitiveInterfaceAstVisitor, NullReturnTracker, PackageNameAstVisitor, ParameterNameAstVisitor, ParameterReassignmentAstVisitor, PrintlnAstVisitor, PrivateFieldCouldBeFinalAstVisitor, PropertyNameAstVisitor, RandomDoubleCoercedToZeroAstVisitor, ReturnNullFromCatchBlockAstVisitor, ReturnsNullInsteadOfEmptyArrayAstVisitor, ReturnsNullInsteadOfEmptyCollectionRuleAstVisitor, ScopedConfusingMethodNameAstVisitor, SerializableClassMustDefineSerialVersionUIDAstVisitor, SerialVersionUIDAstVisitor, SimpleDateFormatMissingLocaleAstVisitor, StatelessSingletonAstVisitor, SwallowThreadDeathAstVisitor, SynchronizedOnBoxedPrimitiveAstVisitor, SynchronizedOnGetClassAstVisitor, SynchronizedOnReentrantLockAstVisitor, SynchronizedOnStringAstVisitor, SynchronizedOnThisAstVisitor, TernaryCouldBeElvisAstVisitor, ThreadGroupAstVisitor, UnnecessaryBooleanExpressionAstVisitor, UnnecessaryCallForLastElementAstVisitor, UnnecessaryCatchBlockAstVisitor, UnnecessaryConstructorAstVisitor, UnnecessaryDefInMethodDeclarationAstVisitor, UnnecessaryDefInVariableDeclarationAstVisitor, UnnecessaryDotClassAstVisitor, UnnecessaryElseStatementAstVisitor, UnnecessaryFailAstVisitor, UnnecessaryGStringAstVisitor, UnnecessaryIfStatementAstVisitor, UnnecessaryInstanceOfCheckAstVisitor, UnnecessaryInstantiationAstVisitor, UnnecessaryModOneAstVisitor, UnnecessaryNullCheckAstVisitor, UnnecessaryNullCheckBeforeInstanceOfAstVisitor, UnnecessaryObjectReferencesAstVisitor, UnnecessaryPackageReferenceAstVisitor, UnnecessaryPublicModifierAstVisitor, UnnecessaryReturnKeywordAstVisitor, UnnecessarySelfAssignmentAstVisitor, UnnecessarySemicolonAstVisitor, UnnecessaryTernaryExpressionAstVisitor, UnusedPrivateMethodAstVisitor, UnusedVariableAstVisitor, UseAssertTrueInsteadOfAssertEqualsAstVisitor, UseCollectManyAstVisitor, UseCollectNestedAstVisitor, VariableNameAstVisitor, VariableUsageFinder, WaitOutsideOfWhileLoopAstVisitor, WhileStatementBracesAstVisitor
public class AbstractAstVisitor
- extends ClassCodeVisitorSupportHack
- implements AstVisitor
Abstract superclass for Groovy AST Visitors used with Rules
- Author:
- Chris Mair, Hamlet D'Arcy
Methods inherited from class org.codenarc.rule.ClassCodeVisitorSupportHack |
addError, visitAnnotations, visitArgumentlistExpression, visitArrayExpression, visitAssertStatement, visitAttributeExpression, visitBinaryExpression, visitBitwiseNegationExpression, visitBlockStatement, visitBooleanExpression, visitBreakStatement, visitBytecodeExpression, visitCaseStatement, visitCastExpression, visitCatchStatement, visitClassCodeContainer, visitClassExpression, visitClosureExpression, visitClosureListExpression, visitConstantExpression, visitConstructor, visitConstructorCallExpression, visitConstructorOrMethod, visitContinueStatement, visitDeclarationExpression, visitDoWhileLoop, visitEmptyStatement, visitExpressionStatement, visitField, visitFieldExpression, visitForLoop, visitGStringExpression, visitIfElse, visitImports, visitListExpression, visitListOfExpressions, visitMapEntryExpression, visitMapExpression, visitMethodCallExpression, visitMethodPointerExpression, visitNotExpression, visitObjectInitializerStatements, visitPackage, visitPostfixExpression, visitPrefixExpression, visitProperty, visitPropertyExpression, visitRangeExpression, visitReturnStatement, visitShortTernaryExpression, visitSpreadExpression, visitSpreadMapExpression, visitStatement, visitStaticMethodCallExpression, visitSwitch, visitSynchronizedStatement, visitTernaryExpression, visitThrowStatement, visitTryCatchFinally, visitTupleExpression, visitUnaryMinusExpression, visitUnaryPlusExpression, visitVariableExpression, visitWhileLoop |
Methods inherited from class org.codehaus.groovy.ast.CodeVisitorSupport |
visitRegexExpression |
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 |
visitConstructor, visitField, visitProperty |
AbstractAstVisitor
public AbstractAstVisitor()
isFirstVisit
protected boolean isFirstVisit(Object expression)
- Return true if the AST expression has not already been visited. If it is
the first visit, register the expression so that the next visit will return false.
- Parameters:
expression
- - the AST expression to check
- Returns:
- true if the AST expression has NOT already been visited
sourceLine
protected String sourceLine(org.codehaus.groovy.ast.ASTNode node)
- Return the source line corresponding to the specified AST node
- Parameters:
node
- - the Groovy AST node
lastSourceLine
protected String lastSourceLine(org.codehaus.groovy.ast.ASTNode node)
- Return the last source line corresponding to the specified AST node
- Parameters:
node
- - the Groovy AST node
addViolation
@Deprecated
protected void addViolation(org.codehaus.groovy.ast.ASTNode node)
- Deprecated. Always define a message. Use the other addViolation method instead of this one.
- Add a new Violation to the list of violations found by this visitor.
Only add the violation if the node lineNumber >= 0.
- Parameters:
node
- - the Groovy AST Node
addViolation
protected void addViolation(org.codehaus.groovy.ast.ASTNode node,
String message)
- Add a new Violation to the list of violations found by this visitor.
Only add the violation if the node lineNumber >= 0.
- Parameters:
node
- - the Groovy AST Nodemessage
- - the message for the violation; defaults to null
addViolation
protected void addViolation(Violation violation)
- Add a new Violation to the list of violations found by this visitor.
- Parameters:
violation
- - the violation to add
getSourceUnit
protected org.codehaus.groovy.control.SourceUnit getSourceUnit()
- Specified by:
getSourceUnit
in class org.codehaus.groovy.ast.ClassCodeVisitorSupport
visitClass
public final void visitClass(org.codehaus.groovy.ast.ClassNode node)
- Specified by:
visitClass
in interface org.codehaus.groovy.ast.GroovyClassVisitor
- Overrides:
visitClass
in class ClassCodeVisitorSupportHack
visitClassEx
protected void visitClassEx(org.codehaus.groovy.ast.ClassNode node)
visitClassComplete
protected void visitClassComplete(org.codehaus.groovy.ast.ClassNode node)
visitMethod
public final void visitMethod(org.codehaus.groovy.ast.MethodNode node)
- Specified by:
visitMethod
in interface org.codehaus.groovy.ast.GroovyClassVisitor
- Overrides:
visitMethod
in class ClassCodeVisitorSupportHack
visitMethodComplete
protected void visitMethodComplete(org.codehaus.groovy.ast.MethodNode node)
visitMethodEx
protected void visitMethodEx(org.codehaus.groovy.ast.MethodNode node)
setRule
public void setRule(Rule rule)
- Specified by:
setRule
in interface AstVisitor
setSourceCode
public void setSourceCode(SourceCode sourceCode)
- Specified by:
setSourceCode
in interface AstVisitor
getViolations
public List<Violation> getViolations()
- Specified by:
getViolations
in interface AstVisitor
getVisited
public Set<Object> getVisited()
getRule
public Rule getRule()
getSourceCode
public SourceCode getSourceCode()
setVisited
public void setVisited(Set<Object> visited)
getCurrentClassName
protected String getCurrentClassName()
getCurrentClassNode
protected org.codehaus.groovy.ast.ClassNode getCurrentClassNode()
Copyright © 2012. All Rights Reserved.