T
- The type to be instantiated.@Internal public abstract class GenericTypeSerializerSnapshot<T,S extends TypeSerializer> extends Object implements TypeSerializerSnapshot<T>
TypeSerializerSnapshot
for serializers for generic types.Modifier | Constructor and Description |
---|---|
protected |
GenericTypeSerializerSnapshot() |
protected |
GenericTypeSerializerSnapshot(Class<T> typeClass) |
Modifier and Type | Method and Description |
---|---|
protected abstract TypeSerializer<T> |
createSerializer(Class<T> typeClass)
Create a serializer that is able to serialize the generic type
typeClass . |
int |
getCurrentVersion()
Returns the version of the current snapshot's written binary format.
|
protected abstract Class<T> |
getTypeClass(S serializer)
Gets the type class from the corresponding serializer.
|
void |
readSnapshot(int readVersion,
DataInputView in,
ClassLoader userCodeClassLoader)
Reads the serializer snapshot from the provided
DataInputView . |
TypeSerializerSchemaCompatibility<T> |
resolveSchemaCompatibility(TypeSerializer<T> newSerializer)
Checks a new serializer's compatibility to read data written by the prior serializer.
|
TypeSerializer<T> |
restoreSerializer()
Recreates a serializer instance from this snapshot.
|
protected abstract Class<?> |
serializerClass()
Gets the serializer's class.
|
void |
writeSnapshot(DataOutputView out)
Writes the serializer snapshot to the provided
DataOutputView . |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
readVersionedSnapshot, writeVersionedSnapshot
protected abstract TypeSerializer<T> createSerializer(Class<T> typeClass)
typeClass
.protected abstract Class<T> getTypeClass(S serializer)
protected abstract Class<?> serializerClass()
public final int getCurrentVersion()
TypeSerializerSnapshot
getCurrentVersion
in interface TypeSerializerSnapshot<T>
public final void writeSnapshot(DataOutputView out) throws IOException
TypeSerializerSnapshot
DataOutputView
. The current version of
the written serializer snapshot's binary format is specified by the TypeSerializerSnapshot.getCurrentVersion()
method.writeSnapshot
in interface TypeSerializerSnapshot<T>
out
- the DataOutputView
to write the snapshot to.IOException
- Thrown if the snapshot data could not be written.TypeSerializerSnapshot.writeVersionedSnapshot(DataOutputView, TypeSerializerSnapshot)
public final void readSnapshot(int readVersion, DataInputView in, ClassLoader userCodeClassLoader) throws IOException
TypeSerializerSnapshot
DataInputView
. The version of the
binary format that the serializer snapshot was written with is provided. This version can be
used to determine how the serializer snapshot should be read.readSnapshot
in interface TypeSerializerSnapshot<T>
readVersion
- version of the serializer snapshot's written binary formatin
- the DataInputView
to read the snapshot from.userCodeClassLoader
- the user code classloaderIOException
- Thrown if the snapshot data could be read or parsed.TypeSerializerSnapshot.readVersionedSnapshot(DataInputView, ClassLoader)
public final TypeSerializer<T> restoreSerializer()
TypeSerializerSnapshot
restoreSerializer
in interface TypeSerializerSnapshot<T>
public final TypeSerializerSchemaCompatibility<T> resolveSchemaCompatibility(TypeSerializer<T> newSerializer)
TypeSerializerSnapshot
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.
resolveSchemaCompatibility
in interface TypeSerializerSnapshot<T>
newSerializer
- the new serializer to check.Copyright © 2014–2024 The Apache Software Foundation. All rights reserved.