@Override public boolean include(final RevWalk walker, final RevCommit commit, final Collection<DiffEntry> diffs) { final int length = filters.length; for (int i = 0; i < length; i++) filters[i].markStart(commit); boolean include = super.include(walker, commit, diffs); for (int i = 0; i < length; i++) filters[i].markEnd(commit); return include; }
@Override public CommitFilter reset() { added = 0; edited = 0; deleted = 0; return super.reset(); }
@Override public boolean include(final RevWalk walker, final RevCommit commit, final Collection<DiffEntry> diffs) { markStart(commit); final ObjectReader reader = walker.getObjectReader(); for (DiffEntry diff : diffs) { if (!isFileDiff(diff)) continue; final AbbreviatedObjectId oldId = diff.getOldId(); if (oldId == null) continue; if (!include(commit, diff, BlobUtils.diff(reader, oldId.toObjectId(), diff.getNewId().toObjectId()))) return markEnd(commit).include(false); } markEnd(commit); return true; }
@Override protected boolean include(final RevCommit commit, final DiffEntry diff, final Collection<Edit> edits) { final int length = filters.length; for (int i = 0; i < length; i++) filters[i].include(commit, diff, edits); return true; }
@Override protected CommitDiffEditFilter markStart(final RevCommit commit) { add = 0; edit = 0; delete = 0; return super.markStart(commit); }
@Override protected CommitDiffEditFilter markEnd(final RevCommit commit) { commits.add(new CommitImpact(commit, add, edit, delete)); if (commits.size() > limit) commits.remove(commits.last()); return super.markEnd(commit); }
@Override public CommitFilter setRepository(final Repository repository) { for (CommitDiffFilter filter : filters) filter.setRepository(repository); return super.setRepository(repository); }
/** * Handle the edits introduced by given commit. * <p> * Sub-classes should override this method. The default implementation call * {@link #include(RevCommit, DiffEntry, Edit)} for each edit. * * @param commit * non-null * @param diff * non-null * @param edits * non-null * @return true to continue, false to abort */ protected boolean include(final RevCommit commit, final DiffEntry diff, final Collection<Edit> edits) { for (Edit edit : edits) if (!include(commit, diff, edit)) return false; return true; }
@Override protected CommitDiffEditFilter markStart(final RevCommit commit) { count = 0; return super.markStart(commit); }
@Override public boolean include(final RevWalk walker, final RevCommit commit, final Collection<DiffEntry> diffs) { super.include(walker, commit, diffs); return include(commit, diffs, count) ? true : include(false); }
@Override public CommitFilter reset() { commits.clear(); return super.reset(); }