Browse Source

ReceiveCommand.filter: Accept Iterable

PreReceiveHook is given a Collection<ReceiveCommand> and it can be
very useful here to call ReceiveCommand.filter(cmds, NOT_ATTEMPTED).

Overload filter to accept both Iterable and List.
Keep backwards binary compatibility for List by upcasting to Iterable.

Change-Id: Ib1341876c703670945ef209edc8259715ee86c26
tags/v4.2.0.201601211800-r
Shawn Pearce 8 years ago
parent
commit
f89f30ffcd
1 changed files with 28 additions and 7 deletions
  1. 28
    7
      org.eclipse.jgit/src/org/eclipse/jgit/transport/ReceiveCommand.java

+ 28
- 7
org.eclipse.jgit/src/org/eclipse/jgit/transport/ReceiveCommand.java View File

@@ -46,6 +46,7 @@ package org.eclipse.jgit.transport;
import java.io.IOException;
import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

import org.eclipse.jgit.internal.JGitText;
@@ -127,26 +128,46 @@ public class ReceiveCommand {
}

/**
* Filter a list of commands according to result.
* Filter a collection of commands according to result.
*
* @param commands
* @param in
* commands to filter.
* @param want
* desired status to filter by.
* @return a copy of the command list containing only those commands with
* the desired status.
* @since 2.0
* @since 4.3
*/
public static List<ReceiveCommand> filter(List<ReceiveCommand> commands,
final Result want) {
List<ReceiveCommand> r = new ArrayList<ReceiveCommand>(commands.size());
for (final ReceiveCommand cmd : commands) {
public static List<ReceiveCommand> filter(Iterable<ReceiveCommand> in,
Result want) {
List<ReceiveCommand> r;
if (in instanceof Collection)
r = new ArrayList<>(((Collection<?>) in).size());
else
r = new ArrayList<>();
for (ReceiveCommand cmd : in) {
if (cmd.getResult() == want)
r.add(cmd);
}
return r;
}

/**
* Filter a list of commands according to result.
*
* @param commands
* commands to filter.
* @param want
* desired status to filter by.
* @return a copy of the command list containing only those commands with
* the desired status.
* @since 2.0
*/
public static List<ReceiveCommand> filter(List<ReceiveCommand> commands,
Result want) {
return filter((Iterable<ReceiveCommand>) commands, want);
}

private final ObjectId oldId;

private final ObjectId newId;

Loading…
Cancel
Save