net.sf.statcvs.input

## Class CommitListBuilder

- java.lang.Object
- - net.sf.statcvs.input.CommitListBuilder

    public class CommitListBuilder
    extends java.lang.Object

Takes a set of revisions, and builds a `List` of `Commit`s from it. The result list is sorted by date. The implementation allows for a tolerance of several minutes between individual file commits, but author and message must be identical.

Version:
  $Id: CommitListBuilder.java,v 1.5 2008/04/02 11:22:15 benoitx Exp $
Author:
  Richard Cyganiak

### Constructor Summary

Constructors
Constructor and Description
`CommitListBuilder(java.util.Iterator revisions)`
`CommitListBuilder(java.util.SortedSet revisions)` Creates a new instance using the given set of `Revision`s.

### Method Summary

Methods
`protected void` `addNewCommit(Revision rev)`
`protected void` `addRevToCommit(Commit commit, Revision rev)`
`java.util.List` `createCommitList()` Creates a `List` of `Commit`s from the source iterator.
`static boolean` `isInTimeFrame(Commit commit, java.util.Date date)` Returns `true` if the date lies within the timespan of the commit, plus/minus a tolerance.
`static boolean` `isSameCommit(Commit commit, Revision rev)` Returns `true` if change is part of the commit, that is if they have the same author, the same message, and are within the same timeframe.
`protected void` `processRevision(Revision rev)`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### CommitListBuilder

    public CommitListBuilder(java.util.SortedSet revisions)

Creates a new instance using the given set of `Revision`s. The set must be sorted by date, oldest first.

Parameters:
  `revisions` - a set of `Revision`s

#### CommitListBuilder

    public CommitListBuilder(java.util.Iterator revisions)

### Method Detail

#### createCommitList

    public java.util.List createCommitList()

Creates a `List` of `Commit`s from the source iterator. The result list will be sorted by date.

Returns:
  a new list of `Commit` objects

#### processRevision

    protected void processRevision(Revision rev)

#### addNewCommit

    protected void addNewCommit(Revision rev)

#### addRevToCommit

    protected void addRevToCommit(Commit commit,
                      Revision rev)

#### isSameCommit

    public static boolean isSameCommit(Commit commit,
                       Revision rev)

Returns `true` if change is part of the commit, that is if they have the same author, the same message, and are within the same timeframe.

Parameters:
  `commit` - the commit
  `rev` - the revision to check against this commit
Returns:
  `true` if change is part of this commit

#### isInTimeFrame

    public static boolean isInTimeFrame(Commit commit,
                        java.util.Date date)

Returns `true` if the date lies within the timespan of the commit, plus/minus a tolerance.

Parameters:
  `date` - the date to check against this commit
Returns:
  `true` if the date lies within the timespan of the commit