public abstract class RevFilter extends Object
This is an abstract interface. Applications may implement a subclass, or use
one of the predefined implementations already available within this package.
Filters may be chained together using AndRevFilter
and
OrRevFilter
to create complex boolean expressions.
Applications should install the filter on a RevWalk by
RevWalk.setRevFilter(RevFilter)
prior to starting traversal.
Unless specifically noted otherwise a RevFilter implementation is not thread
safe and may not be shared by different RevWalk instances at the same time.
This restriction allows RevFilter implementations to cache state within their
instances during include(RevWalk, RevCommit)
if it is beneficial to
their implementation. Deep clones created by clone()
may be used to
construct a thread-safe copy of an existing filter.
Message filters:
AuthorRevFilter
CommitterRevFilter
MessageRevFilter
Merge filters:
NO_MERGES
.Boolean modifiers:
AndRevFilter
OrRevFilter
NotRevFilter
Modifier and Type | Field and Description |
---|---|
static RevFilter |
ALL
Default filter that always returns true (thread safe).
|
static RevFilter |
MERGE_BASE
Selects only merge bases of the starting points (thread safe).
|
static RevFilter |
NO_MERGES
Excludes commits with more than one parent (thread safe).
|
static RevFilter |
NONE
Default filter that always returns false (thread safe).
|
Constructor and Description |
---|
RevFilter() |
Modifier and Type | Method and Description |
---|---|
abstract RevFilter |
clone()
Clone this revision filter, including its parameters.
|
abstract boolean |
include(RevWalk walker,
RevCommit cmit)
Determine if the supplied commit should be included in results.
|
RevFilter |
negate()
Create a new filter that does the opposite of this filter.
|
boolean |
requiresCommitBody() |
String |
toString() |
public static final RevFilter ALL
public static final RevFilter NONE
public static final RevFilter NO_MERGES
public static final RevFilter MERGE_BASE
This is a special case filter that cannot be combined with any other filter. Its include method always throws an exception as context information beyond the arguments is necessary to determine if the supplied commit is a merge base.
public RevFilter negate()
public boolean requiresCommitBody()
public abstract boolean include(RevWalk walker, RevCommit cmit) throws StopWalkException, MissingObjectException, IncorrectObjectTypeException, IOException
walker
- the active walker this filter is being invoked from within.cmit
- the commit currently being tested. The commit has been parsed
and its body is available for inspection only if the filter
returns true from requiresCommitBody()
.StopWalkException
- the filter knows for certain that no additional commits can
ever match, and the current commit doesn't match either. The
walk is halted and no more results are provided.MissingObjectException
- an object the filter needs to consult to determine its answer
does not exist in the Git repository the walker is operating
on. Filtering this commit is impossible without the object.IncorrectObjectTypeException
- an object the filter needed to consult was not of the
expected object type. This usually indicates a corrupt
repository, as an object link is referencing the wrong type.IOException
- a loose object or pack file could not be read to obtain data
necessary for the filter to make its decision.public abstract RevFilter 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.
Copyright © 2015 Eclipse JGit Project. All rights reserved.