private boolean traverseRow()

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;
        }