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

      • 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:
        TokenTypes
      • 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.