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

    Fields
    Modifier and Type
    Field
    Description
    private org.codehaus.groovy.ast.ClassNode
     
    private Rule
     
    private SourceCode
     
    private final List<Violation>
     
    private Set<Object>
     
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected void
    addViolation(org.codehaus.groovy.ast.ASTNode node, String message)
    Add a new Violation to the list of violations found by this visitor.
    protected void
    Add a new Violation to the list of violations found by this visitor.
    protected String
     
    protected org.codehaus.groovy.ast.ClassNode
     
     
     
    protected org.codehaus.groovy.control.SourceUnit
     
     
     
    protected boolean
    isFirstVisit(Object expression)
    Return true if the AST expression has not already been visited.
    protected String
    lastSourceLine(org.codehaus.groovy.ast.ASTNode node)
    Return the last raw source line corresponding to the specified AST node
    protected String
    lastSourceLineTrimmed(org.codehaus.groovy.ast.ASTNode node)
    Return the trimmed last source line corresponding to the specified AST node
    void
    setRule(Rule rule)
     
    void
     
    void
    setVisited(Set<Object> visited)
     
    protected boolean
    shouldVisitMethod(org.codehaus.groovy.ast.MethodNode node)
     
    protected String
    sourceLine(org.codehaus.groovy.ast.ASTNode node)
    Return the raw source line corresponding to the specified AST node
    protected String
    sourceLineTrimmed(org.codehaus.groovy.ast.ASTNode node)
    Return the trimmed source line corresponding to the specified AST node
    final void
    visitClass(org.codehaus.groovy.ast.ClassNode node)
     
    protected void
    visitClassComplete(org.codehaus.groovy.ast.ClassNode node)
     
    protected void
    visitClassEx(org.codehaus.groovy.ast.ClassNode node)
     
    final void
    visitMethod(org.codehaus.groovy.ast.MethodNode node)
     
    protected void
    visitMethodComplete(org.codehaus.groovy.ast.MethodNode node)
     
    protected void
    visitMethodEx(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, visitWhileLoop

    Methods 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, 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

    visitConstructor, visitField, visitProperty
  • Field Details

    • violations

      private final List<Violation> violations
    • rule

      private Rule rule
    • sourceCode

      private SourceCode sourceCode
    • visited

      private Set<Object> visited
    • currentClassNode

      private org.codehaus.groovy.ast.ClassNode currentClassNode
  • Constructor Details

    • AbstractAstVisitor

      public AbstractAstVisitor()
  • Method Details

    • 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
    • sourceLineTrimmed

      protected String sourceLineTrimmed(org.codehaus.groovy.ast.ASTNode node)
      Return the trimmed source line corresponding to the specified AST node
      Parameters:
      node - - the Groovy AST node
    • sourceLine

      protected String sourceLine(org.codehaus.groovy.ast.ASTNode node)
      Return the raw 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 raw source line corresponding to the specified AST node
      Parameters:
      node - - the Groovy AST node
    • lastSourceLineTrimmed

      protected String lastSourceLineTrimmed(org.codehaus.groovy.ast.ASTNode node)
      Return the trimmed last source line corresponding to the specified AST node
      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 Node
      message - - 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 org.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:
      visitMethod in interface org.codehaus.groovy.ast.GroovyClassVisitor
      Overrides:
      visitMethod in class org.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

      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()