Package org.eclipse.jgit.ignore.internal
Class PathMatcher
java.lang.Object
org.eclipse.jgit.ignore.internal.AbstractMatcher
org.eclipse.jgit.ignore.internal.PathMatcher
- All Implemented Interfaces:
IMatcher
Matcher built by patterns consists of multiple path segments.
This class is immutable and thread safe.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final boolean
private final char
private static final WildMatcher
private static final WildMatcher
Fields inherited from class org.eclipse.jgit.ignore.internal.AbstractMatcher
dirOnly, pattern
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprivate
PathMatcher
(String pattern, Character pathSeparator, boolean dirOnly) -
Method Summary
Modifier and TypeMethodDescriptioncreateMatchers
(List<String> segments, Character pathSeparator, boolean dirOnly) private static IMatcher
createNameMatcher0
(String segment, Character pathSeparator, boolean dirOnly, boolean lastSegment) static IMatcher
createPathMatcher
(String pattern, Character pathSeparator, boolean dirOnly) Create path matcherprivate boolean
private static boolean
private boolean
private boolean
matches
(int matcherIdx, String path, int startIncl, int endExcl, boolean assumeDirectory, boolean pathMatch) boolean
Matches entire given stringboolean
Matches only part of given stringprivate boolean
simpleMatch
(String path, boolean assumeDirectory, boolean pathMatch) private static String
Trim trailing spaces, unless they are escaped with backslash, see https://www.kernel.org/pub/software/scm/git/docs/gitignore.htmlMethods inherited from class org.eclipse.jgit.ignore.internal.AbstractMatcher
equals, hashCode, toString
-
Field Details
-
WILD_NO_DIRECTORY
-
WILD_ONLY_DIRECTORY
-
matchers
-
slash
private final char slash -
beginning
private final boolean beginning
-
-
Constructor Details
-
PathMatcher
private PathMatcher(String pattern, Character pathSeparator, boolean dirOnly) throws InvalidPatternException - Throws:
InvalidPatternException
-
-
Method Details
-
isSimplePathWithSegments
-
createMatchers
private static List<IMatcher> createMatchers(List<String> segments, Character pathSeparator, boolean dirOnly) throws InvalidPatternException - Throws:
InvalidPatternException
-
createPathMatcher
public static IMatcher createPathMatcher(String pattern, Character pathSeparator, boolean dirOnly) throws InvalidPatternException Create path matcher- Parameters:
pattern
- a patternpathSeparator
- if this parameter isn't null then this character will not match at wildcards(* and ? are wildcards).dirOnly
- a boolean.- Returns:
- never null
- Throws:
InvalidPatternException
-
trim
Trim trailing spaces, unless they are escaped with backslash, see https://www.kernel.org/pub/software/scm/git/docs/gitignore.html- Parameters:
pattern
- non null- Returns:
- trimmed pattern
-
createNameMatcher0
private static IMatcher createNameMatcher0(String segment, Character pathSeparator, boolean dirOnly, boolean lastSegment) throws InvalidPatternException - Throws:
InvalidPatternException
-
matches
Matches entire given string- Parameters:
path
- string which is not null, but might be emptyassumeDirectory
- true to assume this path as directory (even if it doesn't end with a slash)pathMatch
-true
if the match is for the full path: prefix-only matches are not allowed- Returns:
- true if this matcher pattern matches given string
-
simpleMatch
-
matches
Matches only part of given string- Parameters:
segment
- string which is not null, but might be emptystartIncl
- start index, inclusiveendExcl
- end index, exclusive- Returns:
- true if this matcher pattern matches given string
-
iterate
private boolean iterate(String path, int startIncl, int endExcl, boolean assumeDirectory, boolean pathMatch) -
matches
private boolean matches(int matcherIdx, String path, int startIncl, int endExcl, boolean assumeDirectory, boolean pathMatch) -
isWild
-