protected void processParagraphChilds(final ParagraphRenderBox box) { paragraphLayoutWatch.start(); try { final MinorAxisNodeContext nodeContext = getNodeContext(); final MinorAxisParagraphBreakState breakState = getLineBreakState(); if (box.isComplexParagraph()) { final RenderBox lineboxContainer = box.getLineboxContainer(); RenderNode node = lineboxContainer.getFirstChild(); while (node != null) { // all childs of the linebox container must be inline boxes. They // represent the lines in the paragraph. Any other element here is // a error that must be reported if (node.getNodeType() != LayoutNodeTypes.TYPE_BOX_LINEBOX) { throw new IllegalStateException("Expected ParagraphPoolBox elements."); } final ParagraphPoolBox inlineRenderBox = (ParagraphPoolBox) node; if (startLine(inlineRenderBox)) { processBoxChilds(inlineRenderBox); finishLine(inlineRenderBox, nodeContext, breakState); } node = node.getNext(); } } else { final ParagraphPoolBox node = box.getPool(); if (node.getFirstChild() == null) { return; } // all childs of the linebox container must be inline boxes. They // represent the lines in the paragraph. Any other element here is // a error that must be reported if (startLine(node)) { processBoxChilds(node); finishLine(node, nodeContext, breakState); } } } finally { paragraphLayoutWatch.stop(true); } }
public void close() { super.close(); paragraphLayoutWatch.close(); }