Class ExternalSerializer<I,E>

java.lang.Object
org.apache.flink.api.common.typeutils.TypeSerializer<E>
org.apache.flink.table.runtime.typeutils.ExternalSerializer<I,E>
Type Parameters:
I - internal data structure
E - external data structure
All Implemented Interfaces:
Serializable

@Internal public final class ExternalSerializer<I,E> extends org.apache.flink.api.common.typeutils.TypeSerializer<E>
A serializer that can serialize and deserialize all data structures defined by a DataType.

This class combines DataStructureConverters and InternalSerializers into one entity. The serialized binary format is always an internal binary format.

Serializing null in the top-level is not supported.

See Also:
  • Method Details

    • of

      public static <I, E> ExternalSerializer<I,E> of(org.apache.flink.table.types.DataType dataType)
      Creates an instance of a ExternalSerializer defined by the given DataType.
    • of

      public static <I, E> ExternalSerializer<I,E> of(org.apache.flink.table.types.DataType dataType, boolean isInternalInput)
      Creates an instance of a ExternalSerializer defined by the given DataType.
    • getDataType

      public org.apache.flink.table.types.DataType getDataType()
    • isInternalInput

      public boolean isInternalInput()
    • isImmutableType

      public boolean isImmutableType()
      Specified by:
      isImmutableType in class org.apache.flink.api.common.typeutils.TypeSerializer<E>
    • duplicate

      public org.apache.flink.api.common.typeutils.TypeSerializer<E> duplicate()
      Specified by:
      duplicate in class org.apache.flink.api.common.typeutils.TypeSerializer<E>
    • createInstance

      public E createInstance()
      Specified by:
      createInstance in class org.apache.flink.api.common.typeutils.TypeSerializer<E>
    • copy

      public E copy(E from)
      Specified by:
      copy in class org.apache.flink.api.common.typeutils.TypeSerializer<E>
    • copy

      public E copy(E from, E reuse)
      Specified by:
      copy in class org.apache.flink.api.common.typeutils.TypeSerializer<E>
    • getLength

      public int getLength()
      Specified by:
      getLength in class org.apache.flink.api.common.typeutils.TypeSerializer<E>
    • serialize

      public void serialize(E record, org.apache.flink.core.memory.DataOutputView target) throws IOException
      Specified by:
      serialize in class org.apache.flink.api.common.typeutils.TypeSerializer<E>
      Throws:
      IOException
    • deserialize

      public E deserialize(org.apache.flink.core.memory.DataInputView source) throws IOException
      Specified by:
      deserialize in class org.apache.flink.api.common.typeutils.TypeSerializer<E>
      Throws:
      IOException
    • deserialize

      public E deserialize(E reuse, org.apache.flink.core.memory.DataInputView source) throws IOException
      Specified by:
      deserialize in class org.apache.flink.api.common.typeutils.TypeSerializer<E>
      Throws:
      IOException
    • copy

      public void copy(org.apache.flink.core.memory.DataInputView source, org.apache.flink.core.memory.DataOutputView target) throws IOException
      Specified by:
      copy in class org.apache.flink.api.common.typeutils.TypeSerializer<E>
      Throws:
      IOException
    • equals

      public boolean equals(Object o)
      Specified by:
      equals in class org.apache.flink.api.common.typeutils.TypeSerializer<E>
    • hashCode

      public int hashCode()
      Specified by:
      hashCode in class org.apache.flink.api.common.typeutils.TypeSerializer<E>
    • snapshotConfiguration

      public org.apache.flink.api.common.typeutils.TypeSerializerSnapshot<E> snapshotConfiguration()
      Specified by:
      snapshotConfiguration in class org.apache.flink.api.common.typeutils.TypeSerializer<E>