Module org.jooq
Package org.jooq.impl

Class CallbackVisitListener

java.lang.Object
org.jooq.impl.CallbackVisitListener
All Implemented Interfaces:
EventListener, VisitListener

public final class CallbackVisitListener extends Object implements VisitListener
A VisitListener that allows for functional composition.

For example:


 VisitListener listener = VisitListener
   .onVisitStart(ctx -> something())
   .onVisitEnd(ctx -> something());
 
Author:
Lukas Eder
  • Constructor Details

    • CallbackVisitListener

      public CallbackVisitListener()
  • Method Details

    • clauseStart

      public final void clauseStart(VisitContext context)
      Description copied from interface: VisitListener
      Called before entering a
      invalid reference
      Clause
      .
      Specified by:
      clauseStart in interface VisitListener
      Parameters:
      context - The context containing information about the traversal.
      See Also:
      • invalid reference
        Context#start(Clause)
    • clauseEnd

      public final void clauseEnd(VisitContext context)
      Description copied from interface: VisitListener
      Called after leaving a
      invalid reference
      Clause
      .
      Specified by:
      clauseEnd in interface VisitListener
      Parameters:
      context - The context containing information about the traversal.
      See Also:
      • invalid reference
        Context#end(Clause)
    • visitStart

      public final void visitStart(VisitContext context)
      Description copied from interface: VisitListener
      Called before visiting a QueryPart.

      Certain VisitListener implementations may chose to replace the QueryPart contained in the argument VisitContext through VisitContext.queryPart(QueryPart). This can be used for many use-cases, for example to add a CHECK OPTION to an Oracle INSERT statement:

      
       -- Original query
       INSERT INTO book (id, author_id, title)
       VALUES (10, 15, '1984')
      
       -- Transformed query
       INSERT INTO (
         SELECT * FROM book
         WHERE author_id IN (1, 2, 3)
         WITH CHECK OPTION
       ) (id, author_id, title)
       VALUES (10, 15, '1984')
       
      The above SQL transformation allows to prevent inserting new books for authors other than those with author_id IN (1, 2, 3)
      Specified by:
      visitStart in interface VisitListener
      Parameters:
      context - The context containing information about the traversal.
      See Also:
    • visitEnd

      public final void visitEnd(VisitContext context)
      Description copied from interface: VisitListener
      Called after visiting a QueryPart.
      Specified by:
      visitEnd in interface VisitListener
      Parameters:
      context - The context containing information about the traversal.
      See Also:
    • onClauseStart

      public final CallbackVisitListener onClauseStart(Consumer<? super VisitContext> newOnClauseStart)
    • onClauseEnd

      public final CallbackVisitListener onClauseEnd(Consumer<? super VisitContext> newOnClauseEnd)
    • onVisitStart

      public final CallbackVisitListener onVisitStart(Consumer<? super VisitContext> newOnVisitStart)
    • onVisitEnd

      public final CallbackVisitListener onVisitEnd(Consumer<? super VisitContext> newOnVisitEnd)