Groovy Documentation

java.org.codenarc.rule
[Java] Class AbstractRule

java.lang.Object
  java.org.codenarc.rule.AbstractRule
All Implemented Interfaces:
Rule

public abstract class AbstractRule

Abstract superclass for Rules.

Each subclass must define an name property (String) and a priority property (integer 1..3).

Authors:
Chris Mair
Hamlet D'Arcy


Method Summary
void applyTo(SourceCode sourceCode, List violations)

Apply this rule to the specified source and return a list of violations (or an empty List)

List applyTo(SourceCode sourceCode)

Apply this rule to the specified source and return a list of violations (or an empty List).

protected Violation createViolation(Integer lineNumber, String sourceLine, String message)

Create and return a new Violation for this rule and the specified values

protected Violation createViolation(Integer lineNumber, String message)

Create and return a new Violation for this rule and the specified values

protected Violation createViolation(Integer lineNumber)

Create and return a new Violation for this rule and the specified values

protected Violation createViolation(SourceCode sourceCode, org.codehaus.groovy.ast.ASTNode node, String message)

Create a new Violation for the AST node.

protected Violation createViolation(SourceCode sourceCode, org.codehaus.groovy.ast.ASTNode node)

Create a new Violation for the AST node.

protected Violation createViolationForImport(SourceCode sourceCode, org.codehaus.groovy.ast.ImportNode importNode, String message)

Create and return a new Violation for this rule and the specified import

protected Violation createViolationForImport(SourceCode sourceCode, org.codehaus.groovy.ast.ImportNode importNode)

Create and return a new Violation for this rule and the specified import

protected Violation createViolationForImport(SourceCode sourceCode, String className, String alias, String violationMessage)

Create and return a new Violation for this rule and the specified import className and alias

String getApplyToFileNames()

String getApplyToFilesMatching()

String getDescription()

String getDoNotApplyToFileNames()

String getDoNotApplyToFilesMatching()

String getName()

@return the unique name for this rule

int getPriority()

@return the priority of this rule, between 1 (highest priority) and 3 (lowest priority), inclusive.

String getViolationMessage()

boolean isEnabled()

boolean isReady()

Allows rules to check whether preconditions are satisfied and short-circuit execution (i.e., do nothing) if those preconditions are not satisfied.

void setApplyToFileNames(String applyToFileNames)

void setApplyToFilesMatching(String applyToFilesMatching)

void setDescription(String description)

void setDoNotApplyToFileNames(String doNotApplyToFileNames)

void setDoNotApplyToFilesMatching(String doNotApplyToFilesMatching)

void setEnabled(boolean enabled)

void setName(String name)

Set the unique name for this rule

void setPriority(int priority)

Set the priority for this rule

void setViolationMessage(String violationMessage)

String toString()

void validate()

Allows rules to perform validation.

 
Methods inherited from class Object
wait, wait, wait, equals, toString, hashCode, getClass, notify, notifyAll
 

Method Detail

applyTo

public void applyTo(SourceCode sourceCode, List violations)
Apply this rule to the specified source and return a list of violations (or an empty List)
Parameters:
sourceCode - - the source to apply this rule to
violations - - the List of violations to which new violations from this rule are to be added


applyTo

public List applyTo(SourceCode sourceCode)
Apply this rule to the specified source and return a list of violations (or an empty List). This implementation delegates to the abstract applyCode(SourceCode,List), provided by concrete subclasses. This template method simplifies subclass implementations and also enables common handling of enablement logic.
Parameters:
sourceCode - - the source to apply this rule to
Returns:
the List of violations; may be empty


createViolation

protected Violation createViolation(Integer lineNumber, String sourceLine, String message)
Create and return a new Violation for this rule and the specified values
Parameters:
lineNumber - - the line number for the violation; may be null
sourceLine - - the source line for the violation; may be null
message - - the message for the violation; may be null
Returns:
a new Violation object


createViolation

