package it.cavallium.dbengine.client; import io.netty.buffer.api.Buffer; import io.netty.buffer.api.Send; import it.cavallium.dbengine.database.serialization.SerializationException; import it.cavallium.dbengine.database.serialization.SerializerFixedBinaryLength; import org.jetbrains.annotations.NotNull; public class MappedSerializerFixedLength implements SerializerFixedBinaryLength> { private final SerializerFixedBinaryLength> fixedLengthSerializer; private final Mapper keyMapper; public MappedSerializerFixedLength(SerializerFixedBinaryLength> fixedLengthSerializer, Mapper keyMapper) { this.fixedLengthSerializer = fixedLengthSerializer; this.keyMapper = keyMapper; } @Override public @NotNull B deserialize(@NotNull Send serialized) throws SerializationException { try (serialized) { return keyMapper.map(fixedLengthSerializer.deserialize(serialized)); } } @Override public @NotNull Send serialize(@NotNull B deserialized) throws SerializationException { return fixedLengthSerializer.serialize(keyMapper.unmap(deserialized)); } @Override public int getSerializedBinaryLength() { return fixedLengthSerializer.getSerializedBinaryLength(); } }