Package org.flywaydb.core.api.callback

## Interface Callback

- All Known Implementing Classes:
    `BaseCallback`

      public interface Callback

  This is the main callback interface that should be implemented to handle Flyway lifecycle events.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | `canHandleInTransaction​(Event event, Context context)` | Whether this event can be handled in a transaction or whether it must be handled outside a transaction instead.
    `java.lang.String` | `getCallbackName()` | The callback name, Flyway will use this to sort the callbacks alphabetically before executing them
    `void` | `handle​(Event event, Context context)` | Handles this Flyway lifecycle event.
    `boolean` | `supports​(Event event, Context context)` | Whether this callback supports this event or not.

- - ### Method Detail

    - #### supports

          boolean supports​(Event event,
                           Context context)

      Whether this callback supports this event or not. This is primarily meant as a way to optimize event handling by avoiding unnecessary connection state setups for events that will not be handled anyway.
      Parameters:
        `event` - The event to check.
        `context` - The context for this event.
      Returns:
        `true` if it can be handled, `false` if not.

    - #### canHandleInTransaction

          boolean canHandleInTransaction​(Event event,
                                         Context context)

      Whether this event can be handled in a transaction or whether it must be handled outside a transaction instead. In the vast majority of the cases the answer will be `true`. Only in the rare cases where non-transactional statements are executed should this return `false`. This method is called before `handle(Event, Context)` in order to determine in advance whether a transaction can be used or not.
      Parameters:
        `event` - The event to check.
        `context` - The context for this event.
      Returns:
        `true` if it can be handled within a transaction (almost all cases). `false` if it must be handled outside a transaction instead (very rare).

    - #### handle

          void handle​(Event event,
                      Context context)

      Handles this Flyway lifecycle event.
      Parameters:
        `event` - The event to handle.
        `context` - The context for this event.

    - #### getCallbackName

          java.lang.String getCallbackName()

      The callback name, Flyway will use this to sort the callbacks alphabetically before executing them
      Returns:
        The callback name