Class NoWhitespaceBeforeCaseDefaultColonCheck

All Implemented Interfaces:
Configurable, Contextualizable

public class NoWhitespaceBeforeCaseDefaultColonCheck extends AbstractCheck

Checks that there is no whitespace before the colon in a switch block.

To configure the check:

 <module name="NoWhitespaceBeforeCaseDefaultColon"/>
 

Example:

 class Test {
   {
     switch(1) {
         case 1 : // violation, whitespace before ':' is not allowed here
             break;
         case 2: // ok
             break;
         default : // violation, whitespace before ':' is not allowed here
             break;
     }

     switch(2) {
         case 2: // ok
             break;
         case 3, 4
                  : break; // violation, whitespace before ':' is not allowed here
         case 4,
               5: break; // ok
         default
               : // violation, whitespace before ':' is not allowed here
             break;
     }

     switch(day) {
         case MONDAY, FRIDAY, SUNDAY: System.out.println("  6"); break;
         case TUESDAY               : System.out.println("  7"); break; // violation
   }
 }
 

Parent is com.puppycrawl.tools.checkstyle.TreeWalker

Violation Message Keys:

  • ws.preceded
Since:
8.45
  • Field Details

    • MSG_KEY

      public static final String MSG_KEY
      A key is pointing to the warning message text in "messages.properties" file.
      See Also:
  • Constructor Details

    • NoWhitespaceBeforeCaseDefaultColonCheck

      public NoWhitespaceBeforeCaseDefaultColonCheck()
  • Method Details

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

      public boolean isCommentNodesRequired()
      Description copied from class: AbstractCheck
      Whether comment nodes are required or not.
      Overrides:
      isCommentNodesRequired in class AbstractCheck
      Returns:
      false as a default value.
    • 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
    • isInSwitch

      private static boolean isInSwitch(DetailAST colonAst)
      Checks if the colon is inside a switch block.
      Parameters:
      colonAst - DetailAST to check.
      Returns:
      true, if colon case is inside a switch block.
    • isWhiteSpaceBeforeColon

      private static boolean isWhiteSpaceBeforeColon(DetailAST colonAst)
      Checks if there is a whitespace before the colon of a switch case or switch default.
      Parameters:
      colonAst - DetailAST to check.
      Returns:
      true, if there is whitespace preceding colonAst.
    • isWhitespaceBeforeColonOfCase

      private static boolean isWhitespaceBeforeColonOfCase(DetailAST colonAst)
      Checks if there is a whitespace before the colon of a switch case.
      Parameters:
      colonAst - DetailAST to check.
      Returns:
      true, if there is whitespace preceding colonAst.
    • isWhitespaceBeforeColonOfDefault

      private static boolean isWhitespaceBeforeColonOfDefault(DetailAST colonAst)
      Checks if there is a whitespace before the colon of a switch default.
      Parameters:
      colonAst - DetailAST to check.
      Returns:
      true, if there is whitespace preceding colonAst.
    • isOnDifferentLineWithPreviousToken

      private static boolean isOnDifferentLineWithPreviousToken(DetailAST colonAst)
      Checks if the colon is on same line as of case or default.
      Parameters:
      colonAst - DetailAST to check.
      Returns:
      true, if colon case is in different line as of case or default.
    • getLastColumnNumberOf

      private static int getLastColumnNumberOf(DetailAST ast)
      Returns the last column number of an ast.
      Parameters:
      ast - DetailAST to check.
      Returns:
      ast's last column number.