package org.eclipse.emf.test.ecore.xcore.legacy_xpect_runner; import java.io.File; import java.util.List; import org.eclipse.emf.common.util.URI; import com.google.common.base.Predicate; import com.google.common.collect.Lists; /** * This class will be removed in the next release after 2.4.2 * * @author Moritz Eysholdt - Initial contribution and API */ public class ResourceURICollector { public static class FilePredicate implements Predicate<File> { private final String[] fileExtensions; public FilePredicate(String... fileExts) { this.fileExtensions = fileExts; } public boolean apply(File input) { for (String ext : fileExtensions) if (input.getName().endsWith("." + ext)) return true; return false; } } protected void collectFiles(File dir, List<URI> result, Predicate<File> shouldCollect) { for (File child : dir.listFiles()) { if (shouldCollect.apply(child)) result.add(createURI(child)); if (child.isDirectory()) collectFiles(child, result, shouldCollect); } } public List<URI> collectFiles(String directory, Predicate<File> shouldCollect) { File dir = new File(directory); if (!dir.isDirectory()) throw new RuntimeException("Directory not found: " + directory); List<URI> result = Lists.newArrayList(); collectFiles(new File(directory), result, shouldCollect); return result; } public List<URI> collectFiles(String directory, String... fileExtensions) { return collectFiles(directory, new FilePredicate(fileExtensions)); } public List<URI> collectFiles(String... files) { List<URI> result = Lists.newArrayList(); for (String file : files) { File f = new File(file); if (!f.exists()) throw new RuntimeException("File not found: " + file); result.add(createURI(f)); } return result; } protected URI createURI(File file) { return URI.createFileURI(file.getAbsolutePath()); } }