Class GenericTypeSerializerSnapshot<T,​S extends TypeSerializer>

    • Constructor Detail

      • GenericTypeSerializerSnapshot

        protected GenericTypeSerializerSnapshot()
      • GenericTypeSerializerSnapshot

        protected GenericTypeSerializerSnapshot​(Class<T> typeClass)
    • Method Detail

      • createSerializer

        protected abstract TypeSerializer<T> createSerializer​(Class<T> typeClass)
        Create a serializer that is able to serialize the generic type typeClass.
      • getTypeClass

        protected abstract Class<T> getTypeClass​(S serializer)
        Gets the type class from the corresponding serializer.
      • serializerClass

        protected abstract Class<?> serializerClass()
        Gets the serializer's class.
      • getCurrentVersion

        public final int getCurrentVersion()
        Description copied from interface: TypeSerializerSnapshot
        Returns the version of the current snapshot's written binary format.
        Specified by:
        getCurrentVersion in interface TypeSerializerSnapshot<T>
        Returns:
        the version of the current snapshot's written binary format.
      • restoreSerializer

        public final TypeSerializer<T> restoreSerializer()
        Description copied from interface: TypeSerializerSnapshot
        Recreates a serializer instance from this snapshot. The returned serializer can be safely used to read data written by the prior serializer (i.e., the serializer that created this snapshot).
        Specified by:
        restoreSerializer in interface TypeSerializerSnapshot<T>
        Returns:
        a serializer instance restored from this serializer snapshot.
      • resolveSchemaCompatibility

        public final TypeSerializerSchemaCompatibility<T> resolveSchemaCompatibility​(TypeSerializerSnapshot<T> oldSerializerSnapshot)
        Description copied from interface: TypeSerializerSnapshot
        Checks current serializer's compatibility to read data written by the prior serializer.

        When a checkpoint/savepoint is restored, this method checks whether the serialization format of the data in the checkpoint/savepoint is compatible for the format of the serializer used by the program that restores the checkpoint/savepoint. The outcome can be that the serialization format is compatible, that the program's serializer needs to reconfigure itself (meaning to incorporate some information from the TypeSerializerSnapshot to be compatible), that the format is outright incompatible, or that a migration needed. In the latter case, the TypeSerializerSnapshot produces a serializer to deserialize the data, and the restoring program's serializer re-serializes the data, thus converting the format during the restore operation.

        This method must be implemented to clarify the compatibility. See FLIP-263 for more details.

        Specified by:
        resolveSchemaCompatibility in interface TypeSerializerSnapshot<T>
        Parameters:
        oldSerializerSnapshot - the old serializer snapshot to check.
        Returns:
        the serializer compatibility result.