public static byte @NotNull [] getOrLoadAsBytes(@NotNull Project project,
                                                  @NotNull FilePath path,
                                                  @NotNull VcsRevisionNumber number,
                                                  @NotNull VcsKey vcsKey,
                                                  @NotNull UniqueType type,
                                                  @NotNull Throwable2Computable<byte @NotNull [], ? extends VcsException, ? extends IOException> loader)
    throws VcsException, IOException {
    ContentRevisionCache cache = ProjectLevelVcsManager.getInstance(project).getContentRevisionCache();
    byte[] bytes = cache.getBytes(path, number, vcsKey, type);
    if (bytes != null) {
      return bytes;
    }
    bytes = cache.getFromConstantCache(path, number, vcsKey, type);
    if (bytes != null) {
      return bytes;
    }

    checkLocalFileSize(path);
    bytes = loader.compute();
    cache.put(path, number, vcsKey, type, bytes);
    return bytes;
  }
public static byte @NotNull [] getOrLoadAsBytes(@NotNull Project project,
                                                  @NotNull FilePath path,
                                                  @NotNull VcsRevisionNumber number,
                                                  @NotNull VcsKey vcsKey,
                                                  @NotNull UniqueType type,
                                                  @NotNull Throwable2Computable<byte @NotNull [], ? extends VcsException, ? extends IOException> loader)