private void parse() {

        if (isLiteralText()) {
            elements = new String[0];
            return;
        }

        if (expression.startsWith("${") || expression.startsWith("#{")) {
            if (expression.endsWith("}")) {
                String temp = expression.substring(2, expression.length() - 1).replaceAll(" ", "");
                List names = new ArrayList();
                while (temp.length() > 0) {
                    int period= temp.indexOf(".");
                    if (period >= 0) {
                        names.add(temp.substring(0, period));
                        temp = temp.substring(period + 1);
                    } else {
                        names.add(temp);
                        temp = "";
                    }
                }
                elements = (String[]) names.toArray(new String[names.size()]);
            } else {
                throw new IllegalArgumentException(expression);
            }
        } else {
            throw new IllegalArgumentException(expression);
        }

    }