Interface TypeConversionRegistry


  • public interface TypeConversionRegistry
    Registry containing the type-conversions used when converting database values to model values and vice versa.
    • Method Summary

      All Methods Instance Methods Abstract Methods Default Methods 
      Modifier and Type Method Description
      <S,​T>
      void
      registerConversionFromDatabase​(@NotNull java.lang.Class<S> source, @NotNull java.lang.Class<T> target, @NotNull java.util.function.Function<S,​T> conversion)
      Registers conversion from given source database type to given target model type.
      default <D,​J>
      void
      registerConversions​(@NotNull java.lang.Class<D> databaseType, @NotNull java.lang.Class<J> javaType, @NotNull java.util.function.Function<D,​J> fromDatabase, @NotNull java.util.function.Function<J,​D> toDatabase)
      Registers conversions from database type to model type and back.
      <T> void registerConversionToDatabase​(@NotNull java.lang.Class<T> source, @NotNull java.util.function.Function<T,​?> conversion)
      Registers conversion from given source model type to database type.
      <T extends java.lang.Enum<T>,​K>
      void
      registerEnumConversion​(@NotNull java.lang.Class<T> enumType, @NotNull java.util.function.Function<T,​K> keyFunction)
      Registers simple enum conversion that uses keyFunction to produce saved value and uses same function on enum constants to convert values back.
      default <T extends java.lang.Enum<T>>
      void
      registerNativeEnumConversion​(@NotNull java.lang.Class<T> enumType, @NotNull java.lang.String typeName)
      Returns given enum-type to be saved as database native enum of given type name.
      <T extends java.lang.Enum<T>,​K>
      void
      registerNativeEnumConversion​(@NotNull java.lang.Class<T> enumType, @NotNull java.lang.String typeName, @NotNull java.util.function.Function<T,​K> keyFunction)
      Returns given enum-type to be saved as database native enum of given type name.
    • Method Detail

      • registerConversionFromDatabase

        <S,​T> void registerConversionFromDatabase​(@NotNull
                                                        @NotNull java.lang.Class<S> source,
                                                        @NotNull
                                                        @NotNull java.lang.Class<T> target,
                                                        @NotNull
                                                        @NotNull java.util.function.Function<S,​T> conversion)
        Registers conversion from given source database type to given target model type.
      • registerConversionToDatabase

        <T> void registerConversionToDatabase​(@NotNull
                                              @NotNull java.lang.Class<T> source,
                                              @NotNull
                                              @NotNull java.util.function.Function<T,​?> conversion)
        Registers conversion from given source model type to database type.
      • registerConversions

        default <D,​J> void registerConversions​(@NotNull
                                                     @NotNull java.lang.Class<D> databaseType,
                                                     @NotNull
                                                     @NotNull java.lang.Class<J> javaType,
                                                     @NotNull
                                                     @NotNull java.util.function.Function<D,​J> fromDatabase,
                                                     @NotNull
                                                     @NotNull java.util.function.Function<J,​D> toDatabase)
        Registers conversions from database type to model type and back.
      • registerEnumConversion

        <T extends java.lang.Enum<T>,​K> void registerEnumConversion​(@NotNull
                                                                          @NotNull java.lang.Class<T> enumType,
                                                                          @NotNull
                                                                          @NotNull java.util.function.Function<T,​K> keyFunction)
        Registers simple enum conversion that uses keyFunction to produce saved value and uses same function on enum constants to convert values back.
      • registerNativeEnumConversion

        default <T extends java.lang.Enum<T>> void registerNativeEnumConversion​(@NotNull
                                                                                @NotNull java.lang.Class<T> enumType,
                                                                                @NotNull
                                                                                @NotNull java.lang.String typeName)
        Returns given enum-type to be saved as database native enum of given type name.
      • registerNativeEnumConversion

        <T extends java.lang.Enum<T>,​K> void registerNativeEnumConversion​(@NotNull
                                                                                @NotNull java.lang.Class<T> enumType,
                                                                                @NotNull
                                                                                @NotNull java.lang.String typeName,
                                                                                @NotNull
                                                                                @NotNull java.util.function.Function<T,​K> keyFunction)
        Returns given enum-type to be saved as database native enum of given type name. Given function can be used to map the enum to the stored value.