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
Abstract superclass for Rules that use a Groovy AST Visitor.
Each subclass must set the
astVisitorClass
property or else define a new
property with the same name, specifying the Class of the AstVisitor
to applied to the specified source code.-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate String
This rule is only applied to classes with names matching this value.static final String
protected static final String
protected static final String
protected static final String
protected static final String
protected static final String
private String
This rule is NOT applied to classes with names matching this value. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
applyTo
(SourceCode sourceCode, List<Violation> violations) Apply this rule to the specified source and return a list of violations (or an empty List)protected Class
Each concrete subclass must either set this property or define its own property with the same namevoid
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 Details
-
DEFAULT_CONST_NAME
- See Also:
-
DEFAULT_FIELD_NAME
- See Also:
-
DEFAULT_VAR_NAME
- See Also:
-
DEFAULT_TEST_FILES
- See Also:
-
DEFAULT_TEST_CLASS_NAMES
- See Also:
-
CLOSURE_TEXT
- See Also:
-
applyToClassNames
This rule is only applied to classes with names matching this value. The value may optionally be a comma-separated list of names, in which case one of the names must match. If a name includes a period ('.'), then it is assumed to specify a full package name, so the name (pattern) is matched against each fully-qualified class name. Otherwise it is matched only against the class name without a package. The name(s) may optionally include wildcard characters ('*' or '?'). -
doNotApplyToClassNames
This rule is NOT applied to classes with names matching this value. The value may optionally be a comma-separated list of names, in which case any one of the names can match. If a name includes a period ('.'), then it is assumed to specify a full package name, so the name (pattern) is matched against each fully-qualified class name. Otherwise it is matched only against the class name without a package. The name(s) may optionally include wildcard characters ('*' or '?').
-
-
Constructor Details
-
AbstractAstVisitorRule
public AbstractAstVisitorRule()
-
-
Method Details
-
getAstVisitorClass
Each concrete subclass must either set this property or define its own property with the same name -
getAstVisitor
-
applyTo
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
-
setApplyToClassNames
-
getDoNotApplyToClassNames
-
setDoNotApplyToClassNames
-