From 17d0b46af3cb03f3b28496b723e5e428e6d60cb6 Mon Sep 17 00:00:00 2001 From: "Gregory.Shrago" Date: Mon, 6 Dec 2021 19:23:22 +0300 Subject: [PATCH] introduce `InvertedIndex.prepareUpdate` GitOrigin-RevId: e0beffe8626c6f8dcf8981cbd803cdd14ec7f1f5 --- .../src/com/intellij/psi/search/LogFileTypeIndex.java | 6 ++++++ .../src/com/intellij/testFramework/EmptyFileBasedIndex.java | 6 ++++++ .../util/src/com/intellij/util/indexing/InvertedIndex.java | 3 +++ .../src/com/intellij/util/indexing/impl/MapReduceIndex.java | 5 +++++ 4 files changed, 20 insertions(+) diff --git a/platform/lang-impl/src/com/intellij/psi/search/LogFileTypeIndex.java b/platform/lang-impl/src/com/intellij/psi/search/LogFileTypeIndex.java index ef9a19134e28..65fa7f039da0 100644 --- a/platform/lang-impl/src/com/intellij/psi/search/LogFileTypeIndex.java +++ b/platform/lang-impl/src/com/intellij/psi/search/LogFileTypeIndex.java @@ -16,6 +16,7 @@ import com.intellij.util.containers.ConcurrentIntObjectMap; import com.intellij.util.containers.SLRUMap; import com.intellij.util.indexing.*; import com.intellij.util.indexing.impl.AbstractUpdateData; +import com.intellij.util.indexing.impl.InputData; import com.intellij.util.indexing.impl.InputDataDiffBuilder; import com.intellij.util.indexing.impl.ValueContainerImpl; import com.intellij.util.indexing.impl.storage.AbstractIntLog; @@ -210,6 +211,11 @@ public final class LogFileTypeIndex implements UpdatableIndex prepareUpdate(int inputId, @NotNull InputData data) { + throw new UnsupportedOperationException(); + } + private FileType getFileTypeById(int id) { assert id < Short.MAX_VALUE : "file type id = " + id; Ref fileType = myId2FileTypeCache.get(id); diff --git a/platform/testFramework/src/com/intellij/testFramework/EmptyFileBasedIndex.java b/platform/testFramework/src/com/intellij/testFramework/EmptyFileBasedIndex.java index ed4fd1ceb850..4587dfce0e62 100644 --- a/platform/testFramework/src/com/intellij/testFramework/EmptyFileBasedIndex.java +++ b/platform/testFramework/src/com/intellij/testFramework/EmptyFileBasedIndex.java @@ -11,6 +11,7 @@ import com.intellij.psi.search.GlobalSearchScope; import com.intellij.util.Processor; import com.intellij.util.indexing.*; import com.intellij.util.indexing.impl.AbstractUpdateData; +import com.intellij.util.indexing.impl.InputData; import com.intellij.util.indexing.impl.InputDataDiffBuilder; import com.intellij.util.indexing.snapshot.SnapshotSingleValueIndexStorage; import org.jetbrains.annotations.NotNull; @@ -273,6 +274,11 @@ public final class EmptyFileBasedIndex extends FileBasedIndexEx { throw new UnsupportedOperationException(); } + @Override + public @NotNull Computable prepareUpdate(int inputId, @NotNull InputData data) { + throw new UnsupportedOperationException(); + } + @Override public void flush() { } diff --git a/platform/util/src/com/intellij/util/indexing/InvertedIndex.java b/platform/util/src/com/intellij/util/indexing/InvertedIndex.java index 6d612298c266..f93f1fe47766 100644 --- a/platform/util/src/com/intellij/util/indexing/InvertedIndex.java +++ b/platform/util/src/com/intellij/util/indexing/InvertedIndex.java @@ -17,6 +17,7 @@ package com.intellij.util.indexing; import com.intellij.openapi.util.Computable; +import com.intellij.util.indexing.impl.InputData; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -35,6 +36,8 @@ public interface InvertedIndex { @NotNull Computable mapInputAndPrepareUpdate(int inputId, @Nullable Input content); + @NotNull Computable prepareUpdate(int inputId, @NotNull InputData data); + void flush() throws StorageException; void clear() throws StorageException; diff --git a/platform/util/src/com/intellij/util/indexing/impl/MapReduceIndex.java b/platform/util/src/com/intellij/util/indexing/impl/MapReduceIndex.java index d89df5a6a1d2..6e6db6441972 100644 --- a/platform/util/src/com/intellij/util/indexing/impl/MapReduceIndex.java +++ b/platform/util/src/com/intellij/util/indexing/impl/MapReduceIndex.java @@ -253,6 +253,11 @@ public abstract class MapReduceIndex implements InvertedIndex< throw new MapReduceIndexMappingException(e, myExtension.getClass()); } + return prepareUpdate(inputId, data); + } + + @Override + public @NotNull IndexUpdateComputable prepareUpdate(int inputId, @NotNull InputData data) { UpdateData updateData = new UpdateData<>( inputId, data.getKeyValues(),