org.eclipse.jgit.revwalk

## Class RevCommitList<E extends RevCommit>

- java.lang.Object
- - java.util.AbstractCollection<E>
  - - java.util.AbstractList<E>
    - - org.eclipse.jgit.revwalk.RevObjectList<E>
      - - org.eclipse.jgit.revwalk.RevCommitList<E>

Type Parameters:
  `E` - type of subclass of RevCommit the list is storing.

All Implemented Interfaces:
  Iterable<E>, Collection<E>, List<E>

Direct Known Subclasses:
  PlotCommitList

    public class RevCommitList<E extends RevCommit>
    extends RevObjectList<E>

An ordered list of `RevCommit` subclasses.

### Nested Class Summary

### Nested classes/interfaces inherited from class org.eclipse.jgit.revwalk.RevObjectList

`RevObjectList.Block`

### Field Summary

### Fields inherited from class org.eclipse.jgit.revwalk.RevObjectList

`contents, size`

### Fields inherited from class java.util.AbstractList

`modCount`

### Constructor Summary

Constructors
Constructor and Description
`RevCommitList()`

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `applyFlag(RevFilter matching, RevFlag flag)` Apply a flag to all commits matching the specified filter.
`void` `applyFlag(RevFilter matching, RevFlag flag, int rangeBegin, int rangeEnd)` Apply a flag to all commits matching the specified filter.
`void` `clear()`
`void` `clearFlag(RevFlag flag)` Remove the given flag from all commits.
`void` `clearFlag(RevFlag flag, int rangeBegin, int rangeEnd)` Remove the given flag from all commits.
`protected void` `enter(int index, E e)` Optional callback invoked when commits enter the list by fillTo.
`void` `fillTo(int highMark)` Ensure this list contains at least a specified number of commits.
`void` `fillTo(RevCommit commitToLoad, int highMark)` Ensures all commits until the given commit are loaded.
`int` `indexOf(RevFlag flag, int begin)` Find the next commit that has the given flag set.
`boolean` `isPending()` Is this list still pending more items?
`int` `lastIndexOf(RevFlag flag, int begin)` Find the next commit that has the given flag set.
`void` `source(RevWalk w)` Set the revision walker this list populates itself from.

### Methods inherited from class org.eclipse.jgit.revwalk.RevObjectList

`add, get, set, size`

### Methods inherited from class java.util.AbstractList

`add, addAll, equals, hashCode, indexOf, iterator, lastIndexOf, listIterator, listIterator, remove, removeRange, subList`

### Methods inherited from class java.util.AbstractCollection

`addAll, contains, containsAll, isEmpty, remove, removeAll, retainAll, toArray, toArray, toString`

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

