public class PathFilter extends TreeFilter
Applications should use
PathFilterGroup
to connect these
into a tree filter graph, as the group supports breaking out of traversal
once it is known the path can never match.
ALL, ANY_DIFF
Modifier and Type | Method and Description |
---|---|
PathFilter |
clone()
Clone this tree filter, including its parameters.
|
static PathFilter |
create(String path)
Create a new tree filter for a user supplied path.
|
String |
getPath()
Get the path this filter matches.
|
boolean |
include(TreeWalk walker)
Determine if the current entry is interesting to report.
|
boolean |
isDone(TreeWalk walker)
Whether the path length of this filter matches the length of the current
path of the supplied TreeWalk.
|
int |
matchFilter(TreeWalk walker)
Determine if the current entry is a parent, a match, or no match.
|
boolean |
shouldBeRecursive()
Does this tree filter require a recursive walk to match everything?
|
String |
toString() |
negate
public static PathFilter create(String path)
Path strings are relative to the root of the repository. If the user's input should be assumed relative to a subdirectory of the repository the caller must prepend the subdirectory's path prior to creating the filter.
Path strings use '/' to delimit directories on all platforms.
path
- the path to filter on. Must not be the empty string. All
trailing '/' characters will be trimmed before string's length
is checked or is used as part of the constructed filter.IllegalArgumentException
- the path supplied was the empty string.public String getPath()
public boolean include(TreeWalk walker)
This method is consulted for subtree entries even if
TreeWalk.isRecursive()
is enabled. The
consultation allows the filter to bypass subtree recursion on a
case-by-case basis, even when recursion is enabled at the application
level.
include
in class TreeFilter
walker
- the walker the filter needs to examine.public int matchFilter(TreeWalk walker)
This method extends the result returned by TreeFilter.include(TreeWalk)
with a third option (-1), splitting the value true. This gives the
application a possibility to distinguish between an exact match and the
case when a subtree to the current entry might be a match.
matchFilter
in class TreeFilter
walker
- the walker the filter needs to examine.public boolean shouldBeRecursive()
If this tree filter is matching on full entry path names and its pattern is looking for a '/' then the filter would require a recursive TreeWalk to accurately make its decisions. The walker is not required to enable recursive behavior for any particular filter, this is only a hint.
shouldBeRecursive
in class TreeFilter
public PathFilter clone()
This is a deep clone. If this filter embeds objects or other filters it must also clone those, to ensure the instances do not share mutable data.
clone
in class TreeFilter
public String toString()
toString
in class TreeFilter
public boolean isDone(TreeWalk walker)
walker
- The walk to check against.true
if the path length of this filter matches the length
of the current path of the supplied TreeWalk.Copyright © 2020 Eclipse JGit Project. All rights reserved.