Author: vsiveton
Date: Wed May 13 11:00:39 2009
New Revision: 774282
URL: http://svn.apache.org/viewvc?rev=774282&view=rev
Log:
DOXIA-38: Independent row parsing
o take care of the cell justification
o updated test case
Modified:
maven/doxia/doxia/trunk/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptParser.java
maven/doxia/doxia/trunk/doxia-modules/doxia-module-apt/src/test/java/org/apache/maven/doxia/module/apt/AptParserTest.java
Modified:
maven/doxia/doxia/trunk/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptParser.java
URL:
http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptParser.java?rev=774282&r1=774281&r2=774282&view=diff
==============================================================================
---
maven/doxia/doxia/trunk/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptParser.java
(original)
+++
maven/doxia/doxia/trunk/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptParser.java
Wed May 13 11:00:39 2009
@@ -27,6 +27,7 @@
import org.apache.maven.doxia.sink.Sink;
import org.apache.maven.doxia.sink.SinkAdapter;
import org.apache.maven.doxia.sink.SinkEventAttributeSet;
+import org.apache.maven.doxia.sink.SinkEventAttributes;
import org.apache.maven.doxia.util.DoxiaUtils;
import org.codehaus.plexus.util.IOUtil;
@@ -2342,10 +2343,11 @@
}
else
{
- if ( traverseRow( cells, headers ) )
+ if ( traverseRow( cells, headers, justification ) )
{
++rows;
}
+ justification = parseJustification( line, lineLength );
}
}
else
@@ -2487,10 +2489,11 @@
*
* @param cells The table cells.
* @param headers true for header cells.
+ * @param justification the justification for each cell.
* @return boolean
* @throws AptParseException if something goes wrong.
*/
- private boolean traverseRow( StringBuffer[] cells, boolean[] headers )
+ private boolean traverseRow( StringBuffer[] cells, boolean[] headers,
int[] justification )
throws AptParseException
{
// Skip empty row (a decorative line).
@@ -2510,13 +2513,33 @@
for ( int i = 0; i < cells.length; ++i )
{
StringBuffer cell = cells[i];
+
+ SinkEventAttributes justif;
+ switch ( justification[i] )
+ {
+ case Sink.JUSTIFY_CENTER:
+ justif = SinkEventAttributeSet.CENTER;
+ break;
+ case Sink.JUSTIFY_LEFT:
+ justif = SinkEventAttributeSet.LEFT;
+ break;
+ case Sink.JUSTIFY_RIGHT:
+ justif = SinkEventAttributeSet.RIGHT;
+ break;
+ default:
+ justif = SinkEventAttributeSet.LEFT;
+ break;
+ }
+ SinkEventAttributeSet event = new SinkEventAttributeSet();
+ event.addAttributes( justif );
+
if ( headers[i] )
{
- AptParser.this.sink.tableHeaderCell();
+ AptParser.this.sink.tableHeaderCell( event );
}
else
{
- AptParser.this.sink.tableCell();
+ AptParser.this.sink.tableCell( event );
}
if ( cell.length() > 0 )
{
Modified:
maven/doxia/doxia/trunk/doxia-modules/doxia-module-apt/src/test/java/org/apache/maven/doxia/module/apt/AptParserTest.java
URL:
http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-apt/src/test/java/org/apache/maven/doxia/module/apt/AptParserTest.java?rev=774282&r1=774281&r2=774282&view=diff
==============================================================================
---
maven/doxia/doxia/trunk/doxia-modules/doxia-module-apt/src/test/java/org/apache/maven/doxia/module/apt/AptParserTest.java
(original)
+++
maven/doxia/doxia/trunk/doxia-modules/doxia-module-apt/src/test/java/org/apache/maven/doxia/module/apt/AptParserTest.java
Wed May 13 11:00:39 2009
@@ -483,55 +483,62 @@
assertEquals( "tableRows", ( (SinkEventElement) it.next() ).getName()
);
assertEquals( "tableRow", ( (SinkEventElement) it.next() ).getName() );
-
SinkEventElement event = (SinkEventElement) it.next();
assertEquals( "tableCell", event.getName() );
- // DOXIA-38
- //SinkEventAttributeSet atts = (SinkEventAttributeSet)
event.getArgs()[0];
- //assertEquals( "center", atts.getAttribute(
SinkEventAttributeSet.ALIGN ) );
- assertEquals( "text", ( (SinkEventElement) it.next() ).getName() );
+ SinkEventAttributeSet atts = (SinkEventAttributeSet)
event.getArgs()[0];
+ assertEquals( "center", atts.getAttribute( SinkEventAttributeSet.ALIGN
) );
+ SinkEventElement element = (SinkEventElement) it.next();
+ assertEquals( "text", element.getName() );
+ assertNotNull( element.getArgs()[0] );
+ assertEquals( "Centered", element.getArgs()[0] );
assertEquals( "tableCell_", ( (SinkEventElement) it.next() ).getName()
);
-
event = (SinkEventElement) it.next();
assertEquals( "tableCell", event.getName() );
- // DOXIA-38
- //SinkEventAttributeSet atts = (SinkEventAttributeSet)
event.getArgs()[0];
- //assertEquals( "center", atts.getAttribute(
SinkEventAttributeSet.ALIGN ) );
- assertEquals( "text", ( (SinkEventElement) it.next() ).getName() );
+ atts = (SinkEventAttributeSet) event.getArgs()[0];
+ assertEquals( "center", atts.getAttribute( SinkEventAttributeSet.ALIGN
) );
+ element = (SinkEventElement) it.next();
+ assertEquals( "text", element.getName() );
+ assertNotNull( element.getArgs()[0] );
+ assertEquals( "Centered", element.getArgs()[0] );
assertEquals( "tableCell_", ( (SinkEventElement) it.next() ).getName()
);
-
event = (SinkEventElement) it.next();
assertEquals( "tableCell", event.getName() );
- // DOXIA-38
- //SinkEventAttributeSet atts = (SinkEventAttributeSet)
event.getArgs()[0];
- //assertEquals( "center", atts.getAttribute(
SinkEventAttributeSet.ALIGN ) );
- assertEquals( "text", ( (SinkEventElement) it.next() ).getName() );
+ atts = (SinkEventAttributeSet) event.getArgs()[0];
+ assertEquals( "center", atts.getAttribute( SinkEventAttributeSet.ALIGN
) );
+ element = (SinkEventElement) it.next();
+ assertEquals( "text", element.getName() );
+ assertNotNull( element.getArgs()[0] );
+ assertEquals( "Centered", element.getArgs()[0] );
assertEquals( "tableCell_", ( (SinkEventElement) it.next() ).getName()
);
assertEquals( "tableRow_", ( (SinkEventElement) it.next() ).getName()
);
assertEquals( "tableRow", ( (SinkEventElement) it.next() ).getName() );
event = (SinkEventElement) it.next();
assertEquals( "tableCell", event.getName() );
- // DOXIA-38
- //SinkEventAttributeSet atts = (SinkEventAttributeSet)
event.getArgs()[0];
- //assertEquals( "center", atts.getAttribute(
SinkEventAttributeSet.ALIGN ) );
- assertEquals( "text", ( (SinkEventElement) it.next() ).getName() );
+ atts = (SinkEventAttributeSet) event.getArgs()[0];
+ assertEquals( "center", atts.getAttribute( SinkEventAttributeSet.ALIGN
) );
+ element = (SinkEventElement) it.next();
+ assertEquals( "text", element.getName() );
+ assertNotNull( element.getArgs()[0] );
+ assertEquals( "Centered", element.getArgs()[0] );
assertEquals( "tableCell_", ( (SinkEventElement) it.next() ).getName()
);
-
event = (SinkEventElement) it.next();
assertEquals( "tableCell", event.getName() );
- // DOXIA-38
- //SinkEventAttributeSet atts = (SinkEventAttributeSet)
event.getArgs()[0];
- //assertEquals( "left", atts.getAttribute( SinkEventAttributeSet.ALIGN
) );
- assertEquals( "text", ( (SinkEventElement) it.next() ).getName() );
+ atts = (SinkEventAttributeSet) event.getArgs()[0];
+ assertEquals( "left", atts.getAttribute( SinkEventAttributeSet.ALIGN )
);
+ element = (SinkEventElement) it.next();
+ assertEquals( "text", element.getName() );
+ assertNotNull( element.getArgs()[0] );
+ assertEquals( "Left-aligned", element.getArgs()[0] );
assertEquals( "tableCell_", ( (SinkEventElement) it.next() ).getName()
);
-
event = (SinkEventElement) it.next();
assertEquals( "tableCell", event.getName() );
- // DOXIA-38
- //SinkEventAttributeSet atts = (SinkEventAttributeSet)
event.getArgs()[0];
- //assertEquals( "right", atts.getAttribute(
SinkEventAttributeSet.ALIGN ) );
- assertEquals( "text", ( (SinkEventElement) it.next() ).getName() );
+ atts = (SinkEventAttributeSet) event.getArgs()[0];
+ assertEquals( "right", atts.getAttribute( SinkEventAttributeSet.ALIGN
) );
+ element = (SinkEventElement) it.next();
+ assertEquals( "text", element.getName() );
+ assertNotNull( element.getArgs()[0] );
+ assertEquals( "Right-aligned", element.getArgs()[0] );
assertEquals( "tableCell_", ( (SinkEventElement) it.next() ).getName()
);
assertEquals( "tableRow_", ( (SinkEventElement) it.next() ).getName()
);