Class AbstractClassNameCheck

All Implemented Interfaces:
Configurable, Contextualizable

public final class AbstractClassNameCheck extends AbstractCheck
Ensures that the names of abstract classes conforming to some pattern and check that abstract modifier exists.

Rationale: Abstract classes are convenience base class implementations of interfaces. For this reason, it should be made obvious that a given class is abstract by prefacing the class name with 'Abstract'.

  • Property format - Specify valid identifiers. Type is java.util.regex.Pattern. Default value is "^Abstract.+$".
  • Property ignoreModifier - Control whether to ignore checking for the abstract modifier on classes that match the name. Type is boolean. Default value is false.
  • Property ignoreName - Control whether to ignore checking the name. Realistically only useful if using the check to identify that match name and do not have the abstract modifier. Type is boolean. Default value is false.

Parent is com.puppycrawl.tools.checkstyle.TreeWalker

Violation Message Keys:

  • illegal.abstract.class.name
  • no.abstract.class.modifier
Since:
3.2
  • Field Details

    • MSG_ILLEGAL_ABSTRACT_CLASS_NAME

      A key is pointing to the warning message text in "messages.properties" file.
      See Also:
    • MSG_NO_ABSTRACT_CLASS_MODIFIER

      A key is pointing to the warning message text in "messages.properties" file.
      See Also:
    • ignoreModifier

      private boolean ignoreModifier
      Control whether to ignore checking for the abstract modifier on classes that match the name.
    • ignoreName

      private boolean ignoreName
      Control whether to ignore checking the name. Realistically only useful if using the check to identify that match name and do not have the abstract modifier.
    • format

      private Pattern format
      Specify valid identifiers.
  • Constructor Details

  • Method Details

    • setIgnoreModifier

      public void setIgnoreModifier(boolean value)
      Setter to control whether to ignore checking for the abstract modifier on classes that match the name.
      Parameters:
      value - new value
      Since:
      5.3
    • setIgnoreName

      public void setIgnoreName(boolean value)
      Setter to control whether to ignore checking the name. Realistically only useful if using the check to identify that match name and do not have the abstract modifier.
      Parameters:
      value - new value.
      Since:
      5.3
    • setFormat

      public void setFormat(Pattern pattern)
      Setter to specify valid identifiers.
      Parameters:
      pattern - the new pattern
      Since:
      3.2
    • getDefaultTokens

      public 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:
    • getRequiredTokens

      public int[] getRequiredTokens()
      Description copied from class: AbstractCheck
      The tokens that this check must be registered for.
      Specified by:
      getRequiredTokens in class AbstractCheck
      Returns:
      the token set this must be registered for.
      See Also:
    • getAcceptableTokens

      public int[] getAcceptableTokens()
      Description copied from class: AbstractCheck
      The configurable token set. Used to protect Checks against malicious users who specify an unacceptable token set in the configuration file. The default implementation returns the check's default tokens.
      Specified by:
      getAcceptableTokens in class AbstractCheck
      Returns:
      the token set this check is designed for.
      See Also:
    • 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
    • visitClassDef

      private void visitClassDef(DetailAST ast)
      Checks class definition.
      Parameters:
      ast - class definition for check.
    • isAbstract

      private static boolean isAbstract(DetailAST ast)
      Checks if declared class is abstract or not.
      Parameters:
      ast - class definition for check.
      Returns:
      true if a given class declared as abstract.
    • isMatchingClassName

      private boolean isMatchingClassName(String className)
      Returns true if class name matches format of abstract class names.
      Parameters:
      className - class name for check.
      Returns:
      true if class name matches format of abstract class names.