@Override public void close() throws IOException { BidiFormatter formatter = BidiFormatter.getInstance(globalDir.toDir()); BidiWrappingText wrappingText; switch (wrapType) { case SPAN: wrappingText = formatter.spanWrappingText( getSanitizedContentDirectionality(), buffer.toString(), true /* isHtml */); break; case UNICODE: wrappingText = formatter.unicodeWrappingText( getSanitizedContentDirectionality(), buffer.toString(), getSantizedContentKind() == ContentKind.HTML); break; default: throw new IllegalArgumentException("invalid wrap type: " + wrapType); } delegate.append(wrappingText.beforeText()); commandBuffer.replayOn(delegate); delegate.append(wrappingText.afterText()); } }
@Override public void close() throws IOException { BidiFormatter formatter = BidiFormatter.getInstance(globalDir.toDir()); BidiWrappingText wrappingText; switch (wrapType) { case SPAN: wrappingText = formatter.spanWrappingText( getSanitizedContentDirectionality(), buffer.toString(), /* isHtml= */ true); break; case UNICODE: wrappingText = formatter.unicodeWrappingText( getSanitizedContentDirectionality(), buffer.toString(), getSantizedContentKind() == ContentKind.HTML); break; default: throw new IllegalArgumentException("invalid wrap type: " + wrapType); } delegate.append(wrappingText.beforeText()); commandBuffer.replayOn(delegate); delegate.append(wrappingText.afterText()); } }
@Override public RenderResult renderAndResolve(LoggingAdvisingAppendable appendable, boolean isLast) throws IOException { if (isDone()) { if (buffer == null && resolvedValue == TombstoneValue.INSTANCE) { throw new IllegalStateException( "calling renderAndResolve after setting isLast = true is not supported"); } buffer.replayOn(appendable); return RenderResult.done(); } if (isLast) { RenderResult result = doRender(appendable); if (result.isDone()) { resolvedValue = TombstoneValue.INSTANCE; } return result; } TeeAdvisingAppendable currentBuilder = (TeeAdvisingAppendable) builder; if (currentBuilder == null) { builder = currentBuilder = new TeeAdvisingAppendable(appendable); } RenderResult result = doRender(currentBuilder); if (result.isDone()) { buffer = currentBuilder.buffer; builder = null; } return result; }
@Override public RenderResult renderAndResolve(LoggingAdvisingAppendable appendable, boolean isLast) throws IOException { if (isDone()) { buffer.replayOn(appendable); return RenderResult.done(); } if (isLast) { RenderResult result = doRender(appendable); if (result.isDone()) { resolvedValue = TombstoneValue.INSTANCE; } return result; } TeeAdvisingAppendable currentBuilder = (TeeAdvisingAppendable) builder; if (currentBuilder == null) { builder = currentBuilder = new TeeAdvisingAppendable(appendable); } RenderResult result = doRender(currentBuilder); if (result.isDone()) { buffer = currentBuilder.buffer; builder = null; } return result; }