You are viewing a plain text version of this content. The canonical link for it is here.
Posted to doxia-commits@maven.apache.org by vs...@apache.org on 2009/08/24 14:21:26 UTC
svn commit: r807179 - in
/maven/doxia/doxia/trunk/doxia-modules/doxia-module-twiki/src/main/java/org/apache/maven/doxia/module/twiki:
TWikiParser.java TWikiSink.java
Author: vsiveton
Date: Mon Aug 24 12:21:26 2009
New Revision: 807179
URL: http://svn.apache.org/viewvc?rev=807179&view=rev
Log:
DOXIA-364: Guarantee the state of sinks and parsers impl
o impl init() method from r807164
o use final fields
o extends AbstractTextSink instead of SinkAdapter
Modified:
maven/doxia/doxia/trunk/doxia-modules/doxia-module-twiki/src/main/java/org/apache/maven/doxia/module/twiki/TWikiParser.java
maven/doxia/doxia/trunk/doxia-modules/doxia-module-twiki/src/main/java/org/apache/maven/doxia/module/twiki/TWikiSink.java
Modified: maven/doxia/doxia/trunk/doxia-modules/doxia-module-twiki/src/main/java/org/apache/maven/doxia/module/twiki/TWikiParser.java
URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-twiki/src/main/java/org/apache/maven/doxia/module/twiki/TWikiParser.java?rev=807179&r1=807178&r2=807179&view=diff
==============================================================================
--- maven/doxia/doxia/trunk/doxia-modules/doxia-module-twiki/src/main/java/org/apache/maven/doxia/module/twiki/TWikiParser.java (original)
+++ maven/doxia/doxia/trunk/doxia-modules/doxia-module-twiki/src/main/java/org/apache/maven/doxia/module/twiki/TWikiParser.java Mon Aug 24 12:21:26 2009
@@ -85,27 +85,14 @@
private final VerbatimBlockParser verbatimParser = new VerbatimBlockParser();
/** list of parsers to try to apply to the toplevel */
- private final BlockParser[] parsers;
+ private BlockParser[] parsers;
/**
* Creates the TWikiParser.
*/
public TWikiParser()
{
- paraParser.setSectionParser( sectionParser );
- paraParser.setListParser( listParser );
- paraParser.setTextParser( formatTextParser );
- paraParser.setHrulerParser( hrulerParser );
- paraParser.setTableBlockParser( tableParser );
- paraParser.setVerbatimParser( verbatimParser );
- sectionParser.setParaParser( paraParser );
- sectionParser.setHrulerParser( hrulerParser );
- sectionParser.setVerbatimBlockParser( verbatimParser );
- listParser.setTextParser( formatTextParser );
- formatTextParser.setTextParser( textParser );
- tableParser.setTextParser( formatTextParser );
-
- parsers = new BlockParser[] { sectionParser, hrulerParser, verbatimParser, paraParser };
+ init();
}
/**
@@ -149,6 +136,7 @@
public final synchronized void parse( final Reader source, final Sink sink )
throws ParseException
{
+ init();
List blocks;
final ByLineSource src = new ByLineReaderSource( source );
@@ -182,6 +170,11 @@
block.traverse( sink );
}
sink.body_();
+ sink.flush();
+ sink.close();
+
+ setSecondParsing( false );
+ init();
}
/**
@@ -232,4 +225,25 @@
return title;
}
+
+ /** {@inheritDoc} */
+ protected void init()
+ {
+ super.init();
+
+ paraParser.setSectionParser( sectionParser );
+ paraParser.setListParser( listParser );
+ paraParser.setTextParser( formatTextParser );
+ paraParser.setHrulerParser( hrulerParser );
+ paraParser.setTableBlockParser( tableParser );
+ paraParser.setVerbatimParser( verbatimParser );
+ sectionParser.setParaParser( paraParser );
+ sectionParser.setHrulerParser( hrulerParser );
+ sectionParser.setVerbatimBlockParser( verbatimParser );
+ listParser.setTextParser( formatTextParser );
+ formatTextParser.setTextParser( textParser );
+ tableParser.setTextParser( formatTextParser );
+
+ this.parsers = new BlockParser[] { sectionParser, hrulerParser, verbatimParser, paraParser };
+ }
}
Modified: maven/doxia/doxia/trunk/doxia-modules/doxia-module-twiki/src/main/java/org/apache/maven/doxia/module/twiki/TWikiSink.java
URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-twiki/src/main/java/org/apache/maven/doxia/module/twiki/TWikiSink.java?rev=807179&r1=807178&r2=807179&view=diff
==============================================================================
--- maven/doxia/doxia/trunk/doxia-modules/doxia-module-twiki/src/main/java/org/apache/maven/doxia/module/twiki/TWikiSink.java (original)
+++ maven/doxia/doxia/trunk/doxia-modules/doxia-module-twiki/src/main/java/org/apache/maven/doxia/module/twiki/TWikiSink.java Mon Aug 24 12:21:26 2009
@@ -49,7 +49,7 @@
implements TWikiMarkup
{
/** The writer to use. */
- private PrintWriter out;
+ private final PrintWriter out;
/** The writer to use. */
private StringWriter writer;
@@ -66,7 +66,7 @@
private int levelList = 0;
/** listStyles. */
- private Stack listStyles;
+ private final Stack listStyles;
/**
* Constructor, initialize the Writer and the variables.
@@ -77,8 +77,9 @@
protected TWikiSink( Writer writer )
{
this.out = new PrintWriter( writer );
- this.writer = new StringWriter();
this.listStyles = new Stack();
+
+ init();
}
/** {@inheritDoc} */
@@ -183,6 +184,8 @@
{
out.write( writer.toString() );
out.close();
+
+ init();
}
/**
@@ -363,6 +366,8 @@
/** {@inheritDoc} */
public void head()
{
+ init();
+
headFlag = true;
}
@@ -1262,6 +1267,19 @@
write( escapeHTML( text ) );
}
+ /** {@inheritDoc} */
+ protected void init()
+ {
+ super.init();
+
+ this.writer = new StringWriter();
+ this.headFlag = false;
+ this.levelList = 0;
+ this.listStyles.clear();
+ this.boldFlag = false;
+ this.boldItalicOrMonodpacedFlag = false;
+ }
+
/**
* Forward to HtmlTools.escapeHTML( text ).
*