package openmods.words;
import com.google.common.collect.ImmutableList;
import java.math.BigInteger;
import java.util.List;
import java.util.Map;
import java.util.Random;
public class Alternative implements IGenerator {
private final List<IGenerator> alts;
public Alternative(IGenerator... alts) {
this.alts = ImmutableList.copyOf(alts);
}
@Override
public String generate(Random random, Map<String, String> params) {
if (alts.isEmpty()) return "";
int choice = random.nextInt(alts.size());
return alts.get(choice).generate(random, params);
}
@Override
public BigInteger count() {
BigInteger result = BigInteger.ZERO;
for (IGenerator alt : alts)
result = result.add(alt.count());
return result;
}
}