ec7dbec0784891ac23288fde37ef11b919220e4a
[idea/community.git] / json / src / com / jetbrains / jsonSchema / extension / JsonSchemaProviderFactory.java
1 package com.jetbrains.jsonSchema.extension;
2
3
4 import com.intellij.openapi.extensions.ExtensionPointName;
5 import com.intellij.openapi.project.Project;
6 import com.intellij.openapi.vfs.VfsUtil;
7 import com.intellij.openapi.vfs.VirtualFile;
8 import org.jetbrains.annotations.NotNull;
9 import org.jetbrains.annotations.Nullable;
10
11 import java.net.URL;
12 import java.util.List;
13
14 public interface JsonSchemaProviderFactory {
15   ExtensionPointName<JsonSchemaProviderFactory> EP_NAME = ExtensionPointName.create("JavaScript.JsonSchema.ProviderFactory");
16
17   List<JsonSchemaFileProvider> getProviders(@Nullable Project project);
18
19   static VirtualFile getResourceFile(@NotNull Class baseClass, @NotNull String resourcePath) {
20     final ClassLoader loader = baseClass.getClassLoader();
21     final URL resource = loader.getResource(resourcePath);
22     assert resource != null;
23
24     final VirtualFile file = VfsUtil.findFileByURL(resource);
25     assert file != null;
26     return file;
27   }
28 }