in doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptParser.java [774:855]
private void traverseList() throws AptParseException {
if (block == null) {
return;
}
expectedBlock(LIST_ITEM);
int listIndent = block.getIndent();
sink.list();
sink.listItem();
block.traverse();
nextBlock();
loop:
while (block != null) {
int blockIndent = block.getIndent();
switch (block.getType()) {
case PARAGRAPH:
if (blockIndent < listIndent) {
break loop;
}
/*FALLTHROUGH*/
case VERBATIM:
case MACRO:
case FIGURE:
case TABLE:
case HORIZONTAL_RULE:
case PG_BREAK:
block.traverse();
nextBlock();
break;
case LIST_ITEM:
if (blockIndent < listIndent) {
break loop;
}
if (blockIndent > listIndent) {
traverseList();
} else {
sink.listItem_();
sink.listItem();
block.traverse();
nextBlock();
}
break;
case NUMBERED_LIST_ITEM:
if (blockIndent < listIndent) {
break loop;
}
traverseNumberedList();
break;
case DEFINITION_LIST_ITEM:
if (blockIndent < listIndent) {
break loop;
}
traverseDefinitionList();
break;
case LIST_BREAK:
if (blockIndent >= listIndent) {
nextBlock();
}
/*FALLTHROUGH*/
default:
// A block which ends the list.
break loop;
}
}
sink.listItem_();
sink.list_();
}