class GreekAlphabetFactory {

    /**
     * Changes an int into a lower case Greek letter combination.
     *
     * @param index the original number
     * @return the letter combination
     */
    public static final String getString(int index) {
        return getString(index, true);
    }

    /**
     * Changes an int into a lower case Greek letter combination.
     *
     * @param index the original number
     * @return the letter combination
     */
    public static final String getLowerCaseString(int index) {
        return getString(index);
    }

    /**
     * Changes an int into a upper case Greek letter combination.
     *
     * @param index the original number
     * @return the letter combination
     */
    public static final String getUpperCaseString(int index) {
        return getString(index).toUpperCase();
    }

    /**
     * Changes an int into a Greek letter combination.
     *
     * @param index     the original number
     * @param lowercase true for lowercase, false for uppercase
     * @return the letter combination
     */
    public static final String getString(int index, boolean lowercase) {<FILL_FUNCTION_BODY>}
}

        if (index < 1) {
            return "";
        }
        index--;

        int bytes = 1;
        int start = 0;
        int symbols = 24;
        while (index >= symbols + start) {
            bytes++;
            start += symbols;
            symbols *= 24;
        }

        int c = index - start;
        char[] value = new char[bytes];
        while (bytes > 0) {
            bytes--;
            value[bytes] = (char) (c % 24);
            if (value[bytes] > 16) {
                value[bytes]++;
            }
            value[bytes] += (lowercase ? 945 : 913);
            value[bytes] = SpecialSymbol.getCorrespondingSymbol(value[bytes]);
            c /= 24;
        }

        return String.valueOf(value);
    
<no_super_class>