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()`