Package org.codenarc.rule
Class AbstractAstVisitorRule
- java.lang.Object
-
- org.codenarc.rule.AbstractRule
-
- org.codenarc.rule.AbstractAstVisitorRule
-
- All Implemented Interfaces:
Rule
- Direct Known Subclasses:
AbcMetricRule
,AbstractClassNameRule
,AbstractClassWithoutAbstractMethodRule
,AbstractClassWithPublicConstructorRule
,AbstractEnhanceableAstVisitorRule
,AbstractJavadocEmptyTagRule
,AbstractJavadocMissingDescriptionRule
,AbstractSharedAstVisitorRule
,AddEmptyStringRule
,AssertWithinFinallyBlockRule
,AssignCollectionSortRule
,AssignCollectionUniqueRule
,AssignmentInConditionalRule
,AssignmentToStaticFieldFromInstanceMethodRule
,BigDecimalInstantiationRule
,BitwiseOperatorInConditionalRule
,BlockEndsWithBlankLineRule
,BlockStartsWithBlankLineRule
,BooleanGetBooleanRule
,BooleanMethodReturnsNullRule
,BracesForForLoopRule
,BracesForIfElseRule
,BracesForMethodRule
,BracesForTryCatchFinallyRule
,BrokenNullCheckRule
,BrokenOddnessCheckRule
,BuilderMethodWithSideEffectsRule
,BusyWaitRule
,CatchArrayIndexOutOfBoundsExceptionRule
,CatchErrorRule
,CatchExceptionRule
,CatchIllegalMonitorStateExceptionRule
,CatchIndexOutOfBoundsExceptionRule
,CatchNullPointerExceptionRule
,CatchRuntimeExceptionRule
,CatchThrowableRule
,ChainedTestRule
,ClassEndsWithBlankLineRule
,ClassForNameRule
,ClassNameRule
,ClassNameSameAsSuperclassRule
,ClassSizeRule
,ClassStartsWithBlankLineRule
,CloneableWithoutCloneRule
,CloneWithoutCloneableRule
,ClosureAsLastMethodParameterRule
,ClosureStatementOnOpeningLineOfMultipleLineClosureRule
,CollectAllIsDeprecatedRule
,ComparisonOfTwoConstantsRule
,ComparisonWithSelfRule
,CompileStaticRule
,ConfusingClassNamedExceptionRule
,ConfusingMethodNameRule
,ConfusingMultipleReturnsRule
,ConfusingTernaryRule
,ConsecutiveLiteralAppendsRule
,ConsecutiveStringConcatenationRule
,ConstantAssertExpressionRule
,ConstantIfExpressionRule
,ConstantsOnlyInterfaceRule
,ConstantTernaryExpressionRule
,CouldBeElvisRule
,CouldBeSwitchStatementRule
,CoupledTestCaseRule
,CrapMetricRule
,CyclomaticComplexityRule
,DeadCodeRule
,DirectConnectionManagementRule
,DoubleCheckedLockingRule
,DoubleNegativeRule
,DuplicateCaseStatementRule
,DuplicateListLiteralRule
,DuplicateMapKeyRule
,DuplicateMapLiteralRule
,DuplicateNumberLiteralRule
,DuplicateSetValueRule
,DuplicateStringLiteralRule
,ElseBlockBracesRule
,EmptyCatchBlockRule
,EmptyClassRule
,EmptyElseBlockRule
,EmptyFinallyBlockRule
,EmptyForStatementRule
,EmptyIfStatementRule
,EmptyInstanceInitializerRule
,EmptyMethodInAbstractClassRule
,EmptyMethodRule
,EmptyStaticInitializerRule
,EmptySwitchStatementRule
,EmptySynchronizedStatementRule
,EmptyTryBlockRule
,EmptyWhileStatementRule
,EnumCustomSerializationIgnoredRule
,EqualsAndHashCodeRule
,EqualsOverloadedRule
,ExceptionExtendsErrorRule
,ExceptionExtendsThrowableRule
,ExceptionNotThrownRule
,ExplicitArrayListInstantiationRule
,ExplicitCallToAndMethodRule
,ExplicitCallToCompareToMethodRule
,ExplicitCallToDivMethodRule
,ExplicitCallToEqualsMethodRule
,ExplicitCallToGetAtMethodRule
,ExplicitCallToLeftShiftMethodRule
,ExplicitCallToMinusMethodRule
,ExplicitCallToModMethodRule
,ExplicitCallToMultiplyMethodRule
,ExplicitCallToOrMethodRule
,ExplicitCallToPlusMethodRule
,ExplicitCallToPowerMethodRule
,ExplicitCallToPutAtMethodRule
,ExplicitCallToRightShiftMethodRule
,ExplicitCallToXorMethodRule
,ExplicitGarbageCollectionRule
,ExplicitHashMapInstantiationRule
,ExplicitHashSetInstantiationRule
,ExplicitLinkedHashMapInstantiationRule
,ExplicitLinkedListInstantiationRule
,ExplicitStackInstantiationRule
,ExplicitTreeSetInstantiationRule
,FactoryMethodNameRule
,FieldNameRule
,FieldTypeRequiredRule
,FileCreateTempFileRule
,FinalClassWithProtectedMemberRule
,ForLoopShouldBeWhileLoopRule
,ForStatementBracesRule
,GetterMethodCouldBePropertyRule
,GrailsDomainHasEqualsRule
,GrailsDomainHasToStringRule
,GrailsDomainReservedSqlKeywordNameRule
,GrailsDomainStringPropertyMaxSizeRule
,GrailsDomainWithServiceReferenceRule
,GrailsDuplicateConstraintRule
,GrailsDuplicateMappingRule
,GrailsMassAssignmentRule
,GrailsPublicControllerMethodRule
,GrailsServletContextReferenceRule
,GroovyLangImmutableRule
,GStringAsMapKeyRule
,GStringExpressionWithinStringRule
,HardCodedWindowsFileSeparatorRule
,HardCodedWindowsRootDirectoryRule
,HashtableIsObsoleteRule
,IfStatementBracesRule
,IfStatementCouldBeTernaryRule
,IllegalClassMemberRule
,IllegalClassReferenceRule
,IllegalPackageReferenceRule
,IllegalSubclassRule
,ImplementationAsTypeRule
,ImportFromSunPackagesRule
,InconsistentPropertyLockingRule
,InconsistentPropertySynchronizationRule
,IndentationRule
,InsecureRandomRule
,InstanceofRule
,IntegerGetIntegerRule
,InterfaceNameRule
,InterfaceNameSameAsSuperInterfaceRule
,InvertedConditionRule
,InvertedIfElseRule
,JavadocConsecutiveEmptyLinesRule
,JavadocEmptyLastLineRule
,JavaIoPackageAccessRule
,JdbcConnectionReferenceRule
,JdbcResultSetReferenceRule
,JdbcStatementReferenceRule
,JUnitAssertAlwaysFailsRule
,JUnitAssertAlwaysSucceedsRule
,JUnitAssertEqualsConstantActualValueRule
,JUnitFailWithoutMessageRule
,JUnitLostTestRule
,JUnitPublicFieldRule
,JUnitPublicNonTestMethodRule
,JUnitPublicPropertyRule
,JUnitSetUpCallsSuperRule
,JUnitStyleAssertionsRule
,JUnitTearDownCallsSuperRule
,JUnitTestMethodWithoutAssertRule
,JUnitUnnecessarySetUpRule
,JUnitUnnecessaryTearDownRule
,JUnitUnnecessaryThrowsExceptionRule
,LineLengthRule
,LocaleSetDefaultRule
,LoggerForDifferentClassRule
,LoggerWithWrongModifiersRule
,LoggingSwallowsStacktraceRule
,LongLiteralWithLowerCaseLRule
,MethodCountRule
,MethodNameRule
,MethodParameterTypeRequired
,MethodReturnTypeRequiredRule
,MethodSizeRule
,MissingNewInThrowStatementRule
,MissingOverrideAnnotationRule
,MultipleLoggersRule
,MultipleUnaryOperatorsRule
,NestedBlockDepthRule
,NestedForLoopRule
,NestedSynchronizationRule
,NoDefRule
,NoJavaUtilDateRule
,NonFinalPublicFieldRule
,NonFinalSubclassOfSensitiveInterfaceRule
,ObjectFinalizeRule
,ObjectOverrideMisspelledMethodNameRule
,PackageNameRule
,ParameterCountRule
,ParameterNameRule
,ParameterReassignmentRule
,PrintlnRule
,PrintStackTraceRule
,PropertyNameRule
,PublicFinalizeMethodRule
,PublicInstanceFieldRule
,PublicMethodsBeforeNonPublicMethodsRule
,RandomDoubleCoercedToZeroRule
,RemoveAllOnSelfRule
,ReturnFromFinallyBlockRule
,ReturnNullFromCatchBlockRule
,ReturnsNullInsteadOfEmptyArrayRule
,ReturnsNullInsteadOfEmptyCollectionRule
,SerializableClassMustDefineSerialVersionUIDRule
,SerialPersistentFieldsRule
,SerialVersionUIDRule
,SimpleDateFormatMissingLocaleRule
,SpaceAfterCatchRule
,SpaceAfterClosingBraceRule
,SpaceAfterCommaRule
,SpaceAfterForRule
,SpaceAfterIfRule
,SpaceAfterOpeningBraceRule
,SpaceAfterSemicolonRule
,SpaceAfterSwitchRule
,SpaceAfterWhileRule
,SpaceAroundClosureArrowRule
,SpaceAroundMapEntryColonRule
,SpaceAroundOperatorRule
,SpaceBeforeClosingBraceRule
,SpaceBeforeOpeningBraceRule
,SpockIgnoreRestUsedRule
,StatelessClassRule
,StatelessSingletonRule
,StaticCalendarFieldRule
,StaticConnectionRule
,StaticDateFormatFieldRule
,StaticFieldsBeforeInstanceFieldsRule
,StaticMatcherFieldRule
,StaticMethodsBeforeInstanceMethodsRule
,StaticSimpleDateFormatFieldRule
,SwallowThreadDeathRule
,SynchronizedMethodRule
,SynchronizedOnBoxedPrimitiveRule
,SynchronizedOnGetClassRule
,SynchronizedOnReentrantLockRule
,SynchronizedOnStringRule
,SynchronizedOnThisRule
,SynchronizedReadObjectMethodRule
,SystemErrPrintRule
,SystemExitRule
,SystemOutPrintRule
,SystemRunFinalizersOnExitRule
,TernaryCouldBeElvisRule
,ThisReferenceEscapesConstructorRule
,ThreadGroupRule
,ThreadLocalNotStaticFinalRule
,ThreadYieldRule
,ThrowErrorRule
,ThrowExceptionFromFinallyBlockRule
,ThrowExceptionRule
,ThrowNullPointerExceptionRule
,ThrowRuntimeExceptionRule
,ThrowThrowableRule
,ToStringReturnsNullRule
,TrailingCommaRule
,UnnecessaryBigDecimalInstantiationRule
,UnnecessaryBigIntegerInstantiationRule
,UnnecessaryBooleanExpressionRule
,UnnecessaryBooleanInstantiationRule
,UnnecessaryCallForLastElementRule
,UnnecessaryCallToSubstringRule
,UnnecessaryCastRule
,UnnecessaryCatchBlockRule
,UnnecessaryCollectCallRule
,UnnecessaryCollectionCallRule
,UnnecessaryConstructorRule
,UnnecessaryDefInFieldDeclarationRule
,UnnecessaryDefInMethodDeclarationRule
,UnnecessaryDefInVariableDeclarationRule
,UnnecessaryDotClassRule
,UnnecessaryDoubleInstantiationRule
,UnnecessaryElseStatementRule
,UnnecessaryFailRule
,UnnecessaryFinalOnPrivateMethodRule
,UnnecessaryFloatInstantiationRule
,UnnecessaryGetterRule
,UnnecessaryGStringRule
,UnnecessaryIfStatementRule
,UnnecessaryInstanceOfCheckRule
,UnnecessaryInstantiationToGetClassRule
,UnnecessaryIntegerInstantiationRule
,UnnecessaryLongInstantiationRule
,UnnecessaryModOneRule
,UnnecessaryNullCheckBeforeInstanceOfRule
,UnnecessaryNullCheckRule
,UnnecessaryObjectReferencesRule
,UnnecessaryOverridingMethodRule
,UnnecessaryPackageReferenceRule
,UnnecessaryParenthesesForMethodCallWithClosureRule
,UnnecessaryPublicModifierRule
,UnnecessaryReturnKeywordRule
,UnnecessarySafeNavigationOperatorRule
,UnnecessarySelfAssignmentRule
,UnnecessarySemicolonRule
,UnnecessarySetterRule
,UnnecessaryStringInstantiationRule
,UnnecessarySubstringRule
,UnnecessaryTernaryExpressionRule
,UnnecessaryToStringRule
,UnnecessaryTransientModifierRule
,UnsafeArrayDeclarationRule
,UnsafeImplementationAsMapRule
,UnusedArrayRule
,UnusedMethodParameterRule
,UnusedObjectRule
,UnusedPrivateMethodParameterRule
,UnusedVariableRule
,UseAssertEqualsInsteadOfAssertTrueRule
,UseAssertFalseInsteadOfNegationRule
,UseAssertNullInsteadOfAssertEqualsRule
,UseAssertSameInsteadOfAssertTrueRule
,UseAssertTrueInsteadOfAssertEqualsRule
,UseAssertTrueInsteadOfNegationRule
,UseCollectManyRule
,UseCollectNestedRule
,UseOfNotifyMethodRule
,VariableNameRule
,VariableTypeRequiredRule
,VectorIsObsoleteRule
,VolatileArrayFieldRule
,VolatileLongOrDoubleFieldRule
,WaitOutsideOfWhileLoopRule
,WhileStatementBracesRule
public abstract class AbstractAstVisitorRule extends AbstractRule
Abstract superclass for Rules that use a Groovy AST Visitor. Each subclass must set theastVisitorClass
property or else define a new property with the same name, specifying the Class of theAstVisitor
to applied to the specified source code.- Author:
- Chris Mair, Hamlet D'Arcy
-
-
Field Summary
Fields Modifier and Type Field Description static String
CLOSURE_TEXT
protected static String
DEFAULT_CONST_NAME
protected static String
DEFAULT_FIELD_NAME
protected static String
DEFAULT_TEST_CLASS_NAMES
protected static String
DEFAULT_TEST_FILES
protected static String
DEFAULT_VAR_NAME
-
Constructor Summary
Constructors Constructor Description AbstractAstVisitorRule()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
applyTo(SourceCode sourceCode, List<Violation> violations)
Apply this rule to the specified source and return a list of violations (or an empty List)String
getApplyToClassNames()
AstVisitor
getAstVisitor()
protected Class
getAstVisitorClass()
Each concrete subclass must either set this property or define its own property with the same nameString
getDoNotApplyToClassNames()
void
setApplyToClassNames(String applyToClassNames)
void
setDoNotApplyToClassNames(String doNotApplyToClassNames)
protected boolean
shouldApplyThisRuleTo(org.codehaus.groovy.ast.ClassNode classNode)
Return true if this rule should be applied for the specified ClassNode, based on the configuration of this rule.-
Methods inherited from class org.codenarc.rule.AbstractRule
applyTo, createViolation, createViolation, createViolationForImport, createViolationForImport, getApplyToFileNames, getApplyToFilesMatching, getCompilerPhase, getDescription, getDoNotApplyToFileNames, getDoNotApplyToFilesMatching, getName, getPriority, getViolationMessage, isEnabled, isReady, setApplyToFileNames, setApplyToFilesMatching, setDescription, setDoNotApplyToFileNames, setDoNotApplyToFilesMatching, setEnabled, setName, setPriority, setViolationMessage, toString, validate
-
-
-
-
Field Detail
-
DEFAULT_CONST_NAME
protected static final String DEFAULT_CONST_NAME
- See Also:
- Constant Field Values
-
DEFAULT_FIELD_NAME
protected static final String DEFAULT_FIELD_NAME
- See Also:
- Constant Field Values
-
DEFAULT_VAR_NAME
protected static final String DEFAULT_VAR_NAME
- See Also:
- Constant Field Values
-
DEFAULT_TEST_FILES
protected static final String DEFAULT_TEST_FILES
- See Also:
- Constant Field Values
-
DEFAULT_TEST_CLASS_NAMES
protected static final String DEFAULT_TEST_CLASS_NAMES
- See Also:
- Constant Field Values
-
CLOSURE_TEXT
public static final String CLOSURE_TEXT
- See Also:
- Constant Field Values
-
-
Method Detail
-
getAstVisitorClass
protected Class getAstVisitorClass()
Each concrete subclass must either set this property or define its own property with the same name
-
getAstVisitor
public AstVisitor getAstVisitor()
-
applyTo
public void applyTo(SourceCode sourceCode, List<Violation> violations)
Description copied from class:AbstractRule
Apply this rule to the specified source and return a list of violations (or an empty List)- Specified by:
applyTo
in classAbstractRule
- Parameters:
sourceCode
- - the source to apply this rule toviolations
- - the List of violations to which new violations from this rule are to be added
-
shouldApplyThisRuleTo
protected boolean shouldApplyThisRuleTo(org.codehaus.groovy.ast.ClassNode classNode)
Return true if this rule should be applied for the specified ClassNode, based on the configuration of this rule.- Parameters:
classNode
- - the ClassNode- Returns:
- true if this rule should be applied for the specified ClassNode
-
getApplyToClassNames
public String getApplyToClassNames()
-
setApplyToClassNames
public void setApplyToClassNames(String applyToClassNames)
-
getDoNotApplyToClassNames
public String getDoNotApplyToClassNames()
-
setDoNotApplyToClassNames
public void setDoNotApplyToClassNames(String doNotApplyToClassNames)
-
-