Class FunctionalObjectSerializer<T>

java.lang.Object
eu.cloudnetservice.driver.impl.network.object.serializers.FunctionalObjectSerializer<T>
Type Parameters:
T - the type of data to write/read from the buffer.
All Implemented Interfaces:
eu.cloudnetservice.driver.network.object.ObjectSerializer<T>

public final class FunctionalObjectSerializer<T> extends Object implements eu.cloudnetservice.driver.network.object.ObjectSerializer<T>
An object serializer instance which passes the read and write calls to the functional providers previously added.
Since:
4.0
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private final Function<eu.cloudnetservice.driver.network.buffer.DataBuf, T>
     
    private final BiConsumer<eu.cloudnetservice.driver.network.buffer.DataBuf.Mutable, T>
     
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    private
    FunctionalObjectSerializer(@NonNull Function<eu.cloudnetservice.driver.network.buffer.DataBuf, T> reader, @NonNull BiConsumer<eu.cloudnetservice.driver.network.buffer.DataBuf.Mutable, T> writer)
    Constructs a new functional object serializer instance.
  • Method Summary

    Modifier and Type
    Method
    Description
    of(@NonNull Function<eu.cloudnetservice.driver.network.buffer.DataBuf, T> reader, @NonNull BiConsumer<eu.cloudnetservice.driver.network.buffer.DataBuf.Mutable, T> writer)
    Constructs a new functional object serializer instance.
    read(@NonNull eu.cloudnetservice.driver.network.buffer.DataBuf source, @NonNull Type type, @NonNull eu.cloudnetservice.driver.network.object.ObjectMapper caller)
    void
    write(eu.cloudnetservice.driver.network.buffer.DataBuf.Mutable dataBuf, T object, @NonNull Type type, @NonNull eu.cloudnetservice.driver.network.object.ObjectMapper caller)

    Methods inherited from class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface eu.cloudnetservice.driver.network.object.ObjectSerializer

    preReadCheckAccepts, preWriteCheckAccepts
  • Field Details

    • reader

      private final Function<eu.cloudnetservice.driver.network.buffer.DataBuf, T> reader
    • writer

      private final BiConsumer<eu.cloudnetservice.driver.network.buffer.DataBuf.Mutable, T> writer
  • Constructor Details

    • FunctionalObjectSerializer

      private FunctionalObjectSerializer(@NonNull @NonNull Function<eu.cloudnetservice.driver.network.buffer.DataBuf, T> reader, @NonNull @NonNull BiConsumer<eu.cloudnetservice.driver.network.buffer.DataBuf.Mutable, T> writer)
      Constructs a new functional object serializer instance.
      Parameters:
      reader - the reader to read the content from the buffer.
      writer - the writer which writes the given data to the buffer.
      Throws:
      NullPointerException - if either the writer or reader is null.
  • Method Details

    • of

      @NonNull public static <T> @NonNull FunctionalObjectSerializer<T> of(@NonNull @NonNull Function<eu.cloudnetservice.driver.network.buffer.DataBuf, T> reader, @NonNull @NonNull BiConsumer<eu.cloudnetservice.driver.network.buffer.DataBuf.Mutable, T> writer)
      Constructs a new functional object serializer instance.
      Parameters:
      reader - the reader to read the content from the buffer.
      writer - the writer which writes the given data to the buffer.
      Returns:
      the created functional object serializer instance.
      Throws:
      NullPointerException - if either the writer or reader is null.
    • read

      @Nullable public T read(@NonNull @NonNull eu.cloudnetservice.driver.network.buffer.DataBuf source, @NonNull @NonNull Type type, @NonNull @NonNull eu.cloudnetservice.driver.network.object.ObjectMapper caller)
      Specified by:
      read in interface eu.cloudnetservice.driver.network.object.ObjectSerializer<T>
    • write

      public void write(@NonNull eu.cloudnetservice.driver.network.buffer.DataBuf.Mutable dataBuf, @Nullable T object, @NonNull @NonNull Type type, @NonNull @NonNull eu.cloudnetservice.driver.network.object.ObjectMapper caller)
      Specified by:
      write in interface eu.cloudnetservice.driver.network.object.ObjectSerializer<T>