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
    Modifier and Type | Method and Description
    --- | ---
    `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