private static String random()

in src/main/java/org/apache/commons/mail/EmailUtils.java [203:261]


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