Top Description Inners Constructors Methods
org.eclipse.jgit.treewalk.filter

public Class PathFilterGroup

extends Object
Class Inheritance
Imports
java.util.Collection, .Optional, .Set, org.eclipse.jgit.errors.StopWalkException, org.eclipse.jgit.internal.JGitText, org.eclipse.jgit.treewalk.TreeWalk, org.eclipse.jgit.treewalk.filter.ByteArraySet.Hasher, org.eclipse.jgit.util.RawParseUtils

Includes tree entries only if they match one or more configured paths.

Operates like org.eclipse.jgit.treewalk.filter.PathFilter but causes the walk to abort as soon as the tree can no longer match any of the paths within the group. This may bypass the boolean logic of a higher level AND or OR group, but does improve performance for the common case of examining one or more modified paths.

This filter is effectively an OR group around paths, with the early abort feature described above.

Nested and Inner Type Summary

Modifier and TypeClass and Description
pack-priv static class
pack-priv static class

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
public static TreeFilter

Returns:

a new filter for the list of paths supplied.
create
(Collection<PathFilter>
the paths to test against. Must have at least one entry.
paths
)

Create a collection of path filters.

private static TreeFilter
public static TreeFilter

Returns:

a new filter for the list of paths supplied.
createFromStrings
(Collection<String>
the paths to test against. Must have at least one entry.
paths
)

Create a collection of path filters from Java strings.

public static TreeFilter

Returns:

a new filter for the paths supplied.
createFromStrings
(String...
the paths to test against. Must have at least one entry.
paths
)

Create a collection of path filters from Java strings.

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Constructor Detail

PathFilterGroupback to summary
public PathFilterGroup()

Method Detail

createback to summary
public static TreeFilter create(Collection<PathFilter> paths)

Create a collection of path filters.

Paths may appear in any order within the collection. Sorting may be done internally when the group is constructed if doing so will improve path matching performance.

Parameters
paths:Collection<PathFilter>

the paths to test against. Must have at least one entry.

Returns:TreeFilter

a new filter for the list of paths supplied.

createback to summary
private static TreeFilter create(PathFilter[] p)
createFromStringsback to summary
public static TreeFilter createFromStrings(Collection<String> paths)

Create a collection of path filters from Java strings.

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.

Paths may appear in any order within the collection. Sorting may be done internally when the group is constructed if doing so will improve path matching performance.

Parameters
paths:Collection<String>

the paths to test against. Must have at least one entry.

Returns:TreeFilter

a new filter for the list of paths supplied.

createFromStringsback to summary
public static TreeFilter createFromStrings(String... paths)

Create a collection of path filters from Java strings.

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.

Paths may appear in any order. Sorting may be done internally when the group is constructed if doing so will improve path matching performance.

Parameters
paths:String[]

the paths to test against. Must have at least one entry.

Returns:TreeFilter

a new filter for the paths supplied.

org.eclipse.jgit.treewalk.filter back to summary

pack-priv Class PathFilterGroup.Group

extends TreeFilter
Class Inheritance

Field Summary

Modifier and TypeField and Description
private ByteArraySet
private byte[]
private ByteArraySet
Inherited from org.eclipse.jgit.treewalk.filter.TreeFilter:
ALLANY_DIFF

Constructor Summary

AccessConstructor and Description
private
Group(PathFilter[] pathFilters)

Method Summary

Modifier and TypeMethod and Description
public TreeFilter
clone()

Implements abstract org.eclipse.jgit.treewalk.filter.TreeFilter.clone.

Creates and returns a copy of this object.

private static int
compare(byte[] a, byte[] b)

public Optional<Set<byte[]>>
getPathsBestEffort()

Overrides org.eclipse.jgit.treewalk.filter.TreeFilter.getPathsBestEffort.

If this filter checks that at least one of the paths in a set has been modified, returns that set of paths to be checked against a changed path filter.

public boolean
include(TreeWalk
the walker the filter needs to examine.
walker
)

Implements abstract org.eclipse.jgit.treewalk.filter.TreeFilter.include.

