public Node getDOMNode(Document targetDoc) {
        Element node = targetDoc.createElement("proxygen");
        node.setAttribute("attributeGetters", String.valueOf(generateAttributeGetters));
        node.setAttribute("attributeSetters", String.valueOf(generateAttributeSetters));
        node.setAttribute("useInheritance", String.valueOf(useInheritance));
        node.setAttribute("useRichTypes", String.valueOf(useRichTypes));
        node.setAttribute("innerClasses", String.valueOf(generateInnerClasses));
        node.setAttribute("recursionLevel", String.valueOf(recursionLevel));

        Element classesElement = null;

        Iterator it = getClassNames();
        while (it.hasNext()) {
            if (classesElement == null) {
                classesElement = targetDoc.createElement("input-classes");
                node.appendChild(classesElement);
            }

            Element classNameElement = targetDoc.createElement("input-class");
            classesElement.appendChild(classNameElement);
            classNameElement.setAttribute("name", (String) it.next());
        }

        return node;
    }