package com.google.jstestdriver.idea.util; import com.google.common.collect.Lists; import com.intellij.openapi.application.ReadAction; import com.intellij.openapi.vfs.VfsUtil; import com.intellij.openapi.vfs.VirtualFile; import org.jetbrains.annotations.NotNull; import java.util.List; public class VfsUtils { private VfsUtils() {} @NotNull public static List<VirtualFile> findVirtualFilesByResourceNames(final Class<?> markerClass, final String[] resourceNames) { return ReadAction.compute(() -> { List<VirtualFile> virtualFiles = Lists.newArrayList(); for (String resourceName : resourceNames) { VirtualFile virtualFile = findVirtualFileByResourceName(markerClass, resourceName); virtualFiles.add(virtualFile); } return virtualFiles; }); } @NotNull private static VirtualFile findVirtualFileByResourceName(Class<?> markerClazz, String resourceName) { VirtualFile file = VfsUtil.findFileByURL(markerClazz.getResource(resourceName)); if (file == null) { throw new RuntimeException("Can't find virtual file for '" + resourceName + "', class " + markerClazz); } return file; } }