private void resolveGraphElements(Node graphNode) {
        validateTagsOnlyOnce(graphNode, new String[]{"area*", "line*", "stack*",
                "print*", "gprint*", "hrule*", "vrule*", "comment*"});
        Node[] childNodes = getChildNodes(graphNode);
        for (Node childNode : childNodes) {
            String nodeName = childNode.getNodeName();
            if (nodeName.equals("area")) {
                resolveArea(childNode);
            }
            else if (nodeName.equals("line")) {
                resolveLine(childNode);
            }
            else if (nodeName.equals("stack")) {
                resolveStack(childNode);
            }
            else if (nodeName.equals("print")) {
                resolvePrint(childNode, false);
            }
            else if (nodeName.equals("gprint")) {
                resolvePrint(childNode, true);
            }
            else if (nodeName.equals("hrule")) {
                resolveHRule(childNode);
            }
            else if (nodeName.equals("vrule")) {
                resolveVRule(childNode);
            }
            else if (nodeName.equals("comment")) {
                rrdGraphDef.comment(getValue(childNode, false));
            }
        }
    }