Class AbstractAstVisitor
java.lang.Object
org.codehaus.groovy.ast.CodeVisitorSupport
org.codehaus.groovy.ast.ClassCodeVisitorSupport
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, AbstractSingleSpaceAfterKeywordAstVisitor, AbstractSpaceAroundBraceAstVisitor, AbstractTypeNameAstVisitor, AddEmptyStringAstVisitor, ArrayReturnTracker, AssertionTrap, AssignCollectionSortAstVisitor, AssignCollectionUniqueAstVisitor, AssignmentInConditionalAstVisitor, AssignmentToStaticFieldFromInstanceMethodAstVisitor, BitwiseOperatorInConditionalAstVisitor, BlockEndsWithBlankLineAstVisitor, BlockStartsWithBlankLineAstVisitor, BooleanMethodReturnsNullAstVisitor, BooleanReturnTracker, BracesForForLoopAstVisitor, BracesForIfElseAstVisitor, BracesForMethodAstVisitor, BracesForTryCatchFinallyAstVisitor, BrokenNullCheckAstVisitor, BrokenOddnessCheckAstVisitor, BusyWaitAstVisitor, ClassEndsWithBlankLineAstVisitor, ClassNameSameAsSuperclassAstVisitor, ClassReferenceAstVisitor, ClassSizeAstVisitor, ClassStartsWithBlankLineAstVisitor, CloneableWithoutCloneAstVisitor, CloneWithoutCloneableAstVisitor, ClosureStatementOnOpeningLineOfMultipleLineClosureAstVisitor, CollectAllIsDeprecatedAstVisitor, CollectionReturnTracker, CommonCatchAstVisitor, CommonThrowAstVisitor, ComparisonOfTwoConstantsAstVisitor, ComparisonWithSelfAstVisitor, CompileStaticlVisitor, ConfusingClassNamedExceptionAstVisitor, ConfusingMethodNameAstVisitor, ConfusingMultipleReturnsAstVisitor, ConfusingTernaryAstVisitor, ConsecutiveStringConcatenationAstVisitor, ConstantAssertExpressionAstVisitor, ConstantIfExpressionAstVisitor, ConstantsOnlyInterfaceAstVisitor, ConstantTernaryExpressionAstVisitor, CouldBeElvisAstVisitor, CouldBeSwitchStatementAstVisitor, CoupledTestCaseAstVisitor, DeadCodeAstVisitor, DoubleCheckedLockingAstVisitor, DoubleNegativeAstVisitor, DuplicateCaseStatementAstVisitor, DuplicateListLiteralAstVisitor, DuplicateLiteralAstVisitor, DuplicateMapKeyAstVisitor, DuplicateMapLiteralAstVisitor, DuplicateSetValueAstVisitor, ElseBlockBracesAstVisitor, EmptyCatchBlockAstVisitor, EmptyClassAstVisitor, EmptyElseBlockAstVisitor, EmptyFinallyBlockAstVisitor, EmptyForStatementAstVisitor, EmptyIfStatementAstVisitor, EmptyInstanceInitializerAstVisitor, EmptySwitchStatementAstVisitor, EmptySynchronizedStatementAstVisitor, EmptyTryBlockAstVisitor, EmptyWhileStatementAstVisitor, EnumCustomSerializationIgnoredAstVisitor, EqualsAndHashCodeAstVisitor, ExceptionExtendsErrorAstVisitor, ExceptionExtendsThrowableAstVisitor, ExceptionNotThrownAstVisitor, ExplicitTypeInstantiationAstVisitor, FieldNameAstVisitor, FieldReferenceAstVisitor, FieldTypeRequiredAstVisitor, FinalClassWithProtectedMemberAstVisitor, ForLoopShouldBeWhileLoopAstVisitor, ForStatementBracesAstVisitor, GetterMethodCouldBePropertyAstVisitor, GrailsDomainHasEqualsAstVisitor, GrailsDomainHasToStringAstVisitor, GrailsDomainReservedSqlKeywordNameAstVisitor, GrailsDomainStringPropertyMaxSizeAstVisitor, GrailsDuplicateConstraintAstVisitor, GrailsDuplicateMappingAstVisitor, GrailsMassAssignmentAstVisitor, GrailsServletContextReferenceAstVisitor, GroovyLangImmutableAstVisitor, GStringAsMapKeyAstVisitor, GStringExpressionWithinStringAstVisitor, HardCodedWindowsFileSeparatorAstVisitor, HardcodedWindowsRootDirectoryAstVisitor, IfStatementBracesAstVisitor, IfStatementCouldBeTernaryAstVisitor, IllegalClassMemberAstVisitor, IllegalPackageReferenceAstVisitor, IllegalSubclassAstVisitor, ImplementationAsTypeAstVisitor, IndentationAstVisitor, InsecureRandomAstVisitor, InstanceofAstVisitor, InterfaceNameSameAsSuperInterfaceAstVisitor, InvertedConditionAstVisitor, InvertedIfElseAstVisitor, JavaIoPackageAccessAstVisitor, JUnitAssertEqualsConstantActualValueAstVisitor, JUnitPublicPropertyAstVisitor, JUnitUnnecessaryThrowsExceptionAstVisitor, LocaleSetDefaultAstVisitor, LoggingSwallowsStacktraceAstVisitor, LongLiteralWithLowerCaseLAstVisitor, MathRandomTracker, MethodCountAstVisitor, MethodParameterTypeRequiredAstVisitor, MethodReturnTypeRequiredAstVisitor, MethodSizeAstVisitor, MissingNewInThrowStatementAstVisitor, MissingOverrideAnnotationAstVisitor, MultipleUnaryOperatorsAstVisitor, NestedBlockDepthAstVisitor, NestedForLoopAstVisitor, NestedSynchronizationAstVisitor, NoDefAstVisitor, NoJavaUtilDateAstVisitor, NonFinalSubclassOfSensitiveInterfaceAstVisitor, NullReturnTracker, PackageNameAstVisitor, ParameterCountAstVisitor, ParameterNameAstVisitor, ParameterReassignmentAstVisitor, PrintlnAstVisitor, PrivateFieldCouldBeFinalAstVisitor, PropertyNameAstVisitor, PublicMethodsBeforeNonPublicMethodsAstVisitor, RandomDoubleCoercedToZeroAstVisitor, ReturnNullFromCatchBlockAstVisitor, ReturnsNullInsteadOfEmptyArrayAstVisitor, ReturnsNullInsteadOfEmptyCollectionRuleAstVisitor, ScopedConfusingMethodNameAstVisitor, SerializableClassMustDefineSerialVersionUIDAstVisitor, SerialVersionUIDAstVisitor, SimpleDateFormatMissingLocaleAstVisitor, SpaceAfterCommaAstVisitor, SpaceAfterSemicolonAstVisitor, SpaceAroundClosureArrowAstVisitor, SpaceAroundMapEntryColonAstVisitor, SpaceAroundOperatorAstVisitor, StatelessSingletonAstVisitor, StaticFieldsBeforeInstanceFieldsAstVisitor, StaticMethodsBeforeInstanceMethodsAstVisitor, SwallowThreadDeathAstVisitor, SynchronizedOnBoxedPrimitiveAstVisitor, SynchronizedOnGetClassAstVisitor, SynchronizedOnReentrantLockAstVisitor, SynchronizedOnStringAstVisitor, SynchronizedOnThisAstVisitor, TernaryCouldBeElvisAstVisitor, ThisReferenceEscapesConstructorAstVisitor, ThreadGroupAstVisitor, ToStringReturnsNullAstVisitor, TrailingCommaAstVisitor, UnnecessaryBooleanExpressionAstVisitor, UnnecessaryCallForLastElementAstVisitor, UnnecessaryCastAstVisitor, UnnecessaryCatchBlockAstVisitor, UnnecessaryConstructorAstVisitor, UnnecessaryDefInMethodDeclarationAstVisitor, UnnecessaryDefInVariableDeclarationAstVisitor, UnnecessaryDotClassAstVisitor, UnnecessaryElseStatementAstVisitor, UnnecessaryFailAstVisitor, UnnecessaryGetterAstVisitor, UnnecessaryGStringAstVisitor, UnnecessaryIfStatementAstVisitor, UnnecessaryInstanceOfCheckAstVisitor, UnnecessaryInstantiationAstVisitor, UnnecessaryModOneAstVisitor, UnnecessaryNullCheckAstVisitor, UnnecessaryNullCheckBeforeInstanceOfAstVisitor, UnnecessaryObjectReferencesAstVisitor, UnnecessaryPackageReferenceAstVisitor, UnnecessaryPublicModifierAstVisitor, UnnecessaryReturnKeywordAstVisitor, UnnecessarySafeNavigationOperatorAstVisitor, UnnecessarySelfAssignmentAstVisitor, UnnecessarySemicolonAstVisitor, UnnecessarySetterAstVisitor, UnnecessaryTernaryExpressionAstVisitor, UnnecessaryToStringAstVisitor, UnsafeImplementationAsMapAstVisitor, UnusedPrivateMethodAstVisitor, UnusedVariableAstVisitor, UseAssertTrueInsteadOfAssertEqualsAstVisitor, UseCollectManyAstVisitor, UseCollectNestedAstVisitor, VariableNameAstVisitor, VariableTypeRequiredAstVisitor, VariableUsageFinder, WaitOutsideOfWhileLoopAstVisitor, WhileStatementBracesAstVisitor
public class AbstractAstVisitor
extends org.codehaus.groovy.ast.ClassCodeVisitorSupport
implements AstVisitor
Abstract superclass for Groovy AST Visitors used with Rules
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate org.codehaus.groovy.ast.ClassNodeprivate Ruleprivate SourceCode -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidaddViolation(org.codehaus.groovy.ast.ASTNode node, String message) Add a new Violation to the list of violations found by this visitor.protected voidaddViolation(Violation violation) Add a new Violation to the list of violations found by this visitor.protected Stringprotected org.codehaus.groovy.ast.ClassNodegetRule()protected org.codehaus.groovy.control.SourceUnitprotected booleanisFirstVisit(Object expression) Return true if the AST expression has not already been visited.protected StringlastSourceLine(org.codehaus.groovy.ast.ASTNode node) Return the last raw source line corresponding to the specified AST nodeprotected StringlastSourceLineTrimmed(org.codehaus.groovy.ast.ASTNode node) Return the trimmed last source line corresponding to the specified AST nodevoidvoidsetSourceCode(SourceCode sourceCode) voidsetVisited(Set<Object> visited) protected booleanshouldVisitMethod(org.codehaus.groovy.ast.MethodNode node) protected StringsourceLine(org.codehaus.groovy.ast.ASTNode node) Return the raw source line corresponding to the specified AST nodeprotected StringsourceLineTrimmed(org.codehaus.groovy.ast.ASTNode node) Return the trimmed source line corresponding to the specified AST nodefinal voidvisitClass(org.codehaus.groovy.ast.ClassNode node) protected voidvisitClassComplete(org.codehaus.groovy.ast.ClassNode node) protected voidvisitClassEx(org.codehaus.groovy.ast.ClassNode node) final voidvisitMethod(org.codehaus.groovy.ast.MethodNode node) protected voidvisitMethodComplete(org.codehaus.groovy.ast.MethodNode node) protected voidvisitMethodEx(org.codehaus.groovy.ast.MethodNode node) Methods inherited from class org.codehaus.groovy.ast.ClassCodeVisitorSupport
addError, visitAnnotations, visitAssertStatement, visitBlockStatement, visitBreakStatement, visitCaseStatement, visitCatchStatement, visitClassCodeContainer, visitConstructor, visitConstructorOrMethod, visitContinueStatement, visitDeclarationExpression, visitDoWhileLoop, visitExpressionStatement, visitField, visitForLoop, visitIfElse, visitImports, visitObjectInitializerStatements, visitPackage, visitProperty, visitReturnStatement, visitStatement, visitSwitch, visitSynchronizedStatement, visitThrowStatement, visitTryCatchFinally, visitWhileLoopMethods inherited from class org.codehaus.groovy.ast.CodeVisitorSupport
visitArgumentlistExpression, visitArrayExpression, visitAttributeExpression, visitBinaryExpression, visitBitwiseNegationExpression, visitBooleanExpression, visitBytecodeExpression, visitCastExpression, visitClassExpression, visitClosureExpression, visitClosureListExpression, visitConstantExpression, visitConstructorCallExpression, visitEmptyStatement, visitFieldExpression, visitGStringExpression, visitListExpression, visitListOfExpressions, visitMapEntryExpression, visitMapExpression, visitMethodCallExpression, visitMethodPointerExpression, visitNotExpression, visitPostfixExpression, visitPrefixExpression, visitPropertyExpression, visitRangeExpression, visitShortTernaryExpression, visitSpreadExpression, visitSpreadMapExpression, visitStaticMethodCallExpression, visitTernaryExpression, visitTupleExpression, visitUnaryMinusExpression, visitUnaryPlusExpression, visitVariableExpressionMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.codehaus.groovy.ast.GroovyClassVisitor
visitConstructor, visitField, visitProperty
-
Field Details
-
violations
-
rule
-
sourceCode
-
visited
-
currentClassNode
private org.codehaus.groovy.ast.ClassNode currentClassNode
-
-
Constructor Details
-
AbstractAstVisitor
public AbstractAstVisitor()
-
-
Method Details
-
isFirstVisit
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
-
sourceLineTrimmed
Return the trimmed source line corresponding to the specified AST node- Parameters:
node- - the Groovy AST node
-
sourceLine
Return the raw source line corresponding to the specified AST node- Parameters:
node- - the Groovy AST node
-
lastSourceLine
Return the last raw source line corresponding to the specified AST node- Parameters:
node- - the Groovy AST node
-
lastSourceLineTrimmed
Return the trimmed last source line corresponding to the specified AST node- Parameters:
node- - the Groovy AST node
-
addViolation
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
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:
getSourceUnitin classorg.codehaus.groovy.ast.ClassCodeVisitorSupport
-
visitClass
public final void visitClass(org.codehaus.groovy.ast.ClassNode node) - Specified by:
visitClassin interfaceorg.codehaus.groovy.ast.GroovyClassVisitor- Overrides:
visitClassin classorg.codehaus.groovy.ast.ClassCodeVisitorSupport
-
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:
visitMethodin interfaceorg.codehaus.groovy.ast.GroovyClassVisitor- Overrides:
visitMethodin classorg.codehaus.groovy.ast.ClassCodeVisitorSupport
-
shouldVisitMethod
protected boolean shouldVisitMethod(org.codehaus.groovy.ast.MethodNode node) -
visitMethodComplete
protected void visitMethodComplete(org.codehaus.groovy.ast.MethodNode node) -
visitMethodEx
protected void visitMethodEx(org.codehaus.groovy.ast.MethodNode node) -
setRule
- Specified by:
setRulein interfaceAstVisitor
-
setSourceCode
- Specified by:
setSourceCodein interfaceAstVisitor
-
getViolations
- Specified by:
getViolationsin interfaceAstVisitor
-
getVisited
-
getRule
-
getSourceCode
-
setVisited
-
getCurrentClassName
-
getCurrentClassNode
protected org.codehaus.groovy.ast.ClassNode getCurrentClassNode()
-