Class OperatorWrapCheck

All Implemented Interfaces:
Configurable, Contextualizable

public class OperatorWrapCheck extends AbstractCheck
Checks the policy on how to wrap lines on operators.

See the Java Language Specification for more information about instanceof operator.

Parent is com.puppycrawl.tools.checkstyle.TreeWalker

Violation Message Keys:

  • line.new
  • line.previous
Since:
3.0
  • Field Details

  • Constructor Details

  • Method Details

    • setOption

      public void setOption(String optionStr)
      Setter to specify policy on how to wrap lines.
      Parameters:
      optionStr - string to decode option from
      Throws:
      IllegalArgumentException - if unable to decode
      Since:
      3.0
    • 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:
    • 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
    • isTargetNode

      private static boolean isTargetNode(DetailAST node)
      Filters some false tokens that this check should ignore.
      Parameters:
      node - the node to check
      Returns:
      true for all nodes this check should validate
    • isNewLineModeViolation

      private static boolean isNewLineModeViolation(DetailAST ast)
      Checks whether operator violates WrapOption.NL mode.
      Parameters:
      ast - the DetailAst of an operator
      Returns:
      true if mode does not match
    • isEndOfLineModeViolation

      private static boolean isEndOfLineModeViolation(DetailAST ast)
      Checks whether operator violates WrapOption.EOL mode.
      Parameters:
      ast - the DetailAst of an operator
      Returns:
      true if mode does not match
    • isColonFromLabel

      private static boolean isColonFromLabel(DetailAST node)
      Checks if a node is TokenTypes.COLON from a label, switch case of default.
      Parameters:
      node - the node to check
      Returns:
      true if node matches
    • isAssignToVariable

      private static boolean isAssignToVariable(DetailAST node)
      Checks if a node is TokenTypes.ASSIGN to a variable or resource.
      Parameters:
      node - the node to check
      Returns:
      true if node matches
    • getLeftNode

      private static DetailAST getLeftNode(DetailAST node)
      Returns the left neighbour of a binary operator. This is the rightmost grandchild of the left child or sibling. For the assign operator the return value is the variable name.
      Parameters:
      node - the binary operator
      Returns:
      nearest node from left
    • isInPatternDefinition

      private static boolean isInPatternDefinition(DetailAST node)
      Ascends AST to determine if given node is part of a pattern definition.
      Parameters:
      node - the node to check
      Returns:
      true if node is in pattern definition
    • getRightNode

      private static DetailAST getRightNode(DetailAST node)
      Returns the right neighbour of a binary operator. This is the leftmost grandchild of the right child or sibling. For the ternary operator this is the node between ? and : .
      Parameters:
      node - the binary operator
      Returns:
      nearest node from right
    • adjustParens

      private static DetailAST adjustParens(DetailAST node, UnaryOperator<DetailAST> step)
      Finds matching parentheses among siblings. If the given node is not TokenTypes.LPAREN nor TokenTypes.RPAREN, the method adjusts nothing. This method is for handling case like (condition && (condition || condition2 || condition3) && condition4 && condition3)
      Parameters:
      node - the node to adjust
      step - the node transformer, should be DetailAST.getPreviousSibling() or DetailAST.getNextSibling()
      Returns:
      adjusted node