Skip to content

Commit

Permalink
Change toImmutableMultimap() to be private and take a finisher.
Browse files Browse the repository at this point in the history
  • Loading branch information
motlin authored and Donald Raab committed May 26, 2016
1 parent 76e6adc commit 86e9cf3
Showing 1 changed file with 15 additions and 13 deletions.
Expand Up @@ -357,7 +357,7 @@ private Collectors2()
EMPTY_CHARACTERISTICS);
}

public static <T, K, R extends MutableMultimap<K, T>> Collector<T, ?, R> groupBy(
private static <T, K, R extends MutableMultimap<K, T>> Collector<T, ?, R> groupBy(
Function<? super T, ? extends K> groupBy,
Supplier<R> supplier)
{
Expand All @@ -374,7 +374,8 @@ private Collectors2()

private static <T, K, A extends MutableMultimap<K, T>, R extends ImmutableMultimap<K, T>> Collector<T, ?, R> groupByImmutable(
Function<? super T, ? extends K> groupBy,
Supplier<A> supplier)
Supplier<A> supplier,
java.util.function.Function<A, R> finisher)
{
return Collector.of(
supplier,
Expand All @@ -384,11 +385,11 @@ private Collectors2()
r1.putAll(r2);
return r1;
},
multimap -> (R) multimap.toImmutable(),
finisher,
EMPTY_CHARACTERISTICS);
}

public static <T, K, V, R extends MutableMultimap<K, V>> Collector<T, ?, R> groupBy(
private static <T, K, V, R extends MutableMultimap<K, V>> Collector<T, ?, R> groupBy(
Function<? super T, ? extends K> groupBy,
Function<? super T, ? extends V> valueFunction,
Supplier<R> supplier)
Expand All @@ -404,10 +405,11 @@ private Collectors2()
EMPTY_CHARACTERISTICS);
}

public static <T, K, V, A extends MutableMultimap<K, V>, R extends ImmutableMultimap<K, V>> Collector<T, ?, R> groupByImmutable(
private static <T, K, V, A extends MutableMultimap<K, V>, R extends ImmutableMultimap<K, V>> Collector<T, ?, R> groupByImmutable(
Function<? super T, ? extends K> groupBy,
Function<? super T, ? extends V> valueFunction,
Supplier<A> supplier)
Supplier<A> supplier,
java.util.function.Function<A, R> finisher)
{
return Collector.of(
supplier,
Expand All @@ -417,7 +419,7 @@ private Collectors2()
r1.putAll(r2);
return r1;
},
multimap -> (R) multimap.toImmutable(),
finisher,
EMPTY_CHARACTERISTICS);
}

Expand Down Expand Up @@ -463,40 +465,40 @@ private Collectors2()
public static <T, K> Collector<T, ?, ImmutableListMultimap<K, T>> toImmutableListMultimap(
Function<? super T, ? extends K> groupBy)
{
return Collectors2.groupByImmutable(groupBy, Multimaps.mutable.list::empty);
return Collectors2.groupByImmutable(groupBy, Multimaps.mutable.list::empty, MutableListMultimap::toImmutable);
}

public static <T, K, V> Collector<T, ?, ImmutableListMultimap<K, V>> toImmutableListMultimap(
Function<? super T, ? extends K> groupBy,
Function<? super T, ? extends V> valueFunction)
{
return Collectors2.groupByImmutable(groupBy, valueFunction, Multimaps.mutable.list::empty);
return Collectors2.groupByImmutable(groupBy, valueFunction, Multimaps.mutable.list::empty, MutableListMultimap::toImmutable);
}

public static <T, K> Collector<T, ?, ImmutableSetMultimap<K, T>> toImmutableSetMultimap(
Function<? super T, ? extends K> groupBy)
{
return Collectors2.groupByImmutable(groupBy, Multimaps.mutable.set::empty);
return Collectors2.groupByImmutable(groupBy, Multimaps.mutable.set::empty, MutableSetMultimap::toImmutable);
}

public static <T, K, V> Collector<T, ?, ImmutableSetMultimap<K, V>> toImmutableSetMultimap(
Function<? super T, ? extends K> groupBy,
Function<? super T, ? extends V> valueFunction)
{
return Collectors2.groupByImmutable(groupBy, valueFunction, Multimaps.mutable.set::empty);
return Collectors2.groupByImmutable(groupBy, valueFunction, Multimaps.mutable.set::empty, MutableSetMultimap::toImmutable);
}

public static <T, K> Collector<T, ?, ImmutableBagMultimap<K, T>> toImmutableBagMultimap(
Function<? super T, ? extends K> groupBy)
{
return Collectors2.groupByImmutable(groupBy, Multimaps.mutable.bag::empty);
return Collectors2.groupByImmutable(groupBy, Multimaps.mutable.bag::empty, MutableBagMultimap::toImmutable);
}

public static <T, K, V> Collector<T, ?, ImmutableBagMultimap<K, V>> toImmutableBagMultimap(
Function<? super T, ? extends K> groupBy,
Function<? super T, ? extends V> valueFunction)
{
return Collectors2.groupByImmutable(groupBy, valueFunction, Multimaps.mutable.bag::empty);
return Collectors2.groupByImmutable(groupBy, valueFunction, Multimaps.mutable.bag::empty, MutableBagMultimap::toImmutable);
}
}

0 comments on commit 86e9cf3

Please sign in to comment.