package aQute.lib.collections;
import java.util.Collection;
import java.util.HashSet;
import java.util.Set;
public class Logic {
private Logic() {}
@SafeVarargs
public static <T> Collection<T> retain(Collection< ? extends T> first, Collection< ? extends T>... sets) {
Set<T> result = new HashSet<T>(first);
for (Collection< ? extends T> set : sets) {
result.retainAll(set);
}
return result;
}
@SafeVarargs
public static <T> Collection<T> remove(Collection< ? extends T> first, Collection< ? extends T>... sets) {
Set<T> result = new HashSet<T>(first);
for (Collection< ? extends T> set : sets) {
result.removeAll(set);
}
return result;
}
@SafeVarargs
public static <T> boolean hasOverlap(Collection< ? extends T> source, Collection< ? extends T>... toBeChecked) {
for (T t : source) {
for (Collection< ? extends T> l : toBeChecked) {
for (T r : l) {
if (t.equals(r))
return true;
}
}
}
return false;
}
}