1 package org.apache.rat.mp.util.ignore;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import nl.basjes.gitignore.GitIgnoreFileSet;
23 import org.apache.maven.plugin.logging.Log;
24
25 import java.io.File;
26 import java.util.Optional;
27
28 public class GitIgnoreMatcher implements IgnoreMatcher {
29
30 private final GitIgnoreFileSet gitIgnoreFileSet;
31
32 public GitIgnoreMatcher(final Log log, final File projectBaseDir) {
33 log.debug("Recursively loading .gitignore files in " + projectBaseDir);
34
35 gitIgnoreFileSet = new GitIgnoreFileSet(projectBaseDir);
36 }
37
38 @Override
39 public boolean isEmpty() {
40 return gitIgnoreFileSet.isEmpty();
41 }
42
43 @Override
44 public Optional<Boolean> isIgnoredFile(String filename) {
45 Boolean isIgnoredFile = gitIgnoreFileSet.isIgnoredFile(filename);
46 if (isIgnoredFile == null) {
47 return Optional.empty();
48 }
49 return Optional.of(isIgnoredFile);
50 }
51
52 @Override
53 public String toString() {
54 return "Loaded .gitignore data:\n" + gitIgnoreFileSet;
55 }
56 }