blob: 4733ca3747ec60968c4afa8dc908a7b63d63af43 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
package org.jetbrains.builtInWebServer;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.vfs.VfsUtilCore;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.packaging.artifacts.Artifact;
import com.intellij.packaging.artifacts.ArtifactManager;
import com.intellij.util.PairFunction;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
final class ArtifactWebServerRootsProvider extends PrefixlessWebServerRootsProvider {
@Nullable
@Override
public PathInfo resolve(@NotNull String path, @NotNull Project project, @NotNull PairFunction<String, VirtualFile, VirtualFile> resolver) {
for (Artifact artifact : ArtifactManager.getInstance(project).getArtifacts()) {
VirtualFile root = artifact.getOutputFile();
if (root != null) {
VirtualFile file = root.findFileByRelativePath(path);
if (file != null) {
return new PathInfo(file, root);
}
}
}
return null;
}
@Nullable
@Override
public PathInfo getRoot(@NotNull VirtualFile file, @NotNull Project project) {
for (Artifact artifact : ArtifactManager.getInstance(project).getArtifacts()) {
VirtualFile root = artifact.getOutputFile();
if (root != null && VfsUtilCore.isAncestor(root, file, true)) {
return new PathInfo(file, root);
}
}
return null;
}
}
|