Class 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:
    Serialized Form
    • Method Detail

      • 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>