Determine if the current entry is interesting to report.

public boolean
shouldBeRecursive()

Implements abstract org.eclipse.jgit.treewalk.filter.TreeFilter.shouldBeRecursive.

Does this tree filter require a recursive walk to match everything?

public String
toString()

Overrides org.eclipse.jgit.treewalk.filter.TreeFilter.toString.

Returns a string representation of the object.

Inherited from org.eclipse.jgit.treewalk.filter.TreeFilter:
matchFilternegate

Field Detail

fullpathsback to summary
private ByteArraySet fullpaths
maxback to summary
private byte[] max
prefixesback to summary
private ByteArraySet prefixes

Constructor Detail

Groupback to summary
private Group(PathFilter[] pathFilters)

Method Detail

cloneback to summary
public TreeFilter clone()

Implements abstract org.eclipse.jgit.treewalk.filter.TreeFilter.clone.

Doc from org.eclipse.jgit.treewalk.filter.TreeFilter.clone.

Creates and returns a copy of this object. The precise meaning of "copy" may depend on the class of the object. The general intent is that, for any object x, the expression:

x.clone() != x
will be true, and that the expression:
x.clone().getClass() == x.getClass()
will be true, but these are not absolute requirements. While it is typically the case that:
x.clone().equals(x)
will be true, this is not an absolute requirement.

By convention, the returned object should be obtained by calling super.clone. If a class and all of its superclasses (except Object) obey this convention, it will be the case that x.clone().getClass() == x.getClass().

By convention, the object returned by this method should be independent of this object (which is being cloned). To achieve this independence, it may be necessary to modify one or more fields of the object returned by super.clone before returning it. Typically, this means copying any mutable objects that comprise the internal "deep structure" of the object being cloned and replacing the references to these objects with references to the copies. If a class contains only primitive fields or references to immutable objects, then it is usually the case that no fields in the object returned by super.clone need to be modified. Clone this tree filter, including its parameters.

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.

Returns:TreeFilter

Doc from java.lang.Object.clone.

a clone of this instance.

Annotations
@Override
compareback to summary
private static int compare(byte[] a, byte[] b)
getPathsBestEffortback to summary
public Optional<Set<byte[]>> getPathsBestEffort()

Overrides org.eclipse.jgit.treewalk.filter.TreeFilter.getPathsBestEffort.

Doc from org.eclipse.jgit.treewalk.filter.TreeFilter.getPathsBestEffort.

If this filter checks that at least one of the paths in a set has been modified, returns that set of paths to be checked against a changed path filter. Otherwise, returns empty.

Returns:Optional<Set<byte[]>>

a set of paths, or empty

Annotations
@Override
includeback to summary
public boolean include(TreeWalk walker)

Implements abstract org.eclipse.jgit.treewalk.filter.TreeFilter.include.

Doc from org.eclipse.jgit.treewalk.filter.TreeFilter.include.

Determine if the current entry is interesting to report.

This method is consulted for subtree entries even if org.eclipse.jgit.treewalk.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.

Parameters
walker:TreeWalk

the walker the filter needs to examine.

Returns:boolean

true if the current entry should be seen by the application; false to hide the entry.

Annotations
@Override
shouldBeRecursiveback to summary
public boolean shouldBeRecursive()

Implements abstract org.eclipse.jgit.treewalk.filter.TreeFilter.shouldBeRecursive.

Doc from org.eclipse.jgit.treewalk.filter.TreeFilter.shouldBeRecursive.

Does this tree filter require a recursive walk to match everything?

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.

Returns:boolean

true if the filter would like to have the walker recurse into subtrees to make sure it matches everything correctly; false if the filter does not require entering subtrees.

Annotations
@Override
toStringback to summary
public String toString()

Overrides org.eclipse.jgit.treewalk.filter.TreeFilter.toString.

Doc from java.lang.Object.toString.

Returns a string representation of the object. Satisfying this method's contract implies a non-null result must be returned.

Returns:String

a string representation of the object

Annotations
@Override
org.eclipse.jgit.treewalk.filter back to summary

