Interface HandleSupplier

All Superinterfaces:
Configurable<HandleSupplier>

public interface HandleSupplier extends Configurable<HandleSupplier>
A handle supplier for extension implementors.
  • Method Details

    • getHandle

      Handle getHandle()
      Returns a handle, possibly creating it lazily. A Handle holds a database connection, so extensions should only call this method in order to interact with the database.
      Returns:
      an open Handle
    • getJdbi

      Jdbi getJdbi()
      Returns the owning Jdbi instance.
      Returns:
      the owning Jdbi instance.
    • invokeInContext

      @Deprecated <V> V invokeInContext(ExtensionMethod extensionMethod, ConfigRegistry config, Callable<V> task) throws Exception
      Deprecated.
      New code should implement the invokeInContext(ExtensionContext, Callable) method and use this as a retrofit.
      Bind an extension method and configuration registry to the Handle, invoke the given task, then reset the Handle's extension state. Note that the binding is done by a thread local, so the binding will not propagate to other threads you may call out to.
      Type Parameters:
      V - the result type of the task
      Parameters:
      extensionMethod - the method invoked
      config - the configuration registry
      task - the code to execute in an extension context
      Returns:
      the callable's result
      Throws:
      Exception - if any exception is thrown
      See Also:
    • invokeInContext

      default <V> V invokeInContext(ExtensionContext extensionContext, Callable<V> task) throws Exception
      Bind a new ExtensionContext to the Handle, invoke the given task, then restore the Handle's extension state.
      Type Parameters:
      V - the result type of the task
      Parameters:
      extensionContext - An ExtensionContext object that manages the extension state.
      task - the code to execute in an extension context
      Returns:
      the callable's result
      Throws:
      Exception - if any exception is thrown