Module org.firebirdsql.jaybird
Package org.firebirdsql.jaybird.props.spi

# Interface ConnectionPropertyDefinerSpi

public interface ConnectionPropertyDefinerSpi
Service provider interface to define connection properties in Jaybird.

These properties are loaded through `ServiceLoader`. The library or user code that wants to expose additional connection properties to Jaybird should define the implementation class(es) of this interface in `META-INF/services/org.firebirdsql.jaybird.props.spi.ConnectionPropertyDefinerSpi`. This should be located in the same class path or class loader as Jaybird.

Since:
  5
Author:
  Mark Rotteveel

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Stream<ConnectionProperty>`
  `defineProperties()`
  Defines the connection properties to add to Jaybird.
  `void`
  `notRegistered(ConnectionProperty connectionProperty)`
  Callback method to inform the definer that a property has not been added to the collection of properties known to Jaybird.

- ## Method Details

  - ### defineProperties

    Stream<ConnectionProperty> defineProperties()
    Defines the connection properties to add to Jaybird.

    If the property name (`ConnectionProperty.name()`), one of the aliases (`ConnectionProperty.aliases()`), the non-default `ConnectionProperty.dpbItem()` or non-default `ConnectionProperty.spbItem()` is already defined, the property will be skipped entirely. This will be logged, but will not produce an error, instead the method `notRegistered(ConnectionProperty)` will be called for that property. This does not apply to properties where `ConnectionProperty.isIdenticalTo(ConnectionProperty)` returns true for the existing property.

    Returns:
      stream of properties to define

  - ### notRegistered

    void notRegistered(ConnectionProperty connectionProperty)
    Callback method to inform the definer that a property has not been added to the collection of properties known to Jaybird.
    Parameters:
      `connectionProperty` - connection property that was not registered
    See Also:
      - `defineProperties()`