michael-o commented on code in PR #1042:
URL: https://github.com/apache/maven-doxia/pull/1042#discussion_r2899720539
##########
doxia-core/src/main/java/org/apache/maven/doxia/sink/impl/Xhtml5BaseSink.java:
##########
@@ -135,9 +135,20 @@ public Xhtml5BaseSink(Writer out) {
this.tableCaptionXMLWriterStack = new LinkedList<>();
this.tableCaptionStack = new LinkedList<>();
- init();
+ doInit();
}
+ /**
+ * Called from constructor and from {@link #init()} to initialize certain
instance fields.
+ */
+ private void doInit() {
Review Comment:
We should make it `initInternal()`
##########
doxia-modules/doxia-module-markdown/src/main/java/org/apache/maven/doxia/module/markdown/MarkdownSink.java:
##########
@@ -341,21 +339,34 @@ private String
escapeForTableCell(LastTwoLinesBufferingWriter writer, String tex
// ----------------------------------------------------------------------
protected static MarkdownSink newInstance(Writer writer) {
- LastTwoLinesBufferingWriter bufferingWriter = new
LastTwoLinesBufferingWriter(writer);
- return new MarkdownSink(bufferingWriter, new
PrintWriter(bufferingWriter));
+ BufferingStackWriter bufferingStackWriter = new
BufferingStackWriter(writer);
+ LastTwoLinesAwareWriter lineAwareWriter = new
LastTwoLinesAwareWriter(bufferingStackWriter);
+ return new MarkdownSink(lineAwareWriter, bufferingStackWriter);
}
/**
* Constructor, initialize the Writer and the variables.
*
* @param writer not null writer to write the result. <b>Should</b> be an
UTF-8 Writer.
*/
- private MarkdownSink(LastTwoLinesBufferingWriter bufferingWriter,
PrintWriter writer) {
- super(writer);
- this.bufferingWriter = bufferingWriter;
- this.writer = writer;
+ private MarkdownSink(LastTwoLinesAwareWriter lineAwareWriter,
BufferingStackWriter bufferingStackWriter) {
+ super(lineAwareWriter);
+ this.lineAwareWriter = lineAwareWriter;
+ this.bufferingStackWriter = bufferingStackWriter;
+ doInit();
+ }
- init();
+ private void doInit() {
Review Comment:
ditto
##########
doxia-core/src/main/java/org/apache/maven/doxia/sink/impl/Xhtml5BaseSink.java:
##########
@@ -135,9 +135,20 @@ public Xhtml5BaseSink(Writer out) {
this.tableCaptionXMLWriterStack = new LinkedList<>();
this.tableCaptionStack = new LinkedList<>();
Review Comment:
These are not subject to init?
##########
doxia-modules/doxia-module-markdown/src/main/java/org/apache/maven/doxia/module/markdown/MarkdownSink.java:
##########
@@ -387,14 +398,31 @@ private void startContext(ElementContext newContext) {
elementContextStack.add(newContext);
}
+ private String toogleToRootContextWithoutBuffering(boolean dumpBuffer) {
+ final String buffer;
+ if (elementContextStack.element() ==
ElementContext.ROOT_WITH_BUFFERING) {
+ buffer = bufferingStackWriter.getCurrentBuffer().toString();
+ endContext(ElementContext.ROOT_WITH_BUFFERING);
+ if (dumpBuffer) {
+ write(buffer);
+ }
+ startContext(ElementContext.ROOT_WITHOUT_BUFFERING);
+ } else if (elementContextStack.element() !=
ElementContext.ROOT_WITHOUT_BUFFERING) {
+ throw new IllegalStateException("Unexpected context " +
elementContextStack.element()
+ + ", expected ROOT_WITH_BUFFERING or
ROOT_WITHOUT_BUFFERING");
+ } else {
+ buffer = "";
Review Comment:
How can this be a tristate? It is either `ROOT_WITH_BUFFERING` or not, no?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]