Interface CodecRegistry

All Superinterfaces:
CodecProvider

public interface CodecRegistry extends CodecProvider
A registry of Codec instances searchable by the class that the Codec can encode and decode.

While the CodecRegistry interface adds no stipulations to the general contract for the Object.equals, programmers who implement the CodecRegistry interface "directly" must exercise care if they choose to override the Object.equals. It is not necessary to do so, and the simplest course of action is to rely on Object's implementation, but the implementer may wish to implement a "value comparison" in place of the default "reference comparison."

As of the 4.0 release, this class extends the CodecProvider interface. This capability was introduced to enable nesting registries inside another registry.

Applications are encouraged to NOT implement this interface, but rather use the factory methods in CodecRegistries.

Since:
3.0
See Also:
  • Method Summary

    Modifier and Type
    Method
    Description
    <T> Codec<T>
    get(Class<T> clazz)
    Gets a Codec for the given Class.
    default <T> Codec<T>
    get(Class<T> clazz, List<Type> typeArguments)
    Gets a Codec for the given parameterized class, after resolving any type variables with the given type arguments.

    Methods inherited from interface org.bson.codecs.configuration.CodecProvider

    get, get
  • Method Details

    • get

      <T> Codec<T> get(Class<T> clazz)
      Gets a Codec for the given Class.
      Type Parameters:
      T - the class type
      Parameters:
      clazz - the class
      Returns:
      a codec for the given class
      Throws:
      CodecConfigurationException - if the registry does not contain a codec for the given class.
    • get

      default <T> Codec<T> get(Class<T> clazz, List<Type> typeArguments)
      Gets a Codec for the given parameterized class, after resolving any type variables with the given type arguments.

      The default behavior is to throw a AssertionError, as it's expected that CodecRegistry implementations are always provided by this library and will override the method appropriately.

      Type Parameters:
      T - the class type
      Parameters:
      clazz - the parameterized class
      typeArguments - the type arguments to apply to the parameterized class. This list may be empty but not null.
      Returns:
      a codec for the given class, with the given type parameters resolved
      Throws:
      CodecConfigurationException - if no codec can be found for the given class and type arguments.
      AssertionError - by default, if the implementation does not override this method, or if no codec can be found for the given class and type arguments.
      Since:
      4.8