package it.cavallium.dbengine.client; import io.netty5.buffer.api.Buffer; import io.netty5.util.Send; import it.cavallium.dbengine.database.serialization.SerializationException; import it.cavallium.dbengine.database.serialization.SerializerFixedBinaryLength; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; 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 Buffer serialized) throws SerializationException { return keyMapper.map(fixedLengthSerializer.deserialize(serialized)); } @Override public void serialize(@NotNull B deserialized, Buffer output) throws SerializationException { fixedLengthSerializer.serialize(keyMapper.unmap(deserialized), output); } @Override public int getSerializedBinaryLength() { return fixedLengthSerializer.getSerializedBinaryLength(); } }