Class AbstractClassCouplingCheck

All Implemented Interfaces:
Configurable, Contextualizable
Direct Known Subclasses:
ClassDataAbstractionCouplingCheck, ClassFanOutComplexityCheck

public abstract class AbstractClassCouplingCheck extends AbstractCheck
Base class for coupling calculation.
  • Field Details

    • DOT

      private static final String DOT
      A package separator - "."
      See Also:
    • DEFAULT_EXCLUDED_CLASSES

      private static final Set<String> DEFAULT_EXCLUDED_CLASSES
      Class names to ignore.
    • DEFAULT_EXCLUDED_PACKAGES

      private static final Set<String> DEFAULT_EXCLUDED_PACKAGES
      Package names to ignore.
    • BRACKET_PATTERN

      private static final Pattern BRACKET_PATTERN
      Pattern to match brackets in a full type name.
    • excludeClassesRegexps

      private final List<Pattern> excludeClassesRegexps
      Specify user-configured regular expressions to ignore classes.
    • importedClassPackages

      private final Map<String,String> importedClassPackages
      A map of (imported class name -> class name with package) pairs.
    • classesContexts

      private final Deque<AbstractClassCouplingCheck.ClassContext> classesContexts
      Stack of class contexts.
    • excludedClasses

      private Set<String> excludedClasses
      Specify user-configured class names to ignore.
    • excludedPackages

      private Set<String> excludedPackages
      Specify user-configured packages to ignore. All excluded packages should end with a period, so it also appends a dot to a package name.
    • max

      private int max
      Specify the maximum threshold allowed.
    • packageName

      private String packageName
      Current file package.
  • Constructor Details

    • AbstractClassCouplingCheck

      protected AbstractClassCouplingCheck(int defaultMax)
      Creates new instance of the check.
      Parameters:
      defaultMax - default value for allowed complexity.
  • Method Details

    • getLogMessageId

      protected abstract String getLogMessageId()
      Returns message key we use for log violations.
      Returns:
      message key we use for log violations.
    • getDefaultTokens

      public final int[] getDefaultTokens()
      Description copied from class: AbstractCheck
      Returns the default token a check is interested in. Only used if the configuration for a check does not define the tokens.
      Specified by:
      getDefaultTokens in class AbstractCheck
      Returns:
      the default tokens
      See Also:
    • setMax

      public final void setMax(int max)
      Setter to specify the maximum threshold allowed.
      Parameters:
      max - allowed complexity.
    • setExcludedClasses

      public final void setExcludedClasses(String... excludedClasses)
      Setter to specify user-configured class names to ignore.
      Parameters:
      excludedClasses - the list of classes to ignore.
    • setExcludeClassesRegexps

      public void setExcludeClassesRegexps(String... from)
      Setter to specify user-configured regular expressions to ignore classes.
      Parameters:
      from - array representing regular expressions of classes to ignore.
    • setExcludedPackages

      public final void setExcludedPackages(String... excludedPackages)
      Setter to specify user-configured packages to ignore. All excluded packages should end with a period, so it also appends a dot to a package name.
      Parameters:
      excludedPackages - the list of packages to ignore.
      Throws:
      IllegalArgumentException - if there are invalid identifiers among the packages.
    • beginTree

      public final void beginTree(DetailAST ast)
      Description copied from class: AbstractCheck
      Called before the starting to process a tree. Ideal place to initialize information that is to be collected whilst processing a tree.
      Overrides:
      beginTree in class AbstractCheck
      Parameters:
      ast - the root of the tree
    • visitToken

      public void visitToken(DetailAST ast)
      Description copied from class: AbstractCheck
      Called to process a token.
      Overrides:
      visitToken in class AbstractCheck
      Parameters:
      ast - the token to process
    • leaveToken

      public void leaveToken(DetailAST ast)
      Description copied from class: AbstractCheck
      Called after all the child nodes have been process.
      Overrides:
      leaveToken in class AbstractCheck
      Parameters:
      ast - the token leaving
    • visitPackageDef

      private void visitPackageDef(DetailAST pkg)
      Stores package of current class we check.
      Parameters:
      pkg - package definition.
    • visitClassDef

      private void visitClassDef(DetailAST classDef)
      Creates new context for a given class.
      Parameters:
      classDef - class definition node.
    • leaveClassDef

      private void leaveClassDef()
      Restores previous context.
    • registerImport

      private void registerImport(DetailAST imp)
      Registers given import. This allows us to track imported classes.
      Parameters:
      imp - import definition.
    • createNewClassContext

      private void createNewClassContext(String className, DetailAST ast)
      Creates new inner class context with given name and location.
      Parameters:
      className - The class name.
      ast - The class ast.
    • checkCurrentClassAndRestorePrevious

      private void checkCurrentClassAndRestorePrevious()
      Restores previous context.
    • visitType

      private void visitType(DetailAST ast)
      Visits type token for the current class context.
      Parameters:
      ast - TYPE token.
    • visitLiteralNew

      private void visitLiteralNew(DetailAST ast)
      Visits NEW token for the current class context.
      Parameters:
      ast - NEW token.
    • visitLiteralThrows

      private void visitLiteralThrows(DetailAST ast)
      Visits THROWS token for the current class context.
      Parameters:
      ast - THROWS token.
    • visitAnnotationType

      private void visitAnnotationType(DetailAST annotationAST)
      Visit ANNOTATION literal and get its type to referenced classes of context.
      Parameters:
      annotationAST - Annotation ast.