in doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptParser.java [2170:2225]
private boolean traverseRow(StringBuilder[] cells, boolean[] headers, int[] justification)
throws AptParseException {
// Skip empty row (a decorative line).
boolean traversed = false;
for (StringBuilder cell1 : cells) {
if (cell1.length() > 0) {
traversed = true;
break;
}
}
if (traversed) {
AptParser.this.sink.tableRow();
for (int i = 0; i < cells.length; ++i) {
StringBuilder cell = cells[i];
SinkEventAttributes justif;
switch (justification[i]) {
case Sink.JUSTIFY_CENTER:
justif = SinkEventAttributeSet.CENTER;
break;
case Sink.JUSTIFY_LEFT:
justif = SinkEventAttributeSet.LEFT;
break;
case Sink.JUSTIFY_RIGHT:
justif = SinkEventAttributeSet.RIGHT;
break;
default:
justif = SinkEventAttributeSet.LEFT;
break;
}
SinkEventAttributeSet event = new SinkEventAttributeSet();
event.addAttributes(justif);
if (headers[i]) {
AptParser.this.sink.tableHeaderCell(event);
} else {
AptParser.this.sink.tableCell(event);
}
if (cell.length() > 0) {
AptParser.this.doTraverseText(cell.toString(), 0, cell.length(), AptParser.this.sink);
cell.setLength(0);
}
if (headers[i]) {
AptParser.this.sink.tableHeaderCell_();
// DOXIA-404: reset header for next row
headers[i] = false;
} else {
AptParser.this.sink.tableCell_();
}
}
AptParser.this.sink.tableRow_();
}
return traversed;
}