package edu.uw.zookeeper.client.random;
import java.util.List;
import java.util.Random;
import edu.uw.zookeeper.common.AbstractPair;
import edu.uw.zookeeper.common.Generator;
public class RandomFromList<E> extends AbstractPair<Random, List<E>> implements Generator<E> {
public static <E> RandomFromList<E> create(Random random, List<E> elements) {
return new RandomFromList<E>(random, elements);
}
protected RandomFromList(Random random, List<E> elements) {
super(random, elements);
}
public Random getRandom() {
return first;
}
public List<E> getElements() {
return second;
}
@Override
public E next() {
int size = getElements().size();
if (size == 0) {
return null;
} else {
int index = (size > 1) ? getRandom().nextInt(size) : 0;
return getElements().get(index);
}
}
}