Search in sources :

Example 1 with PrologException

use of com.googlecode.prolog_cafe.exceptions.PrologException in project gerrit by GerritCodeReview.

the class PRED_files_1 method getAllSubmodulePaths.

/**
 * Returns the paths for all {@code GITLINK} files.
 */
private static Set<String> getAllSubmodulePaths(Repository repository, RevCommit commit, Collection<FileDiffOutput> modifiedFiles) throws PrologException, IOException {
    Set<String> submodules = new HashSet<>();
    try (TreeWalk treeWalk = new TreeWalk(repository)) {
        treeWalk.addTree(commit.getTree());
        Set<String> allPaths = modifiedFiles.stream().map(f -> FilePathAdapter.getNewPath(f.oldPath(), f.newPath(), f.changeType())).filter(f -> !Patch.isMagic(f)).collect(Collectors.toSet());
        treeWalk.setFilter(PathFilterGroup.createFromStrings(allPaths));
        while (treeWalk.next()) {
            if (treeWalk.getFileMode() == FileMode.GITLINK) {
                submodules.add(treeWalk.getPathString());
            }
        }
        return submodules;
    }
}
Also used : Patch(com.google.gerrit.entities.Patch) TreeWalk(org.eclipse.jgit.treewalk.TreeWalk) RevCommit(org.eclipse.jgit.revwalk.RevCommit) Term(com.googlecode.prolog_cafe.lang.Term) FileMode(org.eclipse.jgit.lib.FileMode) Collection(java.util.Collection) PrologException(com.googlecode.prolog_cafe.exceptions.PrologException) Set(java.util.Set) Prolog(com.googlecode.prolog_cafe.lang.Prolog) IOException(java.io.IOException) Collectors(java.util.stream.Collectors) StructureTerm(com.googlecode.prolog_cafe.lang.StructureTerm) HashSet(java.util.HashSet) RevWalk(org.eclipse.jgit.revwalk.RevWalk) FileDiffOutput(com.google.gerrit.server.patch.filediff.FileDiffOutput) SymbolTerm(com.googlecode.prolog_cafe.lang.SymbolTerm) FilePathAdapter(com.google.gerrit.server.patch.FilePathAdapter) Predicate(com.googlecode.prolog_cafe.lang.Predicate) ListTerm(com.googlecode.prolog_cafe.lang.ListTerm) Operation(com.googlecode.prolog_cafe.lang.Operation) Repository(org.eclipse.jgit.lib.Repository) StoredValues(com.google.gerrit.server.rules.StoredValues) PathFilterGroup(org.eclipse.jgit.treewalk.filter.PathFilterGroup) TreeWalk(org.eclipse.jgit.treewalk.TreeWalk) HashSet(java.util.HashSet)

Aggregations

Patch (com.google.gerrit.entities.Patch)1 FilePathAdapter (com.google.gerrit.server.patch.FilePathAdapter)1 FileDiffOutput (com.google.gerrit.server.patch.filediff.FileDiffOutput)1 StoredValues (com.google.gerrit.server.rules.StoredValues)1 PrologException (com.googlecode.prolog_cafe.exceptions.PrologException)1 ListTerm (com.googlecode.prolog_cafe.lang.ListTerm)1 Operation (com.googlecode.prolog_cafe.lang.Operation)1 Predicate (com.googlecode.prolog_cafe.lang.Predicate)1 Prolog (com.googlecode.prolog_cafe.lang.Prolog)1 StructureTerm (com.googlecode.prolog_cafe.lang.StructureTerm)1 SymbolTerm (com.googlecode.prolog_cafe.lang.SymbolTerm)1 Term (com.googlecode.prolog_cafe.lang.Term)1 IOException (java.io.IOException)1 Collection (java.util.Collection)1 HashSet (java.util.HashSet)1 Set (java.util.Set)1 Collectors (java.util.stream.Collectors)1 FileMode (org.eclipse.jgit.lib.FileMode)1 Repository (org.eclipse.jgit.lib.Repository)1 RevCommit (org.eclipse.jgit.revwalk.RevCommit)1