protected void handleEndTag()

in doxia-modules/doxia-module-fml/src/main/java/org/apache/maven/doxia/module/fml/FmlParser.java [207:277]


    protected void handleEndTag(XmlPullParser parser, Sink sink)
            throws XmlPullParserException, MacroExecutionException {
        if (parser.getName().equals(FAQS_TAG.toString())) {
            // Do nothing
            return;
        } else if (parser.getName().equals(PART_TAG.toString())) {
            faqs.addPart(currentPart);

            currentPart = null;
        } else if (parser.getName().equals(FAQ_TAG.toString())) {
            if (currentPart == null) {
                throw new XmlPullParserException(
                        "Missing <part>  at: (" + parser.getLineNumber() + ":" + parser.getColumnNumber() + ")");
            }

            currentPart.addFaq(currentFaq);

            currentFaq = null;
        } else if (parser.getName().equals(QUESTION_TAG.toString())) {
            if (currentFaq == null) {
                throw new XmlPullParserException(
                        "Missing <faq> at: (" + parser.getLineNumber() + ":" + parser.getColumnNumber() + ")");
            }

            buffer.append(LESS_THAN).append(SLASH).append(parser.getName()).append(GREATER_THAN);

            currentFaq.setQuestion(buffer.toString());

            buffer = null;
        } else if (parser.getName().equals(ANSWER_TAG.toString())) {
            if (currentFaq == null) {
                throw new XmlPullParserException(
                        "Missing <faq> at: (" + parser.getLineNumber() + ":" + parser.getColumnNumber() + ")");
            }

            buffer.append(LESS_THAN).append(SLASH).append(parser.getName()).append(GREATER_THAN);

            currentFaq.setAnswer(buffer.toString());

            buffer = null;
        } else if (parser.getName().equals(TITLE.toString())) {
            if (currentPart == null) {
                throw new XmlPullParserException(
                        "Missing <part> at: (" + parser.getLineNumber() + ":" + parser.getColumnNumber() + ")");
            }

            buffer.append(LESS_THAN).append(SLASH).append(parser.getName()).append(GREATER_THAN);

            currentPart.setTitle(buffer.toString());

            buffer = null;
        }

        // ----------------------------------------------------------------------
        // Macro
        // ----------------------------------------------------------------------

        else if (parser.getName().equals(MACRO_TAG.toString())) {
            handleMacroEnd(buffer);
        } else if (parser.getName().equals(PARAM.toString())) {
            if (!(macroName != null && !macroName.isEmpty())) {
                handleUnknown(parser, sink, TAG_TYPE_END);
            }
        } else if (buffer != null) {
            if (buffer.length() > 0 && buffer.charAt(buffer.length() - 1) == SPACE) {
                buffer.deleteCharAt(buffer.length() - 1);
            }

            buffer.append(LESS_THAN).append(SLASH).append(parser.getName()).append(GREATER_THAN);
        }
    }