Class DetailAstImpl

java.lang.Object
com.puppycrawl.tools.checkstyle.DetailAstImpl
All Implemented Interfaces:
DetailAST

public final class DetailAstImpl extends Object implements DetailAST
The implementation of DetailAST. This should only be directly used to create custom AST nodes and in 'JavaAstVisitor.java'.
  • Field Details

    • NOT_INITIALIZED

      private static final int NOT_INITIALIZED
      Constant to indicate if not calculated the child count.
      See Also:
    • lineNo

      private int lineNo
      The line number.
    • columnNo

      private int columnNo
      The column number.
    • childCount

      private int childCount
      Number of children.
    • parent

      The parent token.
    • previousSibling

      Previous sibling.
    • firstChild

      First child of this DetailAST.
    • nextSibling

      First sibling of this DetailAST.
    • text

      private String text
      Text of this DetailAST.
    • type

      private int type
      The type of this DetailAST.
    • hiddenBefore

      private List<org.antlr.v4.runtime.Token> hiddenBefore
      All tokens on COMMENTS channel to the left of the current token up to the preceding token on the DEFAULT_TOKEN_CHANNEL.
    • hiddenAfter

      private List<org.antlr.v4.runtime.Token> hiddenAfter
      All tokens on COMMENTS channel to the right of the current token up to the next token on the DEFAULT_TOKEN_CHANNEL.
    • branchTokenTypes

      All token types in this branch. Token 'x' (where x is an int) is in this branch if branchTokenTypes.get(x) is true.
  • Constructor Details

  • Method Details

    • initialize

      public void initialize(int tokenType, String tokenText)
      Initializes this DetailAstImpl.
      Parameters:
      tokenType - the type of this DetailAstImpl
      tokenText - the text of this DetailAstImpl
    • initialize

      public void initialize(org.antlr.v4.runtime.Token token)
      Initializes this DetailAstImpl.
      Parameters:
      token - the token to generate this DetailAstImpl from
    • addPreviousSibling

      public void addPreviousSibling(DetailAST ast)
      Add previous sibling.
      Parameters:
      ast - DetailAST object.
    • addNextSibling

      public void addNextSibling(DetailAST ast)
      Add next sibling, pushes other siblings back.
      Parameters:
      ast - DetailAST object.
    • addChild

      public void addChild(DetailAST child)
      Adds a new child to the current AST.
      Parameters:
      child - to DetailAST to add as child
    • getChildCount

      public int getChildCount()
      Description copied from interface: DetailAST
      Returns the number of child nodes one level below this node. That is, does not recurse down the tree.
      Specified by:
      getChildCount in interface DetailAST
      Returns:
      the number of child nodes
    • getChildCount

      public int getChildCount(int tokenType)
      Description copied from interface: DetailAST
      Returns the number of direct child tokens that have the specified type.
      Specified by:
      getChildCount in interface DetailAST
      Parameters:
      tokenType - the token type to match
      Returns:
      the number of matching token
    • setParent

      private void setParent(DetailAstImpl parent)
      Set the parent token.
      Parameters:
      parent - the parent token
    • getParent

      public DetailAST getParent()
      Description copied from interface: DetailAST
      Returns the parent token.
      Specified by:
      getParent in interface DetailAST
      Returns:
      the parent token
    • getText

      public String getText()
      Description copied from interface: DetailAST
      Gets the text of this AST.
      Specified by:
      getText in interface DetailAST
      Returns:
      the text.
    • setText

      public void setText(String text)
      Sets the text for this DetailAstImpl.
      Parameters:
      text - the text field of this DetailAstImpl
    • getType

      public int getType()
      Description copied from interface: DetailAST
      Gets the type of this AST.
      Specified by:
      getType in interface DetailAST
      Returns:
      the type.
    • setType

      public void setType(int type)
      Sets the type of this AST.
      Parameters:
      type - the token type of this DetailAstImpl
    • getLineNo

      public int getLineNo()
      Description copied from interface: DetailAST
      Gets line number.
      Specified by:
      getLineNo in interface DetailAST
      Returns:
      the line number
    • setLineNo

      public void setLineNo(int lineNo)
      Set line number.
      Parameters:
      lineNo - line number.
    • getColumnNo

      public int getColumnNo()
      Description copied from interface: DetailAST
      Gets column number.
      Specified by:
      getColumnNo in interface DetailAST
      Returns:
      the column number
    • setColumnNo

      public void setColumnNo(int columnNo)
      Set column number.
      Parameters:
      columnNo - column number.
    • getLastChild

      Description copied from interface: DetailAST
      Gets the last child node.
      Specified by:
      getLastChild in interface DetailAST
      Returns:
      the last child node
    • findColumnNo

      private static int findColumnNo(DetailAST ast)
      Finds column number in the first non-comment node.
      Parameters:
      ast - DetailAST node.
      Returns:
      Column number if non-comment node exists, -1 otherwise.
    • findLineNo

      private static int findLineNo(DetailAST ast)
      Finds line number in the first non-comment node.
      Parameters:
      ast - DetailAST node.
      Returns:
      Line number if non-comment node exists, -1 otherwise.
    • getBranchTokenTypes

      Returns token type with branch.
      Returns:
      the token types that occur in the branch as a sorted set.
    • branchContains

      public boolean branchContains(int tokenType)
      Description copied from interface: DetailAST
      Checks if this branch of the parse tree contains a token of the provided type.
      Specified by:
      branchContains in interface DetailAST
      Parameters:
      tokenType - a TokenType
      Returns:
      true if and only if this branch (including this node) contains a token of type type.
    • getPreviousSibling

      Description copied from interface: DetailAST
      Returns the previous sibling or null if no such sibling exists.
      Specified by:
      getPreviousSibling in interface DetailAST
      Returns:
      the previous sibling or null if no such sibling exists.
    • findFirstToken

      public DetailAST findFirstToken(int tokenType)
      Description copied from interface: DetailAST
      Returns the first child token that makes a specified type.
      Specified by:
      findFirstToken in interface DetailAST
      Parameters:
      tokenType - the token type to match
      Returns:
      the matching token, or null if no match
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • getNextSibling

      Description copied from interface: DetailAST
      Get the next sibling in line after this one.
      Specified by:
      getNextSibling in interface DetailAST
      Returns:
      the next sibling or null if none.
    • getFirstChild

      Description copied from interface: DetailAST
      Get the first child of this AST.
      Specified by:
      getFirstChild in interface DetailAST
      Returns:
      the first child or null if none.
    • getNumberOfChildren

      public int getNumberOfChildren()
      Description copied from interface: DetailAST
      Get number of children of this AST.
      Specified by:
      getNumberOfChildren in interface DetailAST
      Returns:
      the number of children.
    • hasChildren

      public boolean hasChildren()
      Description copied from interface: DetailAST
      Returns whether this AST has any children.
      Specified by:
      hasChildren in interface DetailAST
      Returns:
      true if this AST has any children.
    • clearChildCountCache

      private static void clearChildCountCache(DetailAstImpl ast)
      Clears the child count for the ast instance.
      Parameters:
      ast - The ast to clear.
    • clearBranchTokenTypes

      private void clearBranchTokenTypes()
      Clears branchTokenTypes cache for all parents of the current DetailAST instance, and the child count for the current DetailAST instance.
    • setNextSibling

      public void setNextSibling(DetailAST nextSibling)
      Sets the next sibling of this AST.
      Parameters:
      nextSibling - the DetailAST to set as sibling
    • setFirstChild

      public void setFirstChild(DetailAST firstChild)
      Sets the first child of this AST.
      Parameters:
      firstChild - the DetailAST to set as first child
    • removeChildren

      public void removeChildren()
      Removes all children of this AST.
    • getHiddenBefore

      public List<org.antlr.v4.runtime.Token> getHiddenBefore()
      Get list of tokens on COMMENTS channel to the left of the current token up to the preceding token on the DEFAULT_TOKEN_CHANNEL.
      Returns:
      list of comment tokens
    • getHiddenAfter

      public List<org.antlr.v4.runtime.Token> getHiddenAfter()
      Get list tokens on COMMENTS channel to the right of the current token up to the next token on the DEFAULT_TOKEN_CHANNEL.
      Returns:
      list of comment tokens
    • setHiddenBefore

      public void setHiddenBefore(List<org.antlr.v4.runtime.Token> hiddenBefore)
      Sets the hiddenBefore token field.
      Parameters:
      hiddenBefore - comment token preceding this DetailAstImpl
    • setHiddenAfter

      public void setHiddenAfter(List<org.antlr.v4.runtime.Token> hiddenAfter)
      Sets the hiddenAfter token field.
      Parameters:
      hiddenAfter - comment token following this DetailAstImpl