private static @Nullable <T> T computeForFile(final @NotNull VirtualFile schemaFile,
                                                final @NotNull Project project,
                                                @NotNull Function<? super PsiFile, ? extends T> eval,
                                                @NotNull Key<CachedValue<T>> cacheKey) {
    final PsiFile psiFile = resolveFile(schemaFile, project);
    if (psiFile == null) return null;
    return getOrCompute(psiFile, eval, cacheKey);
  }
private static @Nullable <T> T computeForFile(final @NotNull VirtualFile schemaFile,
                                                final @NotNull Project project,
                                                @NotNull Function<? super PsiFile, ? extends T> eval,
                                                @NotNull Key<CachedValue<T>> cacheKey)