Class RecordSerialization.Builder<R extends Record>

java.lang.Object
dev.siroshun.configapi.serialization.record.RecordSerialization.Builder<R>
Type Parameters:
R - the type of the Record
Enclosing class:
RecordSerialization<R extends Record>

public static final class RecordSerialization.Builder<R extends Record> extends Object
  • Method Details

    • addSerializer

      @Contract("_, _ -> this") @NotNull public <T> @NotNull RecordSerialization.Builder<R> addSerializer(@NotNull @NotNull Class<T> clazz, @NotNull @NotNull dev.siroshun.serialization.core.Serializer<? super T,? extends Node<?>> serializer)
      Adds a Serializer for the specifies Class.
      Type Parameters:
      T - a type of objects to serialize
      Parameters:
      clazz - a type of objects to serialize
      serializer - a Serializer
      Returns:
      this RecordSerialization.Builder instance
    • addSerializers

      @Contract("_ -> this") @NotNull public @NotNull RecordSerialization.Builder<R> addSerializers(@NotNull @NotNull dev.siroshun.serialization.core.registry.SerializerRegistry<Node<?>> registry)
      Adds Serializers in the SerializerRegistry.
      Parameters:
      registry - a SerializerRegistry that contains Serializers to register
      Returns:
      this RecordSerialization.Builder instance
    • addDeserializer

      @Contract("_, _ -> this") @NotNull public <T> @NotNull RecordSerialization.Builder<R> addDeserializer(@NotNull @NotNull Class<T> clazz, @NotNull @NotNull dev.siroshun.serialization.core.Deserializer<? super Node<?>,? extends T> deserializer)
      Adds a Deserializer for the specifies Class.
      Type Parameters:
      T - a type of objects after deserialization
      Parameters:
      clazz - a type of objects after deserialization
      deserializer - a Deserializer
      Returns:
      this RecordSerialization.Builder instance
    • addDeserializers

      @Contract("_ -> this") @NotNull public @NotNull RecordSerialization.Builder<R> addDeserializers(@NotNull @NotNull dev.siroshun.serialization.core.registry.DeserializerRegistry<Node<?>> registry)
      Adds Deserializers in the DeserializerRegistry.
      Parameters:
      registry - a DeserializerRegistry that contains Deserializers to register
      Returns:
      this RecordSerialization.Builder instance
    • addSerialization

      @Contract("_, _ -> this") @NotNull public <T> @NotNull RecordSerialization.Builder<R> addSerialization(@NotNull @NotNull Class<T> clazz, @NotNull @NotNull dev.siroshun.serialization.core.Serialization<? super T,? extends Node<?>> serialization)
      Adds a Serialization for the specifies Class.
      Type Parameters:
      T - a type of objects of the Serialization
      Parameters:
      clazz - a type of objects of the Serialization
      serialization - a Serialization
      Returns:
      this RecordSerialization.Builder instance
    • addSerialization

      @Contract("_ -> this") @NotNull public @NotNull RecordSerialization.Builder<R> addSerialization(@NotNull @NotNull dev.siroshun.serialization.core.registry.SerializationRegistry<Node<?>> registry)
      Adds Serializations in the SerializationRegistry.
      Parameters:
      registry - a SerializationRegistry that contains Serializations to register
      Returns:
      this RecordSerialization.Builder instance
    • keyGenerator

      @Contract("_ -> this") @NotNull public @NotNull RecordSerialization.Builder<R> keyGenerator(@NotNull @NotNull dev.siroshun.serialization.core.key.KeyGenerator keyGenerator)
      Sets the KeyGenerator.
      Parameters:
      keyGenerator - the KeyGenerator to generate keys
      Returns:
      this RecordSerialization.Builder instance
    • defaultRecord

      @Contract("_ -> this") @NotNull public @NotNull RecordSerialization.Builder<R> defaultRecord(@NotNull R defaultRecord)
      Sets the default Record.
      Parameters:
      defaultRecord - the default Record
      Returns:
      this RecordSerialization.Builder instance
    • build

      @Contract("-> new") @NotNull public @NotNull RecordSerialization<R> build()
      Returns:
      a new RecordSerialization