private static String random()

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();
    }