@Deprecated // should really supply an AST Node
protected Violation createViolation(Integer lineNumber, String message)
Create and return a new Violation for this rule and the specified values
Parameters:
lineNumber - - the line number for the violation; may be null
Returns:
a new Violation object


createViolation

@Deprecated
protected Violation createViolation(Integer lineNumber)
Create and return a new Violation for this rule and the specified values
Parameters:
lineNumber - - the line number for the violation; may be null
Returns:
a new Violation object


createViolation

protected Violation createViolation(SourceCode sourceCode, org.codehaus.groovy.ast.ASTNode node, String message)
Create a new Violation for the AST node.
Parameters:
sourceCode - - the SourceCode
node - - the Groovy AST Node
message - - the message for the violation; defaults to null


createViolation

@Deprecated // should really supply a message
protected Violation createViolation(SourceCode sourceCode, org.codehaus.groovy.ast.ASTNode node)
Create a new Violation for the AST node.
Parameters:
sourceCode - - the SourceCode
node - - the Groovy AST Node


createViolationForImport

protected Violation createViolationForImport(SourceCode sourceCode, org.codehaus.groovy.ast.ImportNode importNode, String message)
Create and return a new Violation for this rule and the specified import
Parameters:
sourceCode - - the SourceCode
importNode - - the ImportNode for the import triggering the violation
Returns:
a new Violation object


createViolationForImport

@Deprecated // should really supply a message
protected Violation createViolationForImport(SourceCode sourceCode, org.codehaus.groovy.ast.ImportNode importNode)
Create and return a new Violation for this rule and the specified import
Parameters:
sourceCode - - the SourceCode
importNode - - the ImportNode for the import triggering the violation
Returns:
a new Violation object


createViolationForImport

protected Violation createViolationForImport(SourceCode sourceCode, String className, String alias, String violationMessage)
Create and return a new Violation for this rule and the specified import className and alias
Parameters:
sourceCode - - the SourceCode
className - - the class name (as specified within the import statement)
alias - - the alias for the import statement
violationMessage - - the violation message; may be null
Returns:
a new Violation object


getApplyToFileNames

public String getApplyToFileNames()


getApplyToFilesMatching

public String getApplyToFilesMatching()


getDescription

public String getDescription()


getDoNotApplyToFileNames

public String getDoNotApplyToFileNames()


getDoNotApplyToFilesMatching

public String getDoNotApplyToFilesMatching()


getName

public String getName()
Returns:
the unique name for this rule


getPriority

public int getPriority()
Returns:
the priority of this rule, between 1 (highest priority) and 3 (lowest priority), inclusive.


getViolationMessage

public String getViolationMessage()


isEnabled

public boolean isEnabled()


isReady

public boolean isReady()
Allows rules to check whether preconditions are satisfied and short-circuit execution (i.e., do nothing) if those preconditions are not satisfied. Return true by default. This method is provided as a placeholder so subclasses can optionally override.
Returns:
true if all preconditions for this rule are satisfied


setApplyToFileNames

public void setApplyToFileNames(String applyToFileNames)


setApplyToFilesMatching

public void setApplyToFilesMatching(String applyToFilesMatching)


setDescription

public void setDescription(String description)


setDoNotApplyToFileNames

public void setDoNotApplyToFileNames(String doNotApplyToFileNames)


setDoNotApplyToFilesMatching

public void setDoNotApplyToFilesMatching(String doNotApplyToFilesMatching)


setEnabled

public void setEnabled(boolean enabled)


setName

public void setName(String name)
Set the unique name for this rule
Parameters:
name - - the name for this rule; this should be unique


setPriority

public void setPriority(int priority)
Set the priority for this rule
Parameters:
priority - - the priority of this rule, between 1 (highest priority) and 3 (lowest priority), inclusive.


setViolationMessage

public void setViolationMessage(String violationMessage)


toString

public String toString()


validate

public void validate()
Allows rules to perform validation. Do nothing by default. This method is provided as a placeholder so subclasses can optionally override. Subclasses will typically use assert calls to verify required preconditions.


 

Groovy Documentation