<K> StubIdList restoreIndexedStubs(@NotNull StubIndexKey<K, ?> indexKey, @NotNull K key) throws IOException {
    Map<Object, StubIdList> incompleteMap = myDeserializedIndexedStubs.getIfRestored(indexKey);
    if (incompleteMap == null) {
      DataInputStream dataInputStream = new DataInputStream(new ByteArrayInputStream(myIndexedStubBytes, 0, myIndexedStubByteLength));
      Map<StubIndexKey<?, ?>, Map<Object, StubIdList>> readData = myStubIndexesExternalizer.doRead(dataInputStream, indexKey, null);
      if (readData == null) {
        readData = Collections.emptyMap();
      }
      incompleteMap = readData.get(indexKey);
      if (incompleteMap == null) {
        incompleteMap = Collections.emptyMap();
      }
      myDeserializedIndexedStubs.setPartialMap(incompleteMap, indexKey);
    }
    return incompleteMap.get(key);
  }
<K> StubIdList restoreIndexedStubs(@NotNull StubIndexKey<K, ?> indexKey, @NotNull K key)