pack-priv Class PathFilterGroup.Single

extends TreeFilter
Class Inheritance

Field Summary

Modifier and TypeField and Description
private final PathFilter
private final byte[]
Inherited from org.eclipse.jgit.treewalk.filter.TreeFilter:
ALLANY_DIFF

Constructor Summary

AccessConstructor and Description
private

Method Summary

Modifier and TypeMethod and Description
public TreeFilter
clone()

Implements abstract org.eclipse.jgit.treewalk.filter.TreeFilter.clone.

Creates and returns a copy of this object.

public boolean
include(TreeWalk
the walker the filter needs to examine.
walker
)

Implements abstract org.eclipse.jgit.treewalk.filter.TreeFilter.include.

Determine if the current entry is interesting to report.

public boolean
shouldBeRecursive()

Implements abstract org.eclipse.jgit.treewalk.filter.TreeFilter.shouldBeRecursive.

Does this tree filter require a recursive walk to match everything?

public String
toString()

Overrides org.eclipse.jgit.treewalk.filter.TreeFilter.toString.

Returns a string representation of the object.

Inherited from org.eclipse.jgit.treewalk.filter.TreeFilter:
getPathsBestEffortmatchFilternegate

Field Detail

pathback to summary
private final PathFilter path
rawback to summary
private final byte[] raw

Constructor Detail

Singleback to summary
private Single(PathFilter p)

Method Detail

cloneback to summary
public TreeFilter clone()

Implements abstract org.eclipse.jgit.treewalk.filter.TreeFilter.clone.

Doc from org.eclipse.jgit.treewalk.filter.TreeFilter.clone.

Creates and returns a copy of this object. The precise meaning of "copy" may depend on the class of the object. The general intent is that, for any object x, the expression:

x.clone() != x
will be true, and that the expression:
x.clone().getClass() == x.getClass()
will be true, but these are not absolute requirements. While it is typically the case that:
x.clone().equals(x)
will be true, this is not an absolute requirement.

By convention, the returned object should be obtained by calling super.clone. If a class and all of its superclasses (except Object) obey this convention, it will be the case that x.clone().getClass() == x.getClass().

By convention, the object returned by this method should be independent of this object (which is being cloned). To achieve this independence, it may be necessary to modify one or more fields of the object returned by super.clone before returning it. Typically, this means copying any mutable objects that comprise the internal "deep structure" of the object being cloned and replacing the references to these objects with references to the copies. If a class contains only primitive fields or references to immutable objects, then it is usually the case that no fields in the object returned by super.clone need to be modified. Clone this tree filter, including its parameters.

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.

Returns:TreeFilter

Doc from java.lang.Object.clone.

a clone of this instance.

Annotations
@Override
includeback to summary
public boolean include(TreeWalk walker)

Implements abstract org.eclipse.jgit.treewalk.filter.TreeFilter.include.

Doc from org.eclipse.jgit.treewalk.filter.TreeFilter.include.

Determine if the current entry is interesting to report.

This method is consulted for subtree entries even if org.eclipse.jgit.treewalk.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.

Parameters
walker:TreeWalk

the walker the filter needs to examine.

Returns:boolean

true if the current entry should be seen by the application; false to hide the entry.

Annotations
@Override
shouldBeRecursiveback to summary
public boolean shouldBeRecursive()

Implements abstract org.eclipse.jgit.treewalk.filter.TreeFilter.shouldBeRecursive.

Doc from org.eclipse.jgit.treewalk.filter.TreeFilter.shouldBeRecursive.

Does this tree filter require a recursive walk to match everything?

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.

Returns:boolean

true if the filter would like to have the walker recurse into subtrees to make sure it matches everything correctly; false if the filter does not require entering subtrees.

Annotations
@Override
toStringback to summary
public String toString()

Overrides org.eclipse.jgit.treewalk.filter.TreeFilter.toString.

Doc from java.lang.Object.toString.

Returns a string representation of the object. Satisfying this method's contract implies a non-null result must be returned.

Returns:String

a string representation of the object

Annotations
@Override