package bio.pih.genoogle.seq.generator;
import java.util.Map;
import java.util.Random;
import bio.pih.genoogle.seq.Alphabet;
import com.google.common.collect.Maps;
public class UniformDistribution {
private final Alphabet alphabet;
private Map<Integer, Character> dist;
private Random random;
public UniformDistribution(Alphabet alphabet) {
this.alphabet = alphabet;
dist = Maps.newHashMap();
random = new Random();
int value = 0;
for (char c : alphabet.getLetters()) {
dist.put(value++, c);
}
}
public String generateSymbolList(int lengthFrom, int lengthTo) {
int length;
if (lengthTo == -1) {
length = lengthFrom;
} else {
length = random.nextInt(lengthTo - lengthFrom) + lengthFrom;
}
StringBuilder sb = new StringBuilder(length);
for (int i = 0; i < length; i++) {
int value = random.nextInt(alphabet.getSize());
sb.append(dist.get(value));
}
return sb.toString();
}
}