in commons-email2-core/src/main/java/org/apache/commons/mail2/core/EmailUtils.java [199:238]
private static String random(int count, int start, int end, final boolean letters, final boolean numbers, final char[] chars, final Random random) {
if (count == 0) {
return "";
}
if (count < 0) {
throw new IllegalArgumentException("Requested random string length " + count + " is less than 0.");
}
if (start == 0 && end == 0) {
end = 'z' + 1;
start = ' ';
if (!letters && !numbers) {
start = 0;
end = Integer.MAX_VALUE;
}
}
final StringBuilder buffer = new StringBuilder();
final int gap = end - start;
while (count-- != 0) {
char ch;
if (chars == null) {
ch = (char) (random.nextInt(gap) + start);
} else {
ch = chars[random.nextInt(gap) + start];
}
if (letters && numbers && Character.isLetterOrDigit(ch) || letters && Character.isLetter(ch) || numbers && Character.isDigit(ch)
|| !letters && !numbers) {
buffer.append(ch);
} else {
count++;
}
}
return buffer.toString();
}