in doxia-modules/doxia-module-fml/src/main/java/org/apache/maven/doxia/module/fml/FmlParser.java [208:278]
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);
}
}