Module org.jooq
Package org.jooq

Interface ParseListener

  • All Superinterfaces:
    EventListener
    All Known Implementing Classes:
    CallbackParseListener, DefaultParseListener

    @Pro
    public interface ParseListener
    extends EventListener
    A listener that allows for parsing custom SQL.

    This listener will be called when syntactic context allows for specific types of objects to be parsed. Implementations must return null if they are unable to parse anything at the given location, in case of which default parser behaviour will apply.

    Author:
    Lukas Eder
    • Method Detail

      • parseField

        @Nullable
        @Nullable Field<?> parseField​(ParseContext ctx)
                               throws ParserException
        Attempt to parse a Field expression.

        This parses a "term", meaning the callback does not interfere with any operators or operator precedence, but will be called only when a field term can appear. For example, with input SQL like A + B, the callback is called at the positions of A and B. Client code does not have to (and should not) handle the + operator, or its precedence.

        Returns:
        The Field expression if a field could be parsed, or null otherwise.
        Throws:
        ParserException - Any syntax error or other exception that may have occurred while attempting to parse a Field expression.
      • parseTable

        @Nullable
        @Nullable Table<?> parseTable​(ParseContext ctx)
                               throws ParserException
        Attempt to parse a Table expression.

        This parses a "table factor", meaning the callback does not interfere with any operators or operator precedence, but will be called only when a condition term can appear. For example, with input SQL like A join B, the callback is called at the positions of A and B. Client code does not have to (and should not) handle the join operator, or its precedence.

        Returns:
        The Table expression if a table could be parsed, or null otherwise.
        Throws:
        ParserException - Any syntax error or other exception that may have occurred while attempting to parse a Table expression.
      • parseCondition

        @Nullable
        @Nullable Condition parseCondition​(ParseContext ctx)
                                    throws ParserException
        Attempt to parse a Condition expression.

        This parses a "predicate", meaning the callback does not interfere with any operators or operator precedence, but will be called only when a condition term can appear. For example, with input SQL like A or B, the callback is called at the positions of A and B. Client code does not have to (and should not) handle the or operator, or its precedence.

        Returns:
        The Condition expression if a condition could be parsed, or null otherwise.
        Throws:
        ParserException - Any syntax error or other exception that may have occurred while attempting to parse a Condition expression.