package com.google.jstestdriver.idea.util; import com.google.common.collect.Lists; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.util.Computable; import com.intellij.openapi.vfs.VfsUtil; import com.intellij.openapi.vfs.VirtualFile; import java.util.List; public class VfsUtils { private VfsUtils() {} public static List<VirtualFile> findVirtualFilesByResourceNames(final Class<?> markerClass, final String[] resourceNames) { return ApplicationManager.getApplication().runReadAction(new Computable<List<VirtualFile>>() { @Override public List<VirtualFile> compute() { List<VirtualFile> virtualFiles = Lists.newArrayList(); for (String resourceName : resourceNames) { VirtualFile virtualFile = findVirtualFile(markerClass, resourceName); virtualFiles.add(virtualFile); } return virtualFiles; } }); } private static VirtualFile findVirtualFile(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; } }