/*
* Copyright (c) 2007 Mockito contributors
* This program is made available under the terms of the MIT License.
*/
package org.mockito.internal.util.collections;
import java.util.
Collection;
import java.util.
LinkedList;
/**
* Basic list/collection operators.
* We know that there are existing libraries that implement those use cases neatly.
* However, we want to keep Mockito dependencies minimal.
* In Java8 we should be able to get rid of this class.
*/
public class
ListUtil {
public static <T>
LinkedList<T>
filter(
Collection<T>
collection,
Filter<T>
filter) {
LinkedList<T>
filtered = new
LinkedList<T>();
for (T
t :
collection) {
if (!
filter.
isOut(
t)) {
filtered.
add(
t);
}
}
return
filtered;
}
public static <From, To>
LinkedList<To>
convert(
Collection<From>
collection,
Converter<From, To>
converter) {
LinkedList<To>
converted = new
LinkedList<To>();
for (From
f:
collection) {
converted.
add(
converter.
convert(
f));
}
return
converted;
}
public interface
Filter<T> {
boolean
isOut(T
object);
}
public interface
Converter<From, To> {
To
convert(From
from);
}
}