Interface Token


  • @InternalApi
    public interface Token
    A token is an individual element of a SQL statement.

    The available implementations of Token are primarily guided by the implementation of the tokenization and the needs of the parser and included visitors. It does not distinguish all types of tokens. For example there is QuotedIdentifierToken because the tokenization needs handling for quoted identifiers, while a normal identifier is a GenericToken, because that is handled by the fallback tokenization after checking for all other types. On the other hand, open and close curly braces, square brackets and parentheses each have their own type, as the parser may need this to find nested contexts.

    Since:
    4.0.8
    Author:
    Mark Rotteveel
    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      void appendTo​(java.lang.StringBuilder sb)
      Appends the current token to the supplied String builder.
      boolean equalsIgnoreCase​(java.lang.String tokenText)
      Case-insensitive equality of this tokens text using an equivalent of String.equalsIgnoreCase(String).
      boolean isValidIdentifier()
      Detects if the token is valid as an identifier (ignoring length constraints).
      boolean isWhitespaceOrComment()  
      int length()
      Token text length.
      int position()
      Token position.
      java.lang.String text()
      Token text.
      java.lang.CharSequence textAsCharSequence()
      Token text as CharSequence.
    • Method Detail

      • text

        java.lang.String text()
        Token text.
        Returns:
        the text of the token; this is the original text from the source
        See Also:
        textAsCharSequence()
      • textAsCharSequence

        java.lang.CharSequence textAsCharSequence()
        Token text as CharSequence.

        An basic implementation should return text(). As an optimization, implementations may return their contained CharSequence to avoid unnecessary conversion to string.

        Returns:
        the text of the token; this is the original text from the source
        See Also:
        text()
      • appendTo

        void appendTo​(java.lang.StringBuilder sb)
        Appends the current token to the supplied String builder.

        A basic implementation should do sb.append(text()) or sb.append(textAsCharSequence()).

        Parameters:
        sb - String builder to append to
      • position

        int position()
        Token position.
        Returns:
        0-based position of the occurrence of this token in the source (the first character)
      • length

        int length()
        Token text length.
        Returns:
        Length of the token text
      • isWhitespaceOrComment

        boolean isWhitespaceOrComment()
        Returns:
        true if this token is whitespace or a comment, false for all other tokens
      • equalsIgnoreCase

        boolean equalsIgnoreCase​(java.lang.String tokenText)
        Case-insensitive equality of this tokens text using an equivalent of String.equalsIgnoreCase(String).

        A basic implementation should do text().equalsIgnoreCase(tokenText).

        Parameters:
        tokenText - Token text to compare
        Returns:
        true if tokenText is equal - ignoring case - to the text of this token, false otherwise
      • isValidIdentifier

        boolean isValidIdentifier()
        Detects if the token is valid as an identifier (ignoring length constraints).

        This will always return false for ReservedToken or other specialised tokens (e.g. OperatorToken with IS or LIKE) that can't occur as an identifier.

        Returns:
        true if the token is valid as an identifier, false otherwise