/*
* Copyright (c) 2016 Mockito contributors
* This program is made available under the terms of the MIT License.
*/
package org.mockito.internal.util.collections;
import java.util.
Enumeration;
import java.util.
Iterator;
import java.util.
LinkedList;
import java.util.
List;
/**
* Utilities for Iterables
*/
public class
Iterables {
/**
* Converts enumeration into iterable
*/
public static <T>
Iterable<T>
toIterable(
Enumeration<T>
in) {
List<T>
out = new
LinkedList<T>();
while(
in.
hasMoreElements()) {
out.
add(
in.
nextElement());
}
return
out;
}
/**
* Returns first element of provided iterable or fails fast when iterable is empty.
*
* @param iterable non-empty iterable
* @return first element of supplied iterable
* @throws IllegalArgumentException when supplied iterable is empty
*/
public static <T> T
firstOf(
Iterable<T>
iterable) {
Iterator<T>
iterator =
iterable.
iterator();
if (!
iterator.
hasNext()) {
throw new
IllegalArgumentException("Cannot provide 1st element from empty iterable: " +
iterable);
}
return
iterator.
next();
}
}