package it.cavallium.dbengine.database.collections; import io.netty.buffer.ByteBuf; import it.cavallium.dbengine.database.LLDictionary; import it.cavallium.dbengine.database.serialization.Serializer; import java.util.function.Function; import org.jetbrains.annotations.NotNull; import static io.netty.buffer.Unpooled.*; public class DatabaseEmpty { @SuppressWarnings({"unused", "InstantiationOfUtilityClass"}) public static final Nothing NOTHING = new Nothing(); public static final Serializer NOTHING_SERIALIZER = new Serializer<>() { @Override public @NotNull Nothing deserialize(@NotNull ByteBuf serialized) { return NOTHING; } @Override public @NotNull ByteBuf serialize(@NotNull Nothing deserialized) { return EMPTY_BUFFER; } }; public static final Function NOTHING_HASH_FUNCTION = nothing -> nothing; private static final SubStageGetter> NOTHING_SUB_STAGE_GETTER = new SubStageGetterSingle<>(NOTHING_SERIALIZER); private DatabaseEmpty() { } public static DatabaseStageEntry create(LLDictionary dictionary, ByteBuf key) { return new DatabaseSingle<>(dictionary, key, NOTHING_SERIALIZER); } public static SubStageGetter> createSubStageGetter() { return NOTHING_SUB_STAGE_GETTER; } public static final class Nothing { @SuppressWarnings("InstantiationOfUtilityClass") public static Nothing INSTANCE = new Nothing(); private Nothing() { } } }