@Internal public class TupleSerializer<T extends Tuple> extends TupleSerializerBase<T> implements TypeSerializerConfigSnapshot.SelfResolvingTypeSerializer<T>
arity, fieldSerializers, tupleClass
Constructor and Description |
---|
TupleSerializer(Class<T> tupleClass,
TypeSerializer<?>[] fieldSerializers) |
Modifier and Type | Method and Description |
---|---|
T |
copy(T from)
Creates a deep copy of the given element in a new element.
|
T |
copy(T from,
T reuse)
Creates a copy from the given element.
|
T |
createInstance()
Creates a new instance of the data type.
|
T |
createInstance(Object[] fields) |
T |
createOrReuseInstance(Object[] fields,
T reuse) |
T |
deserialize(DataInputView source)
De-serializes a record from the given source input view.
|
T |
deserialize(T reuse,
DataInputView source)
De-serializes a record from the given source input view into the given reuse record instance if mutable.
|
TupleSerializer<T> |
duplicate()
Creates a deep copy of this serializer if it is necessary, i.e.
|
TypeSerializerSchemaCompatibility<T> |
resolveSchemaCompatibilityViaRedirectingToNewSnapshotClass(TypeSerializerConfigSnapshot<T> deprecatedConfigSnapshot)
Resolve Schema Compatibility.
|
void |
serialize(T value,
DataOutputView target)
Serializes the given record to the given target output view.
|
TypeSerializerSnapshot<T> |
snapshotConfiguration()
Snapshots the configuration of this TypeSerializer.
|
copy, equals, getArity, getFieldSerializers, getLength, getTupleClass, hashCode, isImmutableType
public TupleSerializer(Class<T> tupleClass, TypeSerializer<?>[] fieldSerializers)
public TupleSerializer<T> duplicate()
TypeSerializer
duplicate
in class TypeSerializer<T extends Tuple>
public T createInstance()
TypeSerializer
createInstance
in class TypeSerializer<T extends Tuple>
public T createInstance(Object[] fields)
createInstance
in class TupleSerializerBase<T extends Tuple>
public T createOrReuseInstance(Object[] fields, T reuse)
createOrReuseInstance
in class TupleSerializerBase<T extends Tuple>
public T copy(T from)
TypeSerializer
copy
in class TypeSerializer<T extends Tuple>
from
- The element reuse be copied.public T copy(T from, T reuse)
TypeSerializer
copy
in class TypeSerializer<T extends Tuple>
from
- The element to be copied.reuse
- The element to be reused. May or may not be used.public void serialize(T value, DataOutputView target) throws IOException
TypeSerializer
serialize
in class TypeSerializer<T extends Tuple>
value
- The record to serialize.target
- The output view to write the serialized data to.IOException
- Thrown, if the serialization encountered an I/O related error. Typically raised by the
output view, which may have an underlying I/O channel to which it delegates.public T deserialize(DataInputView source) throws IOException
TypeSerializer
deserialize
in class TypeSerializer<T extends Tuple>
source
- The input view from which to read the data.IOException
- Thrown, if the de-serialization encountered an I/O related error. Typically raised by the
input view, which may have an underlying I/O channel from which it reads.public T deserialize(T reuse, DataInputView source) throws IOException
TypeSerializer
deserialize
in class TypeSerializer<T extends Tuple>
reuse
- The record instance into which to de-serialize the data.source
- The input view from which to read the data.IOException
- Thrown, if the de-serialization encountered an I/O related error. Typically raised by the
input view, which may have an underlying I/O channel from which it reads.public TypeSerializerSnapshot<T> snapshotConfiguration()
TypeSerializer
The snapshot of the TypeSerializer is supposed to contain all information that affects the serialization format of the serializer. The snapshot serves two purposes: First, to reproduce the serializer when the checkpoint/savepoint is restored, and second, to check whether the serialization format is compatible with the serializer used in the restored program.
IMPORTANT: TypeSerializerSnapshots changed after Flink 1.6. Serializers implemented against Flink versions up to 1.6 should still work, but adjust to new model to enable state evolution and be future-proof. See the class-level comments, section "Upgrading TypeSerializers to the new TypeSerializerSnapshot model" for details.
snapshotConfiguration
in class TypeSerializer<T extends Tuple>
null
).TypeSerializerSnapshot.resolveSchemaCompatibility(TypeSerializer)
public TypeSerializerSchemaCompatibility<T> resolveSchemaCompatibilityViaRedirectingToNewSnapshotClass(TypeSerializerConfigSnapshot<T> deprecatedConfigSnapshot)
TypeSerializerConfigSnapshot.SelfResolvingTypeSerializer
Given an instance of a TypeSerializerConfigSnapshot
this method should redirect the compatibility
check to the new TypeSerializerSnapshot
class along with the relevant information as present in the
given deprecatedConfigSnapshot
.
resolveSchemaCompatibilityViaRedirectingToNewSnapshotClass
in interface TypeSerializerConfigSnapshot.SelfResolvingTypeSerializer<T extends Tuple>
deprecatedConfigSnapshot
- the not yet migrated config snapshot class.deprecatedConfigSnapshot
with this
serializer.Copyright © 2014–2020 The Apache Software Foundation. All rights reserved.