`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

### Methods inherited from interface java.util.List

`addAll, contains, containsAll, isEmpty, remove, removeAll, replaceAll, retainAll, sort, spliterator, toArray, toArray`

### Methods inherited from interface java.util.Collection

`parallelStream, removeIf, stream`

### Methods inherited from interface java.lang.Iterable

`forEach`

### Constructor Detail

#### RevCommitList

    public RevCommitList()

### Method Detail

#### clear

    public void clear()

Specified by:
  `clear` in interface `Collection<E extends RevCommit>`
Specified by:
  `clear` in interface `List<E extends RevCommit>`
Overrides:
  `clear` in class `RevObjectList<E extends RevCommit>`

#### applyFlag

    public void applyFlag(RevFilter matching,
                          RevFlag flag)
                   throws MissingObjectException,
                          IncorrectObjectTypeException,
                          IOException

Apply a flag to all commits matching the specified filter.

Same as `applyFlag(matching, flag, 0, size())`, but without the incremental behavior.

Parameters:
  `matching` - the filter to test commits with. If the filter includes a commit it will have the flag set; if the filter does not include the commit the flag will be unset.
  `flag` - the flag to apply (or remove). Applications are responsible for allocating this flag from the source RevWalk.
Throws:
  `IOException` - revision filter needed to read additional objects, but an error occurred while reading the pack files or loose objects of the repository.
  `IncorrectObjectTypeException` - revision filter needed to read additional objects, but an object was not of the correct type. Repository corruption may have occurred.
  `MissingObjectException` - revision filter needed to read additional objects, but an object that should be present was not found. Repository corruption may have occurred.

#### applyFlag

    public void applyFlag(RevFilter matching,
                          RevFlag flag,
                          int rangeBegin,
                          int rangeEnd)
                   throws MissingObjectException,
                          IncorrectObjectTypeException,
                          IOException

Apply a flag to all commits matching the specified filter.

This version allows incremental testing and application, such as from a background thread that needs to periodically halt processing and send updates to the UI.

Parameters:
  `matching` - the filter to test commits with. If the filter includes a commit it will have the flag set; if the filter does not include the commit the flag will be unset.
  `flag` - the flag to apply (or remove). Applications are responsible for allocating this flag from the source RevWalk.
  `rangeBegin` - first commit within the list to begin testing at, inclusive. Must not be negative, but may be beyond the end of the list.
  `rangeEnd` - last commit within the list to end testing at, exclusive. If smaller than or equal to `rangeBegin` then no commits will be tested.
Throws:
  `IOException` - revision filter needed to read additional objects, but an error occurred while reading the pack files or loose objects of the repository.
  `IncorrectObjectTypeException` - revision filter needed to read additional objects, but an object was not of the correct type. Repository corruption may have occurred.
  `MissingObjectException` - revision filter needed to read additional objects, but an object that should be present was not found. Repository corruption may have occurred.

#### clearFlag

    public void clearFlag(RevFlag flag)

Remove the given flag from all commits.

Same as `clearFlag(flag, 0, size())`, but without the incremental behavior.

Parameters:
  `flag` - the flag to remove. Applications are responsible for allocating this flag from the source RevWalk.

#### clearFlag

    public void clearFlag(RevFlag flag,
                          int rangeBegin,
                          int rangeEnd)

Remove the given flag from all commits.

This method is actually implemented in terms of: `applyFlag(RevFilter.NONE, flag, rangeBegin, rangeEnd)`.

Parameters:
  `flag` - the flag to remove. Applications are responsible for allocating this flag from the source RevWalk.
  `rangeBegin` - first commit within the list to begin testing at, inclusive. Must not be negative, but may be beyond the end of the list.
  `rangeEnd` - last commit within the list to end testing at, exclusive. If smaller than or equal to `rangeBegin` then no commits will be tested.

#### indexOf

    public int indexOf(RevFlag flag,
                       int begin)

Find the next commit that has the given flag set.

Parameters:
  `flag` - the flag to test commits against.
  `begin` - first commit index to test at. Applications may wish to begin at 0, to test the first commit in the list.
Returns:
  index of the first commit at or after index `begin` that has the specified flag set on it; -1 if no match is found.

#### lastIndexOf

    public int lastIndexOf(RevFlag flag,
                           int begin)

Find the next commit that has the given flag set.

Parameters:
  `flag` - the flag to test commits against.
  `begin` - first commit index to test at. Applications may wish to begin at `size()-1`, to test the last commit in the list.
Returns:
  index of the first commit at or before index `begin` that has the specified flag set on it; -1 if no match is found.

#### source

    public void source(RevWalk w)

Set the revision walker this list populates itself from.

Parameters:
  `w` - the walker to populate from.
See Also:
  `fillTo(int)`

#### isPending

    public boolean isPending()

Is this list still pending more items?

Returns:
  true if `fillTo(int)` might be able to extend the list size when called.

#### fillTo

    public void fillTo(int highMark)
                throws MissingObjectException,
                       IncorrectObjectTypeException,
                       IOException

Ensure this list contains at least a specified number of commits.

The revision walker specified by `source(RevWalk)` is pumped until the given number of commits are contained in this list. If there are fewer total commits available from the walk then the method will return early. Callers can test the final size of the list by `RevObjectList.size()` to determine if the high water mark specified was met.

Parameters:
  `highMark` - number of commits the caller wants this list to contain when the fill operation is complete.
Throws:
  `IOException` - see `RevWalk.next()`
  `IncorrectObjectTypeException` - see `RevWalk.next()`
  `MissingObjectException` - see `RevWalk.next()`

#### fillTo

    public void fillTo(RevCommit commitToLoad,
                       int highMark)
                throws MissingObjectException,
                       IncorrectObjectTypeException,
                       IOException

Ensures all commits until the given commit are loaded. The revision walker specified by `source(RevWalk)` is pumped until the specified commit is loaded. Callers can test the final size of the list by `RevObjectList.size()` to determine if the high water mark specified was met.

Parameters:
  `commitToLoad` - commit the caller wants this list to contain when the fill operation is complete.
  `highMark` - maximum number of commits the caller wants this list to contain when the fill operation is complete. If highMark is 0 the walk is pumped until the specified commit or the end of the walk is reached.
Throws:
  `IOException` - see `RevWalk.next()`
  `IncorrectObjectTypeException` - see `RevWalk.next()`
  `MissingObjectException` - see `RevWalk.next()`

#### enter

    protected void enter(int index,
                         E e)

Optional callback invoked when commits enter the list by fillTo.

This method is only called during `fillTo(int)`.

Parameters:
  `index` - the list position this object will appear at.
  `e` - the object being added (or set) into the list.