Module org.firebirdsql.jaybird
Package org.firebirdsql.encodings

# Interface EncodingSet

All Known Implementing Classes:
  `DefaultEncodingSet`

public interface EncodingSet
`EncodingSet` is an interface for the purpose of loading `EncodingDefinition` mappings into Jaybird.

Jaybird uses the `ServiceLoader` mechanism to load the EncodingSet. An implementation must provide a no-arg constructor, and it must be listed in `META-INF/services/org.firebirdsql.encodings.EncodingSet`

Providing an EncodingSet in general is not necessary, as Jaybird provides a default. However if Jaybird does not include an encoding, or the current mapping from Firebird to Java (or reverse) doesn't match your requirements, then you can use this mechanism to override it.

The encoding information is only loaded once, so the definition will need to be available in the classpath of the class loader that initially loads and initializes Jaybird.

Since:
  3.0
Author:
  Mark Rotteveel

- ## Method Summary

  Modifier and Type
  Method
  Description
  `List<EncodingDefinition>`
  `getEncodings()`
  `int`
  `getPreferenceWeight()`
  Preference weight defines the loading order.

- ## Method Details

  - ### getPreferenceWeight

    int getPreferenceWeight()
    Preference weight defines the loading order.

    An `EncodingSet` with a higher number is processed before a lower number. The default preference weight used by `DefaultEncodingSet` in Jaybird is `0`. This means that if you want to override any default definition, you need a higher number, if you just want to specify additional mappings, you need to specify a lower number.

    Returns:
      Preference weight

  - ### getEncodings

    List<EncodingDefinition> getEncodings()
    Returns:
      List of `EncodingDefinition` implementations.