## 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
`CommitListBuilder(java.util.Iterator revisions)`
`CommitListBuilder(java.util.SortedSet revisions)` Creates a new instance using the given set of `Revision`s.

Method Summary
`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