org.gitective.core.filter.commit
Class CompositeDiffEditFilter

java.lang.Object
  extended by org.eclipse.jgit.revwalk.filter.RevFilter
      extended by org.gitective.core.filter.commit.CommitFilter
          extended by org.gitective.core.filter.commit.CommitDiffFilter
              extended by org.gitective.core.filter.commit.CommitDiffEditFilter
                  extended by org.gitective.core.filter.commit.CompositeDiffEditFilter
All Implemented Interfaces:
Cloneable
Direct Known Subclasses:
AllDiffEditFilter

public class CompositeDiffEditFilter
extends CommitDiffEditFilter

Parent filter for adding child CommitDiffEditFilter filters

This is an optimization when using multiple CommitDiffEditFilter instances in a single RevWalk so the TreeWalk between the current commits and its parent(s) only has to be performed once per commit visited.


Field Summary
protected  CommitDiffEditFilter[] filters
          Child filters
 
Fields inherited from class org.gitective.core.filter.commit.CommitDiffFilter
detectRenames, renameDetector
 
Fields inherited from class org.gitective.core.filter.commit.CommitFilter
repository
 
Fields inherited from class org.eclipse.jgit.revwalk.filter.RevFilter
ALL, MERGE_BASE, NO_MERGES, NONE
 
Constructor Summary
CompositeDiffEditFilter(boolean detectRenames, CommitDiffEditFilter... filters)
          Create a composite filter with given child filters
CompositeDiffEditFilter(CommitDiffEditFilter... filters)
          Create a composite filter with given child filters
 
Method Summary
 CompositeDiffEditFilter add(CommitDiffFilter... addedFilters)
          Add child filters to this filter.
protected  CommitDiffEditFilter[] cloneFilters()
          Clone each filter into a new array.
 int getSize()
          Get the number of filters that have been added as a child filter to this filter
 boolean include(org.eclipse.jgit.revwalk.RevWalk walker, org.eclipse.jgit.revwalk.RevCommit commit, Collection<org.eclipse.jgit.diff.DiffEntry> diffs)
          Handle the differences introduced by given commit.
 CommitFilter reset()
          Resets the filter state.
 CommitFilter setRepository(org.eclipse.jgit.lib.Repository repository)
          Set the repository for the walk that is about to begin.
 
Methods inherited from class org.gitective.core.filter.commit.CommitDiffEditFilter
include, include, markEnd, markStart
 
Methods inherited from class org.gitective.core.filter.commit.CommitDiffFilter
createTreeWalk, include, include, isFileDiff
 
Methods inherited from class org.gitective.core.filter.commit.CommitFilter
clone, include, setStop
 
Methods inherited from class org.eclipse.jgit.revwalk.filter.RevFilter
negate, requiresCommitBody, toString
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

filters

protected CommitDiffEditFilter[] filters
Child filters

Constructor Detail

CompositeDiffEditFilter

public CompositeDiffEditFilter(boolean detectRenames,
                               CommitDiffEditFilter... filters)
Create a composite filter with given child filters

Parameters:
detectRenames -
filters -

CompositeDiffEditFilter

public CompositeDiffEditFilter(CommitDiffEditFilter... filters)
Create a composite filter with given child filters

Parameters:
filters -
Method Detail

add

public CompositeDiffEditFilter add(CommitDiffFilter... addedFilters)
Add child filters to this filter.

This method resizes an internal array on each call so it should be called with as many child filters at once instead of once per child filter.

Parameters:
addedFilters -
Returns:
this filter

setRepository

public CommitFilter setRepository(org.eclipse.jgit.lib.Repository repository)
Description copied from class: CommitFilter
Set the repository for the walk that is about to begin.

Overrides:
setRepository in class CommitDiffFilter
Returns:
this filter

reset

public CommitFilter reset()
Description copied from class: CommitFilter
Resets the filter state. The base implementation does nothing by default and sub-classes should override if custom reset logic exists.

Overrides:
reset in class CommitFilter
Returns:
this filter

include

public boolean include(org.eclipse.jgit.revwalk.RevWalk walker,
                       org.eclipse.jgit.revwalk.RevCommit commit,
                       Collection<org.eclipse.jgit.diff.DiffEntry> diffs)
Description copied from class: CommitDiffFilter
Handle the differences introduced by given commit.

Sub-classes should override this method. The default implementation calls CommitDiffFilter.include(RevCommit, Collection).

Overrides:
include in class CommitDiffEditFilter
Parameters:
walker - non-null
commit - non-null
diffs - non-null
Returns:
true to continue, false to abort

cloneFilters

protected CommitDiffEditFilter[] cloneFilters()
Clone each filter into a new array.

Returns:
non-null but possibly empty array of child filters

getSize

public int getSize()
Get the number of filters that have been added as a child filter to this filter

Returns:
number of children filters


Copyright © 2011-2012. All Rights Reserved.