Author: vsiveton Date: Mon Aug 24 12:06:21 2009 New Revision: 807170 URL: http://svn.apache.org/viewvc?rev=807170&view=rev Log: DOXIA-364: Guarantee the state of sinks and parsers impl
o impl init() method from r807164 o use final fields Modified: maven/doxia/doxia/trunk/doxia-modules/doxia-module-fo/src/main/java/org/apache/maven/doxia/module/fo/FoSink.java Modified: maven/doxia/doxia/trunk/doxia-modules/doxia-module-fo/src/main/java/org/apache/maven/doxia/module/fo/FoSink.java URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-fo/src/main/java/org/apache/maven/doxia/module/fo/FoSink.java?rev=807170&r1=807169&r2=807170&view=diff ============================================================================== --- maven/doxia/doxia/trunk/doxia-modules/doxia-module-fo/src/main/java/org/apache/maven/doxia/module/fo/FoSink.java (original) +++ maven/doxia/doxia/trunk/doxia-modules/doxia-module-fo/src/main/java/org/apache/maven/doxia/module/fo/FoSink.java Mon Aug 24 12:06:21 2009 @@ -89,9 +89,9 @@ /** figure flag. */ private boolean inFigure; - private String encoding; + private final String encoding; - private String languageId; + private final String languageId; /** Stack of drawing borders on table cells. */ private final LinkedList tableGridStack; @@ -139,6 +139,21 @@ */ protected FoSink( Writer writer, String encoding ) { + this( writer, encoding, null ); + } + + /** + * Constructor, initialize the Writer and tells which encoding and languageId are used. + * + * @param writer not null writer to write the result. + * @param encoding the encoding used, that should be written to the generated HTML content + * if not <code>null</code>. + * @param languageId language identifier for the root element as defined by + * <a href="ftp://ftp.isi.edu/in-notes/bcp/bcp47.txt">IETF BCP 47</a>, Tags for the Identification of Languages; + * in addition, the empty string may be specified. + */ + protected FoSink( Writer writer, String encoding, String languageId ) + { if ( writer == null ) { throw new NullPointerException( "Null writer in FO Sink!" ); @@ -146,6 +161,7 @@ this.out = new PrintWriter( writer ); this.encoding = encoding; + this.languageId = languageId; this.config = new FoConfiguration(); this.listStack = new Stack(); @@ -161,23 +177,6 @@ setNameSpace( "fo" ); } - /** - * Constructor, initialize the Writer and tells which encoding and languageId are used. - * - * @param writer not null writer to write the result. - * @param encoding the encoding used, that should be written to the generated HTML content - * if not <code>null</code>. - * @param languageId language identifier for the root element as defined by - * <a href="ftp://ftp.isi.edu/in-notes/bcp/bcp47.txt">IETF BCP 47</a>, Tags for the Identification of Languages; - * in addition, the empty string may be specified. - */ - protected FoSink( Writer writer, String encoding, String languageId ) - { - this( writer, encoding ); - - this.languageId = languageId; - } - // TODO add FOP compliance mode? /** @@ -199,6 +198,8 @@ /** {...@inheritdoc} */ public void head( SinkEventAttributes attributes ) { + init(); + startPageSequence( "0", null, null ); } @@ -1366,15 +1367,7 @@ this.warnMessages = null; } - this.listStack.clear(); - this.tableGridStack.clear(); - this.cellJustifStack.clear(); - this.isCellJustifStack.clear(); - this.cellCountStack.clear(); - this.tableContentWriterStack.clear(); - this.tableCaptionWriterStack.clear(); - this.tableCaptionXMLWriterStack.clear(); - this.tableCaptionStack.clear(); + init(); } /** @@ -1817,4 +1810,27 @@ set.add( msg ); warnMessages.put( key, set ); } + + /** {...@inheritdoc} */ + protected void init() + { + super.init(); + + this.listStack.clear(); + this.tableGridStack.clear(); + this.cellJustifStack.clear(); + this.isCellJustifStack.clear(); + this.cellCountStack.clear(); + this.tableContentWriterStack.clear(); + this.tableCaptionWriterStack.clear(); + this.tableCaptionXMLWriterStack.clear(); + this.tableCaptionStack.clear(); + + this.section = 0; + this.subsection = 0; + this.subsubsection = 0; + this.verbatim = false; + this.inFigure = false; + this.warnMessages = null; + } } \ No newline at end of file