3940420983e65a4e0d4895a0418c0e6ba5ae5bb1
[idea/community.git] / platform / util / src / com / intellij / util / indexing / impl / forward / ForwardIndex.java
1 // Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
2 package com.intellij.util.indexing.impl.forward;
3
4 import com.intellij.openapi.util.io.ByteArraySequence;
5 import com.intellij.util.io.KeyValueStore;
6 import org.jetbrains.annotations.ApiStatus;
7 import org.jetbrains.annotations.NotNull;
8 import org.jetbrains.annotations.Nullable;
9
10 import java.io.IOException;
11
12 /**
13  * Represents key-value storage held by <a href="https://en.wikipedia.org/wiki/Search_engine_indexing#The_forward_index">forward index data structure</>.
14  */
15 @ApiStatus.Experimental
16 public interface ForwardIndex extends KeyValueStore<Integer, ByteArraySequence> {
17   @Nullable
18   @Override
19   ByteArraySequence get(@NotNull Integer key) throws IOException;
20
21   @Override
22   void put(@NotNull Integer key, @Nullable ByteArraySequence value) throws IOException;
23
24   void clear() throws IOException;
25 }