Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'org.eclipse.jgit/src/org/eclipse/jgit/util/RefMap.java')
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/util/RefMap.java22
1 files changed, 21 insertions, 1 deletions
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/util/RefMap.java b/org.eclipse.jgit/src/org/eclipse/jgit/util/RefMap.java
index a3f9730f13..9663e3cef5 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/util/RefMap.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/util/RefMap.java
@@ -49,6 +49,9 @@ import java.util.Iterator;
import java.util.Map;
import java.util.NoSuchElementException;
import java.util.Set;
+import java.util.function.BinaryOperator;
+import java.util.stream.Collector;
+import java.util.stream.Collectors;
import org.eclipse.jgit.lib.AnyObjectId;
import org.eclipse.jgit.lib.ObjectId;
@@ -285,6 +288,21 @@ public class RefMap extends AbstractMap<String, Ref> {
return r.toString();
}
+ /**
+ * Create a {@link Collector} for {@link Ref}.
+ *
+ * @param mergeFunction
+ * @return {@link Collector} for {@link Ref}
+ * @since 5.4
+ */
+ public static Collector<Ref, ?, RefMap> toRefMap(
+ BinaryOperator<Ref> mergeFunction) {
+ return Collectors.collectingAndThen(RefList.toRefList(mergeFunction),
+ (refs) -> new RefMap("", //$NON-NLS-1$
+ refs, RefList.emptyList(),
+ RefList.emptyList()));
+ }
+
private String toRefName(String name) {
if (0 < prefix.length())
name = prefix + name;
@@ -425,8 +443,10 @@ public class RefMap extends AbstractMap<String, Ref> {
if (r.getName().equals(ref.getName())) {
final ObjectId a = r.getObjectId();
final ObjectId b = ref.getObjectId();
- if (a != null && b != null && AnyObjectId.equals(a, b))
+ if (a != null && b != null
+ && AnyObjectId.isEqual(a, b)) {
return true;
+ }
}
}
}

Back to the top