Class AbstractRule

    • Constructor Detail

      • AbstractRule

        public AbstractRule()
    • Method Detail

      • getName

        public abstract String getName()
        Specified by:
        getName in interface Rule
        Returns:
        the unique name for this rule
      • setName

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

        public abstract int getPriority()
        Specified by:
        getPriority in interface Rule
        Returns:
        the priority of this rule, between 1 (highest priority) and 3 (lowest priority), inclusive.
      • setPriority

        public abstract 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.
      • applyTo

        public abstract void applyTo​(SourceCode sourceCode,
                                     List<Violation> 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<Violation> applyTo​(SourceCode sourceCode)
                                throws Throwable
        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.
        Specified by:
        applyTo in interface Rule
        Parameters:
        sourceCode - - the source to apply this rule to
        Returns:
        the List of violations; may be empty
        Throws:
        Throwable - could throw anything
      • 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
      • 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.
      • 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

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

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

        public boolean isEnabled()
      • setEnabled

        public void setEnabled​(boolean enabled)
      • getApplyToFilesMatching

        public String getApplyToFilesMatching()
      • setApplyToFilesMatching

        public void setApplyToFilesMatching​(String applyToFilesMatching)
      • getDoNotApplyToFilesMatching

        public String getDoNotApplyToFilesMatching()
      • setDoNotApplyToFilesMatching

        public void setDoNotApplyToFilesMatching​(String doNotApplyToFilesMatching)
      • getApplyToFileNames

        public String getApplyToFileNames()
      • setApplyToFileNames

        public void setApplyToFileNames​(String applyToFileNames)
      • getDoNotApplyToFileNames

        public String getDoNotApplyToFileNames()
      • setDoNotApplyToFileNames

        public void setDoNotApplyToFileNames​(String doNotApplyToFileNames)
      • getViolationMessage

        public String getViolationMessage()
      • setViolationMessage

        public void setViolationMessage​(String violationMessage)
      • getDescription

        public String getDescription()
      • setDescription

        public void setDescription​(String description)