Author: ltheussl
Date: Thu Jun 4 07:02:45 2009
New Revision: 781665
URL: http://svn.apache.org/viewvc?rev=781665&view=rev
Log:
Code refactoring, no functional changes
Modified:
maven/doxia/doxia/trunk/doxia-modules/doxia-module-docbook-simple/src/main/java/org/apache/maven/doxia/module/docbook/DocBookParser.java
Modified:
maven/doxia/doxia/trunk/doxia-modules/doxia-module-docbook-simple/src/main/java/org/apache/maven/doxia/module/docbook/DocBookParser.java
URL:
http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-docbook-simple/src/main/java/org/apache/maven/doxia/module/docbook/DocBookParser.java?rev=781665&r1=781664&r2=781665&view=diff
==============================================================================
---
maven/doxia/doxia/trunk/doxia-modules/doxia-module-docbook-simple/src/main/java/org/apache/maven/doxia/module/docbook/DocBookParser.java
(original)
+++
maven/doxia/doxia/trunk/doxia-modules/doxia-module-docbook-simple/src/main/java/org/apache/maven/doxia/module/docbook/DocBookParser.java
Thu Jun 4 07:02:45 2009
@@ -122,83 +122,27 @@
protected void handleStartTag( XmlPullParser parser, Sink sink )
throws XmlPullParserException, MacroExecutionException
{
- String id = getAttributeValue( parser, ID_ATTRIBUTE );
- //catch link targets
- if ( id != null )
- {
- sink.anchor( id );
- sink.anchor_();
- }
+ handleIdAnchor( getAttributeValue( parser, ID_ATTRIBUTE ), sink );
- //If the element introduces a new level of hierarchy, raise the stack
if ( HIER_ELEMENTS.contains( parser.getName() ) )
{
- //increase the nesting level
- level++;
- //if this is the root element, handle it as body
- if ( level == 0 )
- {
- sink.body();
- }
- else
- {
- sink.section( level, null );
- }
+ handleHierarchyElements( sink );
}
- //handle lists
else if ( parser.getName().equals(
SimplifiedDocbookMarkup.ITEMIZEDLIST_TAG.toString() ) )
{
- sink.list();
- //for itemizedlists in variablelists
- parent.push( parser.getName() );
+ handleItemizedListStart( sink, parser);
}
else if ( parser.getName().equals(
SimplifiedDocbookMarkup.ORDEREDLIST_TAG.toString() ) )
{
- //default enumeration style is decimal
- int numeration = Sink.NUMBERING_DECIMAL;
- String style = getAttributeValue( parser,
SimplifiedDocbookMarkup.NUMERATION_ATTRIBUTE );
- if ( style.equals( SimplifiedDocbookMarkup.ARABIC_STYLE ) )
- {
- numeration = Sink.NUMBERING_DECIMAL;
- }
- else if ( style.equals( SimplifiedDocbookMarkup.LOWERALPHA_STYLE )
)
- {
- numeration = Sink.NUMBERING_LOWER_ALPHA;
- }
- else if ( style.equals( SimplifiedDocbookMarkup.LOWERROMAN_STYLE )
)
- {
- numeration = Sink.NUMBERING_LOWER_ROMAN;
- }
- else if ( style.equals( SimplifiedDocbookMarkup.UPPERALPHA_STYLE )
)
- {
- numeration = Sink.NUMBERING_UPPER_ALPHA;
- }
- else if ( style.equals( SimplifiedDocbookMarkup.UPPERROMAN_STYLE )
)
- {
- numeration = Sink.NUMBERING_UPPER_ROMAN;
- }
- sink.numberedList( numeration );
- parent.push( parser.getName() );
+ handleOrderedListStart( parser, sink );
}
else if ( parser.getName().equals(
SimplifiedDocbookMarkup.LISTITEM_TAG.toString() ) )
{
- if ( isParent( SimplifiedDocbookMarkup.VARIABLELIST_TAG.toString()
) )
- {
- sink.definition();
- }
- else if ( isParent(
SimplifiedDocbookMarkup.ORDEREDLIST_TAG.toString() ) )
- {
- sink.numberedListItem();
- }
- else
- {
- sink.listItem();
- }
+ handleListItemStart( sink );
}
else if ( parser.getName().equals(
SimplifiedDocbookMarkup.VARIABLELIST_TAG.toString() ) )
{
- sink.definitionList();
- parent.push( parser.getName() );
+ handleVariableListStart( sink, parser);
}
else if ( parser.getName().equals(
SimplifiedDocbookMarkup.VARLISTENTRY_TAG.toString() ) )
{
@@ -208,32 +152,22 @@
{
sink.definedTerm();
}
- //handle figures
else if ( parser.getName().equals(
SimplifiedDocbookMarkup.FIGURE_TAG.toString() ) )
{
- sink.figure();
- parent.push( parser.getName() );
+ handleFigureStart( sink, parser);
}
else if ( parser.getName().equals(
SimplifiedDocbookMarkup.IMAGEOBJECT_TAG.toString() ) )
{
- String fileref = getAttributeValue( parser, "fileref" );
- if ( fileref != null )
- {
- sink.figureGraphics( fileref );
- parent.push( parser.getName() );
- }
+ handleImageObjectStart( parser, sink );
}
- else if ( parser.getName().equals(
SimplifiedDocbookMarkup.CAPTION_TAG.toString() )
- && isParent( SimplifiedDocbookMarkup.FIGURE_TAG.toString() ) )
+ else if ( parser.getName().equals(
SimplifiedDocbookMarkup.CAPTION_TAG.toString() ) )
{
- sink.figureCaption();
+ handleCaptionStart(sink);
}
else if ( parser.getName().equals(
SimplifiedDocbookMarkup.TABLE_TAG.toString() )
|| parser.getName().equals(
SimplifiedDocbookMarkup.INFORMALTABLE_TAG.toString() ) )
{
- sink.table();
- //TODO handle tgroups
- parent.push( parser.getName() );
+ handleTableStart( sink, parser);
}
else if ( parser.getName().equals(
SimplifiedDocbookMarkup.THEAD_TAG.toString() ) )
{
@@ -254,13 +188,6 @@
{
sink.tableCell();
}
- else
- if ( parser.getName().equals( CAPTION_TAG.toString() )
- && ( isParent(
SimplifiedDocbookMarkup.INFORMALTABLE_TAG.toString() )
- || isParent( SimplifiedDocbookMarkup.TABLE_TAG.toString() ) ) )
- {
- sink.tableCaption();
- }
else if ( parser.getName().equals(
SimplifiedDocbookMarkup.PARA_TAG.toString() ) )
{
sink.paragraph();
@@ -273,15 +200,12 @@
{
sink.verbatim( SinkEventAttributeSet.BOXED );
}
-
- else if ( BOLD_ELEMENTS.contains( parser.getName() )
- && MONOSPACE_ELEMENTS.contains( parser.getName() ) )
+ else if ( BOLD_ELEMENTS.contains( parser.getName() ) &&
MONOSPACE_ELEMENTS.contains( parser.getName() ) )
{
sink.bold();
sink.monospaced();
}
- else if ( ITALIC_ELEMENTS.contains( parser.getName() )
- && MONOSPACE_ELEMENTS.contains( parser.getName() ) )
+ else if ( ITALIC_ELEMENTS.contains( parser.getName() ) &&
MONOSPACE_ELEMENTS.contains( parser.getName() ) )
{
sink.italic();
sink.monospaced();
@@ -294,7 +218,6 @@
&& "bold".equals( parser.getAttributeValue( null, "role" ) ) )
{
sink.bold();
-
isBold = true;
}
else if ( ITALIC_ELEMENTS.contains( parser.getName() ) )
@@ -305,26 +228,9 @@
{
sink.monospaced();
}
-
else if ( parser.getName().equals(
SimplifiedDocbookMarkup.TITLE_TAG.toString() ) )
{
- if ( parser.getName().equals(
SimplifiedDocbookMarkup.FIGURE_TAG.toString() ) )
- {
- sink.figureCaption();
- }
- else if ( parser.getName().equals(
SimplifiedDocbookMarkup.TABLE_TAG.toString() )
- || parser.getName().equals(
SimplifiedDocbookMarkup.INFORMALTABLE_TAG.toString() ) )
- {
- sink.tableCaption();
- }
- else if ( level == 0 )
- {
- sink.title();
- }
- else
- {
- sink.sectionTitle( level, null );
- }
+ handleTitleStart( parser, sink );
}
else if ( parser.getName().equals(
SimplifiedDocbookMarkup.CORPAUTHOR_TAG.toString() ) )
{
@@ -336,45 +242,19 @@
}
else if ( parser.getName().equals(
SimplifiedDocbookMarkup.ULINK_TAG.toString() ) )
{
- String url = getAttributeValue( parser,
SimplifiedDocbookMarkup.URL_ATTRIBUTE );
- if ( url != null )
- {
- parent.push( parser.getName() );
- sink.link( url );
- }
+ handleUlinkStart( parser, sink );
}
else if ( parser.getName().equals(
SimplifiedDocbookMarkup.EMAIL_TAG.toString() ) )
{
- String mailto;
- try
- {
- mailto = parser.nextText();
- }
- catch ( IOException e )
- {
- throw new XmlPullParserException( "IOException: " +
e.getMessage(), parser, e );
- }
- sink.link( "mailto:" + mailto );
- sink.link_();
+ handleEmailStart(parser, sink);
}
else if ( parser.getName().equals(
SimplifiedDocbookMarkup.LINK_TAG.toString() ) )
{
- String linkend = getAttributeValue( parser,
SimplifiedDocbookMarkup.LINKEND_ATTRIBUTE );
- if ( linkend != null )
- {
- parent.push( parser.getName() );
- sink.link( "#" + linkend );
- }
+ handleLinkStart( parser, sink );
}
else if ( parser.getName().equals(
SimplifiedDocbookMarkup.XREF_TAG.toString() ) )
{
- String linkend = getAttributeValue( parser,
SimplifiedDocbookMarkup.LINKEND_ATTRIBUTE );
- if ( linkend != null )
- {
- sink.link( "#" + linkend );
- sink.text( "Link" ); //TODO: determine text of link target
- sink.link_();
- }
+ handleXrefStart( parser, sink );
}
else
{
@@ -402,7 +282,6 @@
//decrease the nesting level
level--;
}
- //handle lists
else if ( parser.getName().equals(
SimplifiedDocbookMarkup.ITEMIZEDLIST_TAG.toString() ) )
{
sink.list_();
@@ -440,16 +319,14 @@
{
sink.definedTerm_();
}
- //handle figures
else if ( parser.getName().equals(
SimplifiedDocbookMarkup.FIGURE_TAG.toString() ) )
{
sink.figure_();
parent.pop();
}
- else if ( parser.getName().equals(
SimplifiedDocbookMarkup.CAPTION_TAG.toString() )
- && isParent( SimplifiedDocbookMarkup.FIGURE_TAG.toString() ) )
+ else if ( parser.getName().equals(
SimplifiedDocbookMarkup.CAPTION_TAG.toString() ) )
{
- sink.figureCaption_();
+ handleCaptionEnd(sink);
}
else if ( parser.getName().equals(
SimplifiedDocbookMarkup.TABLE_TAG.toString() )
|| parser.getName().equals(
SimplifiedDocbookMarkup.INFORMALTABLE_TAG.toString() ) )
@@ -477,13 +354,6 @@
{
sink.tableCell_();
}
- else
- if ( parser.getName().equals(
SimplifiedDocbookMarkup.CAPTION_TAG.toString() )
- && ( isParent(
SimplifiedDocbookMarkup.INFORMALTABLE_TAG.toString() )
- || isParent( SimplifiedDocbookMarkup.TABLE_TAG.toString() ) ) )
- {
- sink.tableCaption_();
- }
else if ( parser.getName().equals(
SimplifiedDocbookMarkup.PARA_TAG.toString() ) )
{
sink.paragraph_();
@@ -530,7 +400,6 @@
{
sink.monospaced_();
}
-
else if ( parser.getName().equals(
SimplifiedDocbookMarkup.TITLE_TAG.toString() ) )
{
if ( parser.getName().equals(
SimplifiedDocbookMarkup.FIGURE_TAG.toString() ) )
@@ -625,6 +494,214 @@
return null;
}
+ private void handleCaptionStart( Sink sink )
+ {
+ if ( isParent( SimplifiedDocbookMarkup.FIGURE_TAG.toString() ) )
+ {
+ sink.figureCaption();
+ }
+ else if ( isParent(
SimplifiedDocbookMarkup.INFORMALTABLE_TAG.toString() )
+ || isParent( SimplifiedDocbookMarkup.TABLE_TAG.toString() ) )
+ {
+ sink.tableCaption();
+ }
+ }
+
+ private void handleCaptionEnd( Sink sink )
+ {
+ if ( isParent( SimplifiedDocbookMarkup.FIGURE_TAG.toString() ) )
+ {
+ sink.figureCaption_();
+ }
+ else if ( isParent(
SimplifiedDocbookMarkup.INFORMALTABLE_TAG.toString() )
+ || isParent( SimplifiedDocbookMarkup.TABLE_TAG.toString() ) )
+ {
+ sink.tableCaption_();
+ }
+ }
+
+ private void handleEmailStart( XmlPullParser parser, Sink sink )
+ throws XmlPullParserException
+ {
+ String mailto;
+ try
+ {
+ mailto = parser.nextText();
+ } catch ( IOException e )
+ {
+ throw new XmlPullParserException( "IOException: " +
e.getMessage(), parser, e );
+ }
+ sink.link( "mailto:" + mailto );
+ sink.link_();
+ }
+
+ private void handleFigureStart( Sink sink, XmlPullParser parser )
+ {
+ sink.figure();
+ parent.push( parser.getName() );
+ }
+
+ //If the element introduces a new level of hierarchy, raise the stack
+ private void handleHierarchyElements( Sink sink )
+ {
+ //increase the nesting level
+ level++;
+
+ //if this is the root element, handle it as body
+ if ( level == 0 )
+ {
+ sink.body();
+ }
+ else
+ {
+ sink.section( level, null );
+ }
+ }
+
+ private void handleIdAnchor( String id, Sink sink )
+ {
+ //catch link targets
+ if ( id != null )
+ {
+ sink.anchor( id );
+ sink.anchor_();
+ }
+ }
+
+ private void handleImageObjectStart( XmlPullParser parser, Sink sink )
+ {
+ String fileref = getAttributeValue( parser, "fileref" );
+
+ if ( fileref != null )
+ {
+ sink.figureGraphics( fileref );
+ parent.push( parser.getName() );
+ }
+ }
+
+ private void handleItemizedListStart( Sink sink, XmlPullParser parser )
+ {
+ sink.list();
+ //for itemizedlists in variablelists
+ parent.push( parser.getName() );
+ }
+
+ private void handleLinkStart( XmlPullParser parser, Sink sink )
+ {
+ String linkend = getAttributeValue( parser,
+ SimplifiedDocbookMarkup.LINKEND_ATTRIBUTE );
+ if ( linkend != null )
+ {
+ parent.push( parser.getName() );
+ sink.link( "#" + linkend );
+ }
+ }
+
+ private void handleListItemStart( Sink sink )
+ {
+ if ( isParent( SimplifiedDocbookMarkup.VARIABLELIST_TAG.toString() ) )
+ {
+ sink.definition();
+ }
+ else if ( isParent( SimplifiedDocbookMarkup.ORDEREDLIST_TAG.toString()
) )
+ {
+ sink.numberedListItem();
+ }
+ else
+ {
+ sink.listItem();
+ }
+ }
+
+ private void handleOrderedListStart( XmlPullParser parser, Sink sink )
+ {
+ //default enumeration style is decimal
+ int numeration = Sink.NUMBERING_DECIMAL;
+
+ String style = getAttributeValue( parser,
SimplifiedDocbookMarkup.NUMERATION_ATTRIBUTE );
+
+ if ( style.equals( SimplifiedDocbookMarkup.ARABIC_STYLE ) )
+ {
+ numeration = Sink.NUMBERING_DECIMAL;
+ }
+ else if ( style.equals( SimplifiedDocbookMarkup.LOWERALPHA_STYLE ) )
+ {
+ numeration = Sink.NUMBERING_LOWER_ALPHA;
+ }
+ else if ( style.equals( SimplifiedDocbookMarkup.LOWERROMAN_STYLE ) )
+ {
+ numeration = Sink.NUMBERING_LOWER_ROMAN;
+ }
+ else if ( style.equals( SimplifiedDocbookMarkup.UPPERALPHA_STYLE ) )
+ {
+ numeration = Sink.NUMBERING_UPPER_ALPHA;
+ }
+ else if ( style.equals( SimplifiedDocbookMarkup.UPPERROMAN_STYLE ) )
+ {
+ numeration = Sink.NUMBERING_UPPER_ROMAN;
+ }
+
+ sink.numberedList( numeration );
+ parent.push( parser.getName() );
+ }
+
+ private void handleTableStart( Sink sink, XmlPullParser parser )
+ {
+ sink.table();
+ //TODO handle tgroups
+ parent.push( parser.getName() );
+ }
+
+ private void handleTitleStart( XmlPullParser parser, Sink sink )
+ {
+ if ( parser.getName().equals(
SimplifiedDocbookMarkup.FIGURE_TAG.toString() ) )
+ {
+ sink.figureCaption();
+ }
+ else if ( parser.getName().equals(
SimplifiedDocbookMarkup.TABLE_TAG.toString() )
+ || parser.getName().equals(
SimplifiedDocbookMarkup.INFORMALTABLE_TAG.toString() ) )
+ {
+ sink.tableCaption();
+ }
+ else if ( level == 0 )
+ {
+ sink.title();
+ }
+ else
+ {
+ sink.sectionTitle( level, null );
+ }
+ }
+
+ private void handleUlinkStart( XmlPullParser parser, Sink sink )
+ {
+ String url = getAttributeValue( parser,
+ SimplifiedDocbookMarkup.URL_ATTRIBUTE );
+ if ( url != null )
+ {
+ parent.push( parser.getName() );
+ sink.link( url );
+ }
+ }
+
+ private void handleVariableListStart( Sink sink, XmlPullParser parser )
+ {
+ sink.definitionList();
+ parent.push( parser.getName() );
+ }
+
+ private void handleXrefStart( XmlPullParser parser, Sink sink )
+ {
+ String linkend = getAttributeValue( parser,
+ SimplifiedDocbookMarkup.LINKEND_ATTRIBUTE );
+ if ( linkend != null )
+ {
+ sink.link( "#" + linkend );
+ sink.text( "Link" ); //TODO: determine text of link target
+ sink.link_();
+ }
+ }
+
/**
* Determines if the given element is a parent element.
*