package streamtest;

import org.apache.avro.generic.GenericRecord;
import org.apache.flink.api.common.typeutils.TypeSerializer;
import org.apache.flink.api.common.typeutils.TypeSerializerSchemaCompatibility;
import org.apache.flink.api.common.typeutils.TypeSerializerSnapshot;
import org.apache.flink.core.memory.DataInputView;
import org.apache.flink.core.memory.DataOutputView;

public class DynamicGenericRecordSerializerSnapshot implements TypeSerializerSnapshot<GenericRecord> {

    @Override
    public int getCurrentVersion() {
        return 1;
    }

    @Override
    public void writeSnapshot(DataOutputView out) {}

    @Override
    public void readSnapshot(int version, DataInputView in, ClassLoader userCodeClassLoader) {}

    @Override
    public TypeSerializer<GenericRecord> restoreSerializer() {
        return new DynamicGenericRecordSerializer();
    }

    @Override
    public TypeSerializerSchemaCompatibility<GenericRecord> resolveSchemaCompatibility(TypeSerializer<GenericRecord> newSerializer) {
        return TypeSerializerSchemaCompatibility.compatibleAsIs();
    }
}

