// License: GPL. For details, see LICENSE file.
package org.openstreetmap.josm.plugins.turnlanes;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
import java.util.Set;
public final class CollectionUtils {
private CollectionUtils() {
// Hide default constructor for utilities classes
}
public static <E> Iterable<E> reverse(final List<E> list) {
return new Iterable<E>() {
@Override
public Iterator<E> iterator() {
final ListIterator<E> it = list.listIterator(list.size());
return new Iterator<E>() {
@Override
public boolean hasNext() {
return it.hasPrevious();
}
@Override
public E next() {
return it.previous();
}
@Override
public void remove() {
it.remove();
}
};
}
};
}
public static <E> Set<E> toSet(Iterable<? extends E> iterable) {
final Set<E> set = new HashSet<>();
for (E e : iterable) {
set.add(e);
}
return Collections.unmodifiableSet(set);
}
public static <E> List<E> toList(Iterable<? extends E> iterable) {
final List<E> list = new ArrayList<>();
for (E e : iterable) {
list.add(e);
}
return Collections.unmodifiableList(list);
}
}