package ch.akuhn.util;
import java.util.Collection;
import java.util.Enumeration;
import java.util.Iterator;
/** Returns the size of iterables, useful for testing.
*
* @author Adrian Kuhn
*
*/
public class Size {
@SuppressWarnings("unchecked")
public static final <T> int of(Iterable<T> collection) {
if (collection instanceof Collection) return ((Collection) collection).size();
int count = 0;
for (@SuppressWarnings("unused") T each: collection) count++;
return count;
}
public static final <T> int of(Iterator<T> iterator) {
int count = 0;
while (iterator.hasNext()) count++;
return count;
}
public static final <T> int of(Enumeration<T> enumeration) {
int count = 0;
while (enumeration.hasMoreElements()) count++;
return count;
}
}