internal static List <T> eagerFilter <T>(Iterable <T> iterable, Predicate <T> function) { var result = FromJava.IterableToEnumerable(iterable) .Where(function.test) .ToList(); return(ToJava.ListToList(result)); }
internal static List <T> eagerConcat <T>(Iterable <T> first, Iterable <T> second) { var result = FromJava.IterableToEnumerable(first) .Concat(FromJava.IterableToEnumerable(second)) .ToList(); return(ToJava.ListToList(result)); }
internal static Map <K, V> toMap <T, K, V>(Iterable <T> iterable, Function <T, Map__Entry <K, V> > function) { var dictionary = FromJava.IterableToEnumerable(iterable) .Select(function.apply) .ToDictionary(entry => entry.getKey(), entry => entry.getValue()); return(ToJava.DictionaryToMap(dictionary)); }
internal static List <T> orderedBy <T, R>(Iterable <T> iterable, Function <T, R> getKey) { var result = FromJava.IterableToEnumerable(iterable) .OrderBy(getKey.apply) .ToList(); return(ToJava.ListToList(result)); }
internal static List <T> cons <T>(T head, Iterable <T> tail) { var result = new T[] { head } .Concat(FromJava.IterableToEnumerable(tail)) .ToList(); return(ToJava.ListToList(result)); }
internal static List <U> eagerFlatMap <T, U>(Iterable <T> iterable, Function <T, Iterable <U> > function) { var result = FromJava.IterableToEnumerable(iterable) .SelectMany(element => FromJava.IterableToEnumerable(function.apply(element))) .ToList(); return(ToJava.ListToList(result)); }
internal static List <U> eagerMapWithIndex <T, U>(Iterable <T> iterable, BiFunction <int, T, U> function) { var result = FromJava.IterableToEnumerable(iterable) .Select((value, index) => function.apply(index, value)) .ToList(); return(ToJava.ListToList(result)); }
internal static List <U> eagerMap <T, U>(Iterable <T> iterable, Function <T, U> function) { var result = FromJava.IterableToEnumerable(iterable) .Select(function.apply) .ToList(); return(ToJava.ListToList(result)); }
internal static Map <K, V2> eagerMapValues <K, V1, V2>(Map <K, V1> map, Function <V1, V2> function) { var dictionary = FromJava.MapToDictionary(map) .ToDictionary( entry => entry.Key, entry => function.apply(entry.Value)); return(ToJava.DictionaryToMap(dictionary)); }
internal static Map <K2, V> eagerMapKeys <K1, K2, V>(Map <K1, V> map, Function <K1, K2> function) { var dictionary = FromJava.MapToDictionary(map) .ToDictionary( entry => function.apply(entry.Key), entry => entry.Value); return(ToJava.DictionaryToMap(dictionary)); }
internal static Map <K, java.util.List <T> > toMultiMapWithKey <T, K>(Iterable <T> iterable, Function <T, K> function) { var dictionary = FromJava.IterableToEnumerable(iterable) .GroupBy(value => function.apply(value)) .ToDictionary( grouping => grouping.Key, grouping => ToJava.ListToList(grouping.ToList())); return(ToJava.DictionaryToMap(dictionary)); }
internal static Map <K, java.util.List <V> > toMultiMap <T, K, V>(Iterable <T> iterable, Function <T, Map__Entry <K, V> > function) { var dictionary = FromJava.IterableToEnumerable(iterable) .Select(element => function.apply(element)) .GroupBy(entry => entry.getKey()) .ToDictionary( grouping => grouping.Key, grouping => ToJava.ListToList(grouping.Select(entry => entry.getValue()).ToList())); return(ToJava.DictionaryToMap(dictionary)); }
internal static Set <T> toSet <T>(Iterable <T> iterable) { return(new HashSet <T>(new System.Collections.Generic.HashSet <T>(FromJava.IterableToEnumerable(iterable)))); }
internal ArrayList(List <T> list) : this(new System.Collections.Generic.List <T>(FromJava.IterableToEnumerable(list))) { }
internal static Iterable <U> lazyFilter <T, U>(Iterable <T> iterable, System.Type type) { var enumerable = FromJava.IterableToEnumerable(iterable).OfType <U>(); return(ToJava.EnumerableToIterable(enumerable)); }
internal static Iterable <T> lazyFilter <T>(Iterable <T> iterable, Predicate <T> predicate) { var enumerable = FromJava.IterableToEnumerable(iterable).Where(predicate.test); return(ToJava.EnumerableToIterable(enumerable)); }
internal static string join(string separator, Iterable <string> values) { return(string.Join(separator, FromJava.IterableToEnumerable(values))); }
internal static List <T> toList <T>(Iterable <T> iterable) { return(ToJava.ListToList(FromJava.IterableToEnumerable(iterable).ToList())); }
internal static IResult <T> ToResult <T>(this InternalResult <T> result) { var warnings = new HashSet <string>(FromJava.IterableToEnumerable(result.getWarnings())); return(new SimpleResult <T>(result.getValue(), warnings)); }