diff --git a/java/java-impl/src/com/intellij/psi/impl/java/stubs/index/JavaAnnotationIndex.java b/java/java-impl/src/com/intellij/psi/impl/java/stubs/index/JavaAnnotationIndex.java index f3055fc59b42..fbf4508682b3 100644 --- a/java/java-impl/src/com/intellij/psi/impl/java/stubs/index/JavaAnnotationIndex.java +++ b/java/java-impl/src/com/intellij/psi/impl/java/stubs/index/JavaAnnotationIndex.java @@ -36,6 +36,7 @@ public class JavaAnnotationIndex extends StringStubIndexExtension return ourInstance; } + @NotNull @Override public StubIndexKey getKey() { return JavaStubIndexKeys.ANNOTATIONS; diff --git a/java/java-impl/src/com/intellij/psi/impl/java/stubs/index/JavaAnonymousClassBaseRefOccurenceIndex.java b/java/java-impl/src/com/intellij/psi/impl/java/stubs/index/JavaAnonymousClassBaseRefOccurenceIndex.java index c84dc8716520..2521522325c9 100644 --- a/java/java-impl/src/com/intellij/psi/impl/java/stubs/index/JavaAnonymousClassBaseRefOccurenceIndex.java +++ b/java/java-impl/src/com/intellij/psi/impl/java/stubs/index/JavaAnonymousClassBaseRefOccurenceIndex.java @@ -37,6 +37,7 @@ public class JavaAnonymousClassBaseRefOccurenceIndex extends StringStubIndexExte } + @NotNull @Override public StubIndexKey getKey() { return JavaStubIndexKeys.ANONYMOUS_BASEREF; diff --git a/java/java-impl/src/com/intellij/psi/impl/java/stubs/index/JavaFieldNameIndex.java b/java/java-impl/src/com/intellij/psi/impl/java/stubs/index/JavaFieldNameIndex.java index 6d45c799f195..54eb0edf6a05 100644 --- a/java/java-impl/src/com/intellij/psi/impl/java/stubs/index/JavaFieldNameIndex.java +++ b/java/java-impl/src/com/intellij/psi/impl/java/stubs/index/JavaFieldNameIndex.java @@ -36,6 +36,7 @@ public class JavaFieldNameIndex extends StringStubIndexExtension { return ourInstance; } + @NotNull @Override public StubIndexKey getKey() { return JavaStubIndexKeys.FIELDS; diff --git a/java/java-impl/src/com/intellij/psi/impl/java/stubs/index/JavaFullClassNameIndex.java b/java/java-impl/src/com/intellij/psi/impl/java/stubs/index/JavaFullClassNameIndex.java index 6bebd462dd16..40c75f3551b3 100644 --- a/java/java-impl/src/com/intellij/psi/impl/java/stubs/index/JavaFullClassNameIndex.java +++ b/java/java-impl/src/com/intellij/psi/impl/java/stubs/index/JavaFullClassNameIndex.java @@ -36,6 +36,7 @@ public class JavaFullClassNameIndex extends IntStubIndexExtension { return ourInstance; } + @NotNull @Override public StubIndexKey getKey() { return JavaStubIndexKeys.CLASS_FQN; diff --git a/java/java-impl/src/com/intellij/psi/impl/java/stubs/index/JavaMethodNameIndex.java b/java/java-impl/src/com/intellij/psi/impl/java/stubs/index/JavaMethodNameIndex.java index 04e9732ebb41..a92856f2564c 100644 --- a/java/java-impl/src/com/intellij/psi/impl/java/stubs/index/JavaMethodNameIndex.java +++ b/java/java-impl/src/com/intellij/psi/impl/java/stubs/index/JavaMethodNameIndex.java @@ -36,6 +36,7 @@ public class JavaMethodNameIndex extends StringStubIndexExtension { return ourInstance; } + @NotNull @Override public StubIndexKey getKey() { return JavaStubIndexKeys.METHODS; diff --git a/java/java-impl/src/com/intellij/psi/impl/java/stubs/index/JavaShortClassNameIndex.java b/java/java-impl/src/com/intellij/psi/impl/java/stubs/index/JavaShortClassNameIndex.java index 6d3613b8e29e..c2c49d71cdec 100644 --- a/java/java-impl/src/com/intellij/psi/impl/java/stubs/index/JavaShortClassNameIndex.java +++ b/java/java-impl/src/com/intellij/psi/impl/java/stubs/index/JavaShortClassNameIndex.java @@ -36,6 +36,7 @@ public class JavaShortClassNameIndex extends StringStubIndexExtension return ourInstance; } + @NotNull @Override public StubIndexKey getKey() { return JavaStubIndexKeys.CLASS_SHORT_NAMES; diff --git a/java/java-impl/src/com/intellij/psi/impl/java/stubs/index/JavaSuperClassNameOccurenceIndex.java b/java/java-impl/src/com/intellij/psi/impl/java/stubs/index/JavaSuperClassNameOccurenceIndex.java index 65591b359c6c..a70b7ea700d4 100644 --- a/java/java-impl/src/com/intellij/psi/impl/java/stubs/index/JavaSuperClassNameOccurenceIndex.java +++ b/java/java-impl/src/com/intellij/psi/impl/java/stubs/index/JavaSuperClassNameOccurenceIndex.java @@ -37,6 +37,7 @@ public class JavaSuperClassNameOccurenceIndex extends StringStubIndexExtension

getKey() { return JavaStubIndexKeys.SUPER_CLASSES; diff --git a/platform/lang-api/src/com/intellij/psi/stubs/IntStubIndexExtension.java b/platform/lang-api/src/com/intellij/psi/stubs/IntStubIndexExtension.java index e0b076115cd4..083154c437ff 100644 --- a/platform/lang-api/src/com/intellij/psi/stubs/IntStubIndexExtension.java +++ b/platform/lang-api/src/com/intellij/psi/stubs/IntStubIndexExtension.java @@ -22,12 +22,14 @@ package com.intellij.psi.stubs; import com.intellij.psi.PsiElement; import com.intellij.util.io.EnumeratorIntegerDescriptor; import com.intellij.util.io.KeyDescriptor; +import org.jetbrains.annotations.NotNull; public abstract class IntStubIndexExtension extends AbstractStubIndex { public int getVersion() { return 1; } + @NotNull public KeyDescriptor getKeyDescriptor() { return EnumeratorIntegerDescriptor.INSTANCE; } diff --git a/platform/lang-api/src/com/intellij/psi/stubs/StringStubIndexExtension.java b/platform/lang-api/src/com/intellij/psi/stubs/StringStubIndexExtension.java index b4ddde4668db..4d17ab028629 100644 --- a/platform/lang-api/src/com/intellij/psi/stubs/StringStubIndexExtension.java +++ b/platform/lang-api/src/com/intellij/psi/stubs/StringStubIndexExtension.java @@ -22,12 +22,14 @@ package com.intellij.psi.stubs; import com.intellij.psi.PsiElement; import com.intellij.util.io.EnumeratorStringDescriptor; import com.intellij.util.io.KeyDescriptor; +import org.jetbrains.annotations.NotNull; public abstract class StringStubIndexExtension extends AbstractStubIndex { public int getVersion() { return 2; } + @NotNull public KeyDescriptor getKeyDescriptor() { return new EnumeratorStringDescriptor(); } diff --git a/platform/lang-api/src/com/intellij/psi/stubs/StubIndexExtension.java b/platform/lang-api/src/com/intellij/psi/stubs/StubIndexExtension.java index 5255abf93b4a..8ee1c2dbc253 100644 --- a/platform/lang-api/src/com/intellij/psi/stubs/StubIndexExtension.java +++ b/platform/lang-api/src/com/intellij/psi/stubs/StubIndexExtension.java @@ -22,11 +22,16 @@ package com.intellij.psi.stubs; import com.intellij.openapi.extensions.ExtensionPointName; import com.intellij.psi.PsiElement; import com.intellij.util.io.KeyDescriptor; +import org.jetbrains.annotations.NotNull; public interface StubIndexExtension { ExtensionPointName EP_NAME = ExtensionPointName.create("com.intellij.stubIndex"); + @NotNull StubIndexKey getKey(); + int getVersion(); + + @NotNull KeyDescriptor getKeyDescriptor(); } \ No newline at end of file diff --git a/platform/lang-impl/src/com/intellij/util/indexing/MapIndexStorage.java b/platform/lang-impl/src/com/intellij/util/indexing/MapIndexStorage.java index f8012d9a7628..d0c60582c640 100644 --- a/platform/lang-impl/src/com/intellij/util/indexing/MapIndexStorage.java +++ b/platform/lang-impl/src/com/intellij/util/indexing/MapIndexStorage.java @@ -25,6 +25,7 @@ import com.intellij.util.io.DataExternalizer; import com.intellij.util.io.KeyDescriptor; import com.intellij.util.io.PersistentMap; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import java.io.File; import java.io.IOException; @@ -49,8 +50,9 @@ public final class MapIndexStorage implements IndexStorage myDataExternalizer; - public MapIndexStorage(File storageFile, final KeyDescriptor keyDescriptor, - final DataExternalizer valueExternalizer, + public MapIndexStorage(@NotNull File storageFile, + @NotNull KeyDescriptor keyDescriptor, + @NotNull DataExternalizer valueExternalizer, final int cacheSize) throws IOException { myStorageFile = storageFile; @@ -67,11 +69,13 @@ public final class MapIndexStorage implements IndexStorage createValue(final Key key) { return new ChangeTrackingValueContainer(new ChangeTrackingValueContainer.Initializer() { + @NotNull @Override public Object getLock() { return map.getDataAccessLock(); } + @Nullable @Override public ValueContainer compute() { ValueContainer value; @@ -90,7 +94,7 @@ public final class MapIndexStorage implements IndexStorage valueContainer) { + protected void onDropFromCache(final Key key, @NotNull final ChangeTrackingValueContainer valueContainer) { if (valueContainer.isDirty()) { try { map.put(key, valueContainer); @@ -192,6 +196,7 @@ public final class MapIndexStorage implements IndexStorage getKeys() throws StorageException { List keys = new ArrayList(); diff --git a/platform/lang-impl/src/com/intellij/util/indexing/ValueContainerMap.java b/platform/lang-impl/src/com/intellij/util/indexing/ValueContainerMap.java index 9c964a820974..cb26b39d4994 100644 --- a/platform/lang-impl/src/com/intellij/util/indexing/ValueContainerMap.java +++ b/platform/lang-impl/src/com/intellij/util/indexing/ValueContainerMap.java @@ -4,6 +4,7 @@ import com.intellij.openapi.util.io.BufferExposingByteArrayOutputStream; import com.intellij.util.io.*; import com.intellij.util.io.DataOutputStream; import gnu.trove.TIntHashSet; +import org.jetbrains.annotations.NotNull; import java.io.*; import java.util.Iterator; @@ -13,17 +14,17 @@ import java.util.Iterator; * Date: 8/10/11 */ class ValueContainerMap extends PersistentHashMap> { + @NotNull private final ValueContainerExternalizer myValueContainerExternalizer; - private final ValueContainerExternalizer myValueContainerExternalizer; - - ValueContainerMap(final File file, - KeyDescriptor keyKeyDescriptor, - DataExternalizer valueExternalizer) throws IOException { + ValueContainerMap(@NotNull final File file, + @NotNull KeyDescriptor keyKeyDescriptor, + @NotNull DataExternalizer valueExternalizer) throws IOException { super(file, keyKeyDescriptor, new ValueContainerExternalizer(valueExternalizer)); myValueContainerExternalizer = (ValueContainerExternalizer)myValueExternalizer; } + @NotNull Object getDataAccessLock() { return myEnumerator; } @@ -54,7 +55,7 @@ class ValueContainerMap extends PersistentHashMap extends PersistentHashMap implements DataExternalizer> { - private final DataExternalizer myExternalizer; + @NotNull private final DataExternalizer myExternalizer; - private ValueContainerExternalizer(DataExternalizer externalizer) { + private ValueContainerExternalizer(@NotNull DataExternalizer externalizer) { myExternalizer = externalizer; } @Override - public void save(final DataOutput out, final ValueContainer container) throws IOException { + public void save(final DataOutput out, @NotNull final ValueContainer container) throws IOException { saveImpl(out, container, false); } - public void saveAsRemoved(final DataOutput out, final ValueContainer container) throws IOException { + public void saveAsRemoved(final DataOutput out, @NotNull final ValueContainer container) throws IOException { saveImpl(out, container, true); } @@ -86,7 +87,7 @@ class ValueContainerMap extends PersistentHashMap container, final boolean asRemovedData) throws IOException { + private void saveImpl(final DataOutput out, @NotNull final ValueContainer container, final boolean asRemovedData) throws IOException { DataInputOutputUtil.writeSINT(out, container.size()); for (final Iterator valueIterator = container.getValueIterator(); valueIterator.hasNext();) { final T value = valueIterator.next(); @@ -106,6 +107,7 @@ class ValueContainerMap extends PersistentHashMap read(final DataInput in) throws IOException { DataInputStream stream = (DataInputStream)in; diff --git a/platform/util/src/com/intellij/util/io/PersistentBTreeEnumerator.java b/platform/util/src/com/intellij/util/io/PersistentBTreeEnumerator.java index 67dedfb5348b..b15c75d8278a 100644 --- a/platform/util/src/com/intellij/util/io/PersistentBTreeEnumerator.java +++ b/platform/util/src/com/intellij/util/io/PersistentBTreeEnumerator.java @@ -65,10 +65,10 @@ public class PersistentBTreeEnumerator extends PersistentEnumeratorBase dataDescriptor, int initialSize) throws IOException { + public PersistentBTreeEnumerator(@NotNull File file, @NotNull KeyDescriptor dataDescriptor, int initialSize) throws IOException { super(file, new ResizeableMappedFile(file, initialSize, ourLock, VALUE_PAGE_SIZE, true), dataDescriptor, initialSize, ourVersion, new RecordBufferHandler(), false); @@ -84,7 +84,8 @@ public class PersistentBTreeEnumerator extends PersistentEnumeratorBase extends PersistentEnumeratorBase processor, @Nullable final DataFilter filter) throws IOException { + public boolean processAllDataObject(@NotNull final Processor processor, @Nullable final DataFilter filter) throws IOException { if(myInlineKeysNoMapping) { return traverseAllRecords(new RecordsProcessor() { public boolean process(final int record) throws IOException { @@ -173,7 +174,7 @@ public class PersistentBTreeEnumerator extends PersistentEnumeratorBase extends PersistentEnumeratorBase() { @Override - public int compare(IntToIntBtree.BtreeIndexNodeView o1, IntToIntBtree.BtreeIndexNodeView o2) { + public int compare(@NotNull IntToIntBtree.BtreeIndexNodeView o1, @NotNull IntToIntBtree.BtreeIndexNodeView o2) { return o1.address - o2.address; } }); @@ -218,7 +219,7 @@ public class PersistentBTreeEnumerator extends PersistentEnumeratorBase leafPages) { + private void collectLeafPages(@NotNull IntToIntBtree.BtreeIndexNodeView node, @NotNull List leafPages) { if (node.isIndexLeaf()) { leafPages.add(node); return; @@ -259,7 +260,7 @@ public class PersistentBTreeEnumerator extends PersistentEnumeratorBase recordHandler) { + public void setRecordHandler(@NotNull PersistentEnumeratorBase.RecordBufferHandler recordHandler) { myExternalKeysNoMapping = false; super.setRecordHandler(recordHandler); } @@ -422,7 +423,7 @@ public class PersistentBTreeEnumerator extends PersistentEnumeratorBase extends PersistentEnumeratorBase extends PersistentEnumeratorBase extends PersistentEnumeratorBase { private int valuesCount; // TODO: valuesCount should be persistent private static final Version ourVersion = new Version(CORRECTLY_CLOSED_MAGIC, DIRTY_MAGIC); - public PersistentEnumerator(File file, KeyDescriptor dataDescriptor, int initialSize) throws IOException { + public PersistentEnumerator(@NotNull File file, @NotNull KeyDescriptor dataDescriptor, int initialSize) throws IOException { super(file, new ResizeableMappedFile(file, initialSize, ourLock), dataDescriptor, initialSize, ourVersion, new RecordBufferHandler(), true); } @@ -57,11 +57,11 @@ public class PersistentEnumerator extends PersistentEnumeratorBase { allocVector(FIRST_VECTOR); } - public synchronized boolean traverseAllRecords(RecordsProcessor p) throws IOException { + public synchronized boolean traverseAllRecords(@NotNull RecordsProcessor p) throws IOException { return traverseRecords(FIRST_VECTOR_OFFSET, SLOTS_PER_FIRST_VECTOR, p); } - private boolean traverseRecords(int vectorStart, int slotsCount, RecordsProcessor p) throws IOException { + private boolean traverseRecords(int vectorStart, int slotsCount, @NotNull RecordsProcessor p) throws IOException { synchronized (ourLock) { for (int slotIdx = 0; slotIdx < slotsCount; slotIdx++) { final int vector = myStorage.getInt(vectorStart + slotIdx * 4); @@ -186,7 +186,7 @@ public class PersistentEnumerator extends PersistentEnumeratorBase { return (hashcode >>> (byteN * BITS_PER_LEVEL)) & LEVEL_MASK; } - private int allocVector(final byte[] empty) throws IOException { + private int allocVector(@NotNull final byte[] empty) throws IOException { final int pos = (int)myStorage.length(); myStorage.put(pos, empty, 0, empty.length); return pos; @@ -208,7 +208,7 @@ public class PersistentEnumerator extends PersistentEnumeratorBase { private static class RecordBufferHandler extends PersistentEnumeratorBase.RecordBufferHandler { private final byte[] myBuffer = new byte[RECORD_SIZE]; - protected int recordWriteOffset(PersistentEnumerator enumerator, byte[] buf) { + protected int recordWriteOffset(@NotNull PersistentEnumerator enumerator, byte[] buf) { return (int)enumerator.myStorage.length(); } diff --git a/platform/util/src/com/intellij/util/io/PersistentEnumeratorBase.java b/platform/util/src/com/intellij/util/io/PersistentEnumeratorBase.java index 613eee243818..596760be09fb 100644 --- a/platform/util/src/com/intellij/util/io/PersistentEnumeratorBase.java +++ b/platform/util/src/com/intellij/util/io/PersistentEnumeratorBase.java @@ -73,9 +73,10 @@ abstract class PersistentEnumeratorBase implements Forceable, Closeable { } } - public static abstract class RecordBufferHandler { + public abstract static class RecordBufferHandler { abstract int recordWriteOffset(T enumerator, byte[] buf); - abstract @NotNull byte[] getRecordBuffer(T enumerator); + @NotNull + abstract byte[] getRecordBuffer(T enumerator); abstract void setupRecord(T enumerator, int hashCode, final int dataOffset, final byte[] buf); } @@ -137,8 +138,12 @@ abstract class PersistentEnumeratorBase implements Forceable, Closeable { } } - public PersistentEnumeratorBase(File file, ResizeableMappedFile storage, KeyDescriptor dataDescriptor, int initialSize, - Version version, RecordBufferHandler recordBufferHandler, + public PersistentEnumeratorBase(@NotNull File file, + @NotNull ResizeableMappedFile storage, + @NotNull KeyDescriptor dataDescriptor, + int initialSize, + @NotNull Version version, + @NotNull RecordBufferHandler recordBufferHandler, boolean doCaching) throws IOException { myDataDescriptor = dataDescriptor; myFile = file; @@ -210,11 +215,12 @@ abstract class PersistentEnumeratorBase implements Forceable, Closeable { protected abstract void setupEmptyFile() throws IOException; + @NotNull public final RecordBufferHandler getRecordHandler() { return myRecordHandler; } - public void setRecordHandler(RecordBufferHandler recordHandler) { + public void setRecordHandler(@NotNull RecordBufferHandler recordHandler) { myRecordHandler = recordHandler; } @@ -311,7 +317,7 @@ abstract class PersistentEnumeratorBase implements Forceable, Closeable { return values; } - public static abstract class RecordsProcessor { + public abstract static class RecordsProcessor { private int myKey; public abstract boolean process(int record) throws IOException; diff --git a/platform/util/src/com/intellij/util/io/PersistentEnumeratorDelegate.java b/platform/util/src/com/intellij/util/io/PersistentEnumeratorDelegate.java index 7dc5f0a802da..34957b1fb0e5 100644 --- a/platform/util/src/com/intellij/util/io/PersistentEnumeratorDelegate.java +++ b/platform/util/src/com/intellij/util/io/PersistentEnumeratorDelegate.java @@ -16,6 +16,7 @@ package com.intellij.util.io; import com.intellij.openapi.Forceable; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.io.Closeable; @@ -24,9 +25,9 @@ import java.io.IOException; import java.util.Collection; public class PersistentEnumeratorDelegate implements Closeable, Forceable { - protected final PersistentEnumeratorBase myEnumerator; + @NotNull protected final PersistentEnumeratorBase myEnumerator; - public PersistentEnumeratorDelegate(final File file, KeyDescriptor dataDescriptor, final int initialSize) throws IOException { + public PersistentEnumeratorDelegate(@NotNull final File file, @NotNull KeyDescriptor dataDescriptor, final int initialSize) throws IOException { myEnumerator = useBtree() ? new PersistentBTreeEnumerator(file, dataDescriptor, initialSize) : new PersistentEnumerator(file, dataDescriptor, initialSize); } diff --git a/platform/util/src/com/intellij/util/io/PersistentHashMap.java b/platform/util/src/com/intellij/util/io/PersistentHashMap.java index 297b733d7541..592c566e3573 100644 --- a/platform/util/src/com/intellij/util/io/PersistentHashMap.java +++ b/platform/util/src/com/intellij/util/io/PersistentHashMap.java @@ -57,8 +57,8 @@ public class PersistentHashMap extends PersistentEnumeratorDelegate< private static final long USED_LONG_VALUE_MASK = 1L << 62; private static final int POSITIVE_VALUE_SHIFT = 1; private final int myParentValueRefOffset; - private final byte[] myRecordBuffer; - private final byte[] mySmallRecordBuffer; + @NotNull private final byte[] myRecordBuffer; + @NotNull private final byte[] mySmallRecordBuffer; private final boolean myCanReEnumerate; private int myWatermarkId; private boolean myIntAddressForNewRecord; @@ -73,17 +73,19 @@ public class PersistentHashMap extends PersistentEnumeratorDelegate< ((UnsyncByteArrayOutputStream)out).reset(); } + @NotNull private BufferExposingByteArrayOutputStream getInternalBuffer() { return (BufferExposingByteArrayOutputStream)out; } } private final LimitedPool myStreamPool = new LimitedPool(10, new LimitedPool.ObjectFactory() { + @NotNull public AppendStream create() { return new AppendStream(); } - public void cleanup(final AppendStream appendStream) { + public void cleanup(@NotNull final AppendStream appendStream) { appendStream.reset(); } }); @@ -94,7 +96,7 @@ public class PersistentHashMap extends PersistentEnumeratorDelegate< return myStreamPool.alloc(); } - protected void onDropFromCache(final Key key, final AppendStream value) { + protected void onDropFromCache(final Key key, @NotNull final AppendStream value) { synchronized (PersistentEnumerator.ourLock) { try { final BufferExposingByteArrayOutputStream bytes = value.getInternalBuffer(); @@ -128,11 +130,11 @@ public class PersistentHashMap extends PersistentEnumeratorDelegate< } }); - public PersistentHashMap(final File file, KeyDescriptor keyDescriptor, DataExternalizer valueExternalizer) throws IOException { + public PersistentHashMap(@NotNull final File file, @NotNull KeyDescriptor keyDescriptor, @NotNull DataExternalizer valueExternalizer) throws IOException { this(file, keyDescriptor, valueExternalizer, INITIAL_INDEX_SIZE); } - public PersistentHashMap(final File file, KeyDescriptor keyDescriptor, DataExternalizer valueExternalizer, final int initialSize) throws IOException { + public PersistentHashMap(@NotNull final File file, @NotNull KeyDescriptor keyDescriptor, @NotNull DataExternalizer valueExternalizer, final int initialSize) throws IOException { super(checkDataFiles(file), keyDescriptor, initialSize); final PersistentEnumeratorBase.RecordBufferHandler recordHandler = myEnumerator.getRecordHandler(); @@ -153,7 +155,7 @@ public class PersistentHashMap extends PersistentEnumeratorDelegate< } @Override - void setupRecord(PersistentEnumeratorBase enumerator, int hashCode, int dataOffset, byte[] buf) { + void setupRecord(PersistentEnumeratorBase enumerator, int hashCode, int dataOffset, @NotNull byte[] buf) { recordHandler.setupRecord(enumerator, hashCode, dataOffset, buf); for (int i = myParentValueRefOffset; i < buf.length; i++) { buf[i] = 0; @@ -217,17 +219,18 @@ public class PersistentHashMap extends PersistentEnumeratorDelegate< return false; } - private static File checkDataFiles(final File file) { + @NotNull + private static File checkDataFiles(@NotNull final File file) { if (!file.exists()) { deleteFilesStartingWith(getDataFile(file)); } return file; } - public static void deleteFilesStartingWith(File prefixFile) { + public static void deleteFilesStartingWith(@NotNull File prefixFile) { final String baseName = prefixFile.getName(); final File[] files = prefixFile.getParentFile().listFiles(new FileFilter() { - public boolean accept(final File pathName) { + public boolean accept(@NotNull final File pathName) { return pathName.getName().startsWith(baseName); } }); @@ -238,7 +241,8 @@ public class PersistentHashMap extends PersistentEnumeratorDelegate< } } - private static File getDataFile(final File file) { + @NotNull + private static File getDataFile(@NotNull final File file) { return new File(file.getParentFile(), file.getName() + DATA_FILE_EXTENSION); } @@ -284,13 +288,13 @@ public class PersistentHashMap extends PersistentEnumeratorDelegate< void append(DataOutput out) throws IOException; } - public final void appendData(Key key, ValueDataAppender appender) throws IOException { + public final void appendData(Key key, @NotNull ValueDataAppender appender) throws IOException { synchronized (myEnumerator) { doAppendData(key, appender); } } - protected void doAppendData(Key key, ValueDataAppender appender) throws IOException { + protected void doAppendData(Key key, @NotNull ValueDataAppender appender) throws IOException { myEnumerator.markDirty(true); final AppendStream stream = myAppendCache.get(key); @@ -308,6 +312,7 @@ public class PersistentHashMap extends PersistentEnumeratorDelegate< } } + @NotNull public Collection getAllKeysWithExistingMapping() throws IOException { final List values = new ArrayList(); processKeysWithExistingMapping(new CommonProcessors.CollectProcessor(values)); diff --git a/platform/util/src/com/intellij/util/io/PersistentStringEnumerator.java b/platform/util/src/com/intellij/util/io/PersistentStringEnumerator.java index 247b48055517..89c46894993b 100644 --- a/platform/util/src/com/intellij/util/io/PersistentStringEnumerator.java +++ b/platform/util/src/com/intellij/util/io/PersistentStringEnumerator.java @@ -16,27 +16,29 @@ package com.intellij.util.io; import com.intellij.util.containers.ConcurrentSLRUMap; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import java.io.File; import java.io.IOException; public class PersistentStringEnumerator extends PersistentEnumeratorDelegate{ - private final ConcurrentSLRUMap myIdToStringCache; - private final ConcurrentSLRUMap myHashcodeToIdCache; + @Nullable private final ConcurrentSLRUMap myIdToStringCache; + @Nullable private final ConcurrentSLRUMap myHashcodeToIdCache; - public PersistentStringEnumerator(final File file) throws IOException { + public PersistentStringEnumerator(@NotNull final File file) throws IOException { this(file, 1024 * 4); } - public PersistentStringEnumerator(final File file, boolean cacheLastMappings) throws IOException { + public PersistentStringEnumerator(@NotNull final File file, boolean cacheLastMappings) throws IOException { this(file, 1024 * 4, cacheLastMappings); } - public PersistentStringEnumerator(final File file, final int initialSize) throws IOException { + public PersistentStringEnumerator(@NotNull final File file, final int initialSize) throws IOException { this(file, initialSize, false); } - private PersistentStringEnumerator(final File file, final int initialSize, boolean cacheLastMappings) throws IOException { + private PersistentStringEnumerator(@NotNull final File file, final int initialSize, boolean cacheLastMappings) throws IOException { super(file, new EnumeratorStringDescriptor(), initialSize); if (cacheLastMappings) { myIdToStringCache = new ConcurrentSLRUMap(8192, 8192); @@ -48,7 +50,7 @@ public class PersistentStringEnumerator extends PersistentEnumeratorDelegate { public static final StubIndexKey KEY = StubIndexKey.createIndexKey("gr.annot.members"); + @NotNull public StubIndexKey getKey() { return KEY; } diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/stubs/index/GrAnnotationMethodNameIndex.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/stubs/index/GrAnnotationMethodNameIndex.java index 0945a421540a..b5cdd93523d9 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/stubs/index/GrAnnotationMethodNameIndex.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/stubs/index/GrAnnotationMethodNameIndex.java @@ -17,6 +17,7 @@ package org.jetbrains.plugins.groovy.lang.psi.stubs.index; import com.intellij.psi.stubs.StringStubIndexExtension; import com.intellij.psi.stubs.StubIndexKey; +import org.jetbrains.annotations.NotNull; import org.jetbrains.plugins.groovy.lang.psi.api.statements.typedef.members.GrAnnotationMethod; /** @@ -25,6 +26,7 @@ import org.jetbrains.plugins.groovy.lang.psi.api.statements.typedef.members.GrAn public class GrAnnotationMethodNameIndex extends StringStubIndexExtension { public static final StubIndexKey KEY = StubIndexKey.createIndexKey("gr.annot.method.name"); + @NotNull public StubIndexKey getKey() { return KEY; } diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/stubs/index/GrAnonymousClassIndex.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/stubs/index/GrAnonymousClassIndex.java index e39c3a00b1e4..4f414704b6e6 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/stubs/index/GrAnonymousClassIndex.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/stubs/index/GrAnonymousClassIndex.java @@ -18,6 +18,7 @@ package org.jetbrains.plugins.groovy.lang.psi.stubs.index; import com.intellij.psi.stubs.StringStubIndexExtension; import com.intellij.psi.stubs.StubIndexKey; +import org.jetbrains.annotations.NotNull; import org.jetbrains.plugins.groovy.lang.psi.api.statements.typedef.GrAnonymousClassDefinition; /** @@ -26,6 +27,7 @@ import org.jetbrains.plugins.groovy.lang.psi.api.statements.typedef.GrAnonymousC public class GrAnonymousClassIndex extends StringStubIndexExtension { public static final StubIndexKey KEY = StubIndexKey.createIndexKey("gr.anonymous.class"); + @NotNull public StubIndexKey getKey() { return KEY; } diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/stubs/index/GrDirectInheritorsIndex.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/stubs/index/GrDirectInheritorsIndex.java index cca4057a4f99..b5a4a443994e 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/stubs/index/GrDirectInheritorsIndex.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/stubs/index/GrDirectInheritorsIndex.java @@ -17,6 +17,7 @@ package org.jetbrains.plugins.groovy.lang.psi.stubs.index; import com.intellij.psi.stubs.StringStubIndexExtension; import com.intellij.psi.stubs.StubIndexKey; +import org.jetbrains.annotations.NotNull; import org.jetbrains.plugins.groovy.lang.psi.api.statements.typedef.GrReferenceList; /** @@ -25,6 +26,7 @@ import org.jetbrains.plugins.groovy.lang.psi.api.statements.typedef.GrReferenceL public class GrDirectInheritorsIndex extends StringStubIndexExtension { public static final StubIndexKey KEY = StubIndexKey.createIndexKey("gr.class.super"); + @NotNull public StubIndexKey getKey() { return KEY; } diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/stubs/index/GrFieldNameIndex.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/stubs/index/GrFieldNameIndex.java index 21dfc934672b..68a5f5742617 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/stubs/index/GrFieldNameIndex.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/stubs/index/GrFieldNameIndex.java @@ -17,6 +17,7 @@ package org.jetbrains.plugins.groovy.lang.psi.stubs.index; import com.intellij.psi.stubs.StringStubIndexExtension; import com.intellij.psi.stubs.StubIndexKey; +import org.jetbrains.annotations.NotNull; import org.jetbrains.plugins.groovy.lang.psi.api.statements.GrField; /** @@ -25,6 +26,7 @@ import org.jetbrains.plugins.groovy.lang.psi.api.statements.GrField; public class GrFieldNameIndex extends StringStubIndexExtension { public static final StubIndexKey KEY = StubIndexKey.createIndexKey("gr.field.name"); + @NotNull public StubIndexKey getKey() { return KEY; } diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/stubs/index/GrFullClassNameIndex.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/stubs/index/GrFullClassNameIndex.java index c4022cd66acb..a02c0210bae3 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/stubs/index/GrFullClassNameIndex.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/stubs/index/GrFullClassNameIndex.java @@ -20,6 +20,7 @@ import com.intellij.psi.PsiClass; import com.intellij.psi.search.GlobalSearchScope; import com.intellij.psi.stubs.IntStubIndexExtension; import com.intellij.psi.stubs.StubIndexKey; +import org.jetbrains.annotations.NotNull; import org.jetbrains.plugins.groovy.lang.psi.impl.search.GrSourceFilterScope; import java.util.Collection; @@ -35,6 +36,7 @@ public class GrFullClassNameIndex extends IntStubIndexExtension { return ourInstance; } + @NotNull public StubIndexKey getKey() { return KEY; } diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/stubs/index/GrFullScriptNameIndex.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/stubs/index/GrFullScriptNameIndex.java index a1f4771bc35c..0e6a13c93dbf 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/stubs/index/GrFullScriptNameIndex.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/stubs/index/GrFullScriptNameIndex.java @@ -19,6 +19,7 @@ import com.intellij.openapi.project.Project; import com.intellij.psi.search.GlobalSearchScope; import com.intellij.psi.stubs.IntStubIndexExtension; import com.intellij.psi.stubs.StubIndexKey; +import org.jetbrains.annotations.NotNull; import org.jetbrains.plugins.groovy.lang.psi.GroovyFile; import org.jetbrains.plugins.groovy.lang.psi.impl.search.GrSourceFilterScope; @@ -40,6 +41,7 @@ public class GrFullScriptNameIndex extends IntStubIndexExtension { return super.getVersion() + 1; } + @NotNull public StubIndexKey getKey() { return KEY; } diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/stubs/index/GrMethodNameIndex.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/stubs/index/GrMethodNameIndex.java index 08905ddb39dc..c98e9f167075 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/stubs/index/GrMethodNameIndex.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/stubs/index/GrMethodNameIndex.java @@ -17,6 +17,7 @@ package org.jetbrains.plugins.groovy.lang.psi.stubs.index; import com.intellij.psi.stubs.StringStubIndexExtension; import com.intellij.psi.stubs.StubIndexKey; +import org.jetbrains.annotations.NotNull; import org.jetbrains.plugins.groovy.lang.psi.api.statements.typedef.members.GrMethod; /** @@ -25,6 +26,7 @@ import org.jetbrains.plugins.groovy.lang.psi.api.statements.typedef.members.GrMe public class GrMethodNameIndex extends StringStubIndexExtension { public static final StubIndexKey KEY = StubIndexKey.createIndexKey("gr.method.name"); + @NotNull public StubIndexKey getKey() { return KEY; } diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/stubs/index/GrScriptClassNameIndex.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/stubs/index/GrScriptClassNameIndex.java index 9df7a1fdd5e2..25b5701af23a 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/stubs/index/GrScriptClassNameIndex.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/stubs/index/GrScriptClassNameIndex.java @@ -17,6 +17,7 @@ package org.jetbrains.plugins.groovy.lang.psi.stubs.index; import com.intellij.psi.stubs.StringStubIndexExtension; import com.intellij.psi.stubs.StubIndexKey; +import org.jetbrains.annotations.NotNull; import org.jetbrains.plugins.groovy.lang.psi.GroovyFile; /** @@ -25,6 +26,7 @@ import org.jetbrains.plugins.groovy.lang.psi.GroovyFile; public class GrScriptClassNameIndex extends StringStubIndexExtension { public static final StubIndexKey KEY = StubIndexKey.createIndexKey("gr.script.class"); + @NotNull public StubIndexKey getKey() { return KEY; } diff --git a/plugins/properties/src/com/intellij/lang/properties/psi/PropertyKeyIndex.java b/plugins/properties/src/com/intellij/lang/properties/psi/PropertyKeyIndex.java index 6255ab8fc797..8667cf9dc25e 100644 --- a/plugins/properties/src/com/intellij/lang/properties/psi/PropertyKeyIndex.java +++ b/plugins/properties/src/com/intellij/lang/properties/psi/PropertyKeyIndex.java @@ -21,6 +21,7 @@ package com.intellij.lang.properties.psi; import com.intellij.psi.stubs.StringStubIndexExtension; import com.intellij.psi.stubs.StubIndexKey; +import org.jetbrains.annotations.NotNull; public class PropertyKeyIndex extends StringStubIndexExtension { public static final StubIndexKey KEY = StubIndexKey.createIndexKey("properties.index"); @@ -31,6 +32,7 @@ public class PropertyKeyIndex extends StringStubIndexExtension { return ourInstance; } + @NotNull public StubIndexKey getKey() { return KEY; }