PT #152680720 Support *.gradle build files

This commit is contained in:
BoykoAlex
2017-11-08 18:42:24 -05:00
parent f4595a65a9
commit aa96122d5c
19 changed files with 406 additions and 3 deletions

View File

@@ -11,6 +11,11 @@
package org.springframework.ide.vscode.commons.util;
import java.io.File;
import java.nio.file.PathMatcher;
import java.util.Arrays;
import java.util.List;
import java.util.Optional;
import java.util.stream.Stream;
/**
* Utilitity methods for working with files
@@ -42,5 +47,21 @@ public class FileUtils {
}
return null;
}
public static Optional<File> findFile(File folder, List<PathMatcher> matchers, boolean recursiveUp) {
if (folder != null && folder.exists()) {
Optional<File> found = (folder.isDirectory() ? Arrays.stream(folder.listFiles()) : Stream.of(folder))
.map(f -> f.toPath())
.filter(p -> matchers.stream().filter(m -> m.matches(p)).findFirst().isPresent())
.findFirst()
.map(p -> p.toFile());
if (found.isPresent()) {
return found;
} else {
return recursiveUp ? findFile(folder.getParentFile(), matchers, recursiveUp) : found;
}
}
return Optional.empty();
}
}