Author: ltheussl Date: Mon Jun 15 04:52:05 2009 New Revision: 784650 URL: http://svn.apache.org/viewvc?rev=784650&view=rev Log: Add some ignored tags to reduce logging noise.
Modified: maven/doxia/doxia/trunk/doxia-modules/doxia-module-docbook-simple/src/main/java/org/apache/maven/doxia/module/docbook/DocBookParser.java maven/doxia/doxia/trunk/doxia-modules/doxia-module-docbook-simple/src/main/java/org/apache/maven/doxia/module/docbook/DocbookUtils.java maven/doxia/doxia/trunk/doxia-modules/doxia-module-docbook-simple/src/test/java/org/apache/maven/doxia/module/docbook/DocbookUtilsTest.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=784650&r1=784649&r2=784650&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 Mon Jun 15 04:52:05 2009 @@ -62,6 +62,7 @@ private boolean simpleTag; + private char trademark = '\u2122'; /** * A selective stack of parent elements */ @@ -104,6 +105,11 @@ */ private static final Collection MONOSPACE_ELEMENTS = new HashSet(); + /** + * The list of DocBook elements that may be ignored, either because they don't + * require any special processing or because they are not yet implemented. + */ + private static final Collection IGNORABLE_ELEMENTS = new HashSet(); static { META_ELEMENTS.add( SimplifiedDocbookMarkup.ARTICLEINFO_TAG.toString() ); @@ -131,6 +137,8 @@ ITALIC_ELEMENTS.add( SimplifiedDocbookMarkup.SYSTEMITEM_TAG.toString() ); ITALIC_ELEMENTS.add( SimplifiedDocbookMarkup.CITETITLE_TAG.toString() ); ITALIC_ELEMENTS.add( SimplifiedDocbookMarkup.EMPHASIS_TAG.toString() ); + ITALIC_ELEMENTS.add( SimplifiedDocbookMarkup.ATTRIBUTION_TAG.toString() ); + ITALIC_ELEMENTS.add( SimplifiedDocbookMarkup.LINEANNOTATION_TAG.toString() ); MONOSPACE_ELEMENTS.add( SimplifiedDocbookMarkup.COMPUTEROUTPUT_TAG.toString() ); MONOSPACE_ELEMENTS.add( SimplifiedDocbookMarkup.REPLACEABLE_TAG.toString() ); @@ -139,6 +147,24 @@ MONOSPACE_ELEMENTS.add( SimplifiedDocbookMarkup.SYSTEMITEM_TAG.toString() ); MONOSPACE_ELEMENTS.add( SimplifiedDocbookMarkup.USERINPUT_TAG.toString() ); MONOSPACE_ELEMENTS.add( SimplifiedDocbookMarkup.FILENAME_TAG.toString() ); + + IGNORABLE_ELEMENTS.add( SimplifiedDocbookMarkup.ABBREV_TAG.toString() ); + IGNORABLE_ELEMENTS.add( SimplifiedDocbookMarkup.ABSTRACT_TAG.toString() ); + IGNORABLE_ELEMENTS.add( SimplifiedDocbookMarkup.BIBLIOMIXED_TAG.toString() ); + IGNORABLE_ELEMENTS.add( SimplifiedDocbookMarkup.BIBLIOMSET_TAG.toString() ); + IGNORABLE_ELEMENTS.add( SimplifiedDocbookMarkup.COLSPEC_TAG.toString() ); + IGNORABLE_ELEMENTS.add( SimplifiedDocbookMarkup.EPIGRAPH_TAG.toString() ); + IGNORABLE_ELEMENTS.add( SimplifiedDocbookMarkup.EXAMPLE_TAG.toString() ); + IGNORABLE_ELEMENTS.add( SimplifiedDocbookMarkup.FOOTNOTEREF_TAG.toString() ); + IGNORABLE_ELEMENTS.add( SimplifiedDocbookMarkup.IMAGEOBJECT_TAG.toString() ); + IGNORABLE_ELEMENTS.add( SimplifiedDocbookMarkup.INLINEMEDIAOBJECT_TAG.toString() ); + IGNORABLE_ELEMENTS.add( SimplifiedDocbookMarkup.ISSUENUM_TAG.toString() ); + IGNORABLE_ELEMENTS.add( SimplifiedDocbookMarkup.PHRASE_TAG.toString() ); + IGNORABLE_ELEMENTS.add( SimplifiedDocbookMarkup.PUBDATE_TAG.toString() ); + IGNORABLE_ELEMENTS.add( SimplifiedDocbookMarkup.PUBLISHERNAME_TAG.toString() ); + IGNORABLE_ELEMENTS.add( SimplifiedDocbookMarkup.SPANSPEC_TAG.toString() ); + IGNORABLE_ELEMENTS.add( SimplifiedDocbookMarkup.TEXTOBJECT_TAG.toString() ); + IGNORABLE_ELEMENTS.add( SimplifiedDocbookMarkup.VOLUMENUM_TAG.toString() ); } // ---------------------------------------------------------------------- @@ -174,6 +200,22 @@ { parent.push( SimplifiedDocbookMarkup.ARTICLEINFO_TAG.toString() ); } + else if ( parser.getName().equals( SimplifiedDocbookMarkup.FOOTNOTE_TAG.toString() ) + || parser.getName().equals( SimplifiedDocbookMarkup.SECTIONINFO_TAG.toString() ) + || parser.getName().equals( SimplifiedDocbookMarkup.VIDEOOBJECT_TAG.toString() ) + || parser.getName().equals( SimplifiedDocbookMarkup.AUDIOOBJECT_TAG.toString() ) ) + { + parent.push( parser.getName() ); + ignore = true; + } + else if ( isParent( ( SimplifiedDocbookMarkup.FOOTNOTE_TAG.toString() ) ) + || isParent( SimplifiedDocbookMarkup.AUDIOOBJECT_TAG.toString() ) + || isParent( SimplifiedDocbookMarkup.VIDEOOBJECT_TAG.toString() ) + || isParent( SimplifiedDocbookMarkup.SECTIONINFO_TAG.toString() ) + || isParent( SimplifiedDocbookMarkup.ENTRYTBL_TAG.toString() ) ) + { + return; // TODO: implement footnotes, entrytbl + } else if ( HIER_ELEMENTS.contains( parser.getName() ) ) { handleSectionElements( sink, parser.getName(), attribs ); @@ -210,6 +252,20 @@ { return; } + else if ( parser.getName().equals( SimplifiedDocbookMarkup.QUOTE_TAG.toString() ) ) + { + sink.text( "\"", null ); + } + else if ( parser.getName().equals( SimplifiedDocbookMarkup.TRADEMARK_TAG.toString() ) ) + { + trademark = '\u2122'; + Object trade = attribs.getAttribute( "class" ); + + if ( trade != null ) + { + trademark = DocbookUtils.trademarkFromClass( trade.toString() ); + } + } else { if ( !ignorable( parser.getName() ) ) @@ -250,6 +306,23 @@ level--; parent.pop(); } + else if ( parser.getName().equals( SimplifiedDocbookMarkup.FOOTNOTE_TAG.toString() ) + || parser.getName().equals( SimplifiedDocbookMarkup.AUDIOOBJECT_TAG.toString() ) + || parser.getName().equals( SimplifiedDocbookMarkup.VIDEOOBJECT_TAG.toString() ) + || parser.getName().equals( SimplifiedDocbookMarkup.SECTIONINFO_TAG.toString() ) + || parser.getName().equals( SimplifiedDocbookMarkup.ENTRYTBL_TAG.toString() ) ) + { + parent.pop(); + ignore = false; + } + else if ( isParent( ( SimplifiedDocbookMarkup.FOOTNOTE_TAG.toString() ) ) + || isParent( SimplifiedDocbookMarkup.AUDIOOBJECT_TAG.toString() ) + || isParent( SimplifiedDocbookMarkup.VIDEOOBJECT_TAG.toString() ) + || isParent( SimplifiedDocbookMarkup.SECTIONINFO_TAG.toString() ) + || isParent( SimplifiedDocbookMarkup.ENTRYTBL_TAG.toString() ) ) + { + return; + } else if ( parser.getName().equals( SimplifiedDocbookMarkup.ITEMIZEDLIST_TAG.toString() ) ) { sink.list_(); @@ -386,6 +459,14 @@ sink.link_(); } } + else if ( parser.getName().equals( SimplifiedDocbookMarkup.QUOTE_TAG.toString() ) ) + { + sink.text( "\"", null ); + } + else if ( parser.getName().equals( SimplifiedDocbookMarkup.TRADEMARK_TAG.toString() ) ) + { + sink.text( Character.toString( trademark ), null ); + } else if ( !simpleTag && !ignorable( parser.getName() ) ) { handleUnknown( parser, sink, HtmlMarkup.TAG_TYPE_END ); @@ -535,6 +616,9 @@ { String mailto = parser.nextText(); sink.link( "mailto:" + mailto, attribs ); + sink.monospaced(); + sink.text( mailto, null ); + sink.monospaced_(); sink.link_(); } catch ( IOException e ) @@ -757,10 +841,7 @@ private boolean ignorable( String name ) { - return name.equals( SimplifiedDocbookMarkup.IMAGEOBJECT_TAG.toString() ) - || name.equals( SimplifiedDocbookMarkup.PHRASE_TAG.toString() ) - || name.equals( SimplifiedDocbookMarkup.COLSPEC_TAG.toString() ) - || name.equals( SimplifiedDocbookMarkup.TEXTOBJECT_TAG.toString() ); + return IGNORABLE_ELEMENTS.contains( name ); } /** @@ -911,7 +992,15 @@ private boolean tableStartTags( String name, Sink sink, SinkEventAttributeSet attribs ) { - if ( name.equals( SimplifiedDocbookMarkup.TABLE_TAG.toString() ) + if ( name.equals( SimplifiedDocbookMarkup.ENTRYTBL_TAG.toString() ) ) + { + parent.push( name ); + ignore = true; + // insert empty table cell instead + sink.tableCell( (SinkEventAttributeSet) null ); + sink.tableCell_(); + } + else if ( name.equals( SimplifiedDocbookMarkup.TABLE_TAG.toString() ) || name.equals( SimplifiedDocbookMarkup.INFORMALTABLE_TAG.toString() ) ) { handleTableStart( sink, attribs ); Modified: maven/doxia/doxia/trunk/doxia-modules/doxia-module-docbook-simple/src/main/java/org/apache/maven/doxia/module/docbook/DocbookUtils.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/DocbookUtils.java?rev=784650&r1=784649&r2=784650&view=diff ============================================================================== --- maven/doxia/doxia/trunk/doxia-modules/doxia-module-docbook-simple/src/main/java/org/apache/maven/doxia/module/docbook/DocbookUtils.java (original) +++ maven/doxia/doxia/trunk/doxia-modules/doxia-module-docbook-simple/src/main/java/org/apache/maven/doxia/module/docbook/DocbookUtils.java Mon Jun 15 04:52:05 2009 @@ -147,4 +147,40 @@ throw new IllegalArgumentException( "Not a valid numbering: " + numbering ); } } + + /** + * Get a trademark character from a class attribute. + * + * <p>The input String has to be one of <code>"registered"</code>, <code>"copyright"</code>, + * <code>"service"</code> or <code>"trade"</code> otherwise an IllegalArgumentException is thrown.</p> + * + * <p>The corresponding output is <code>'\u00AE'</code>, <code>'\u00A9'</code>, + * <code>'\u2120'</code> or <code>'\u2122'</code>.</p> + * + * @param trade a valid class atribute for the docbook <code><trademark></code> tag. + * @return the corresponding unicode character. + */ + public static final char trademarkFromClass( String trade ) + { + if ( "registered".equals( trade ) ) + { + return '\u00AE'; + } + else if ( "copyright".equals( trade ) ) + { + return '\u00A9'; + } + else if ( "service".equals( trade ) ) + { + return '\u2120'; + } + else if ( "trade".equals( trade ) ) + { + return '\u2122'; + } + else + { + throw new IllegalArgumentException( "Not a trademark class: " + trade ); + } + } } Modified: maven/doxia/doxia/trunk/doxia-modules/doxia-module-docbook-simple/src/test/java/org/apache/maven/doxia/module/docbook/DocbookUtilsTest.java URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-docbook-simple/src/test/java/org/apache/maven/doxia/module/docbook/DocbookUtilsTest.java?rev=784650&r1=784649&r2=784650&view=diff ============================================================================== --- maven/doxia/doxia/trunk/doxia-modules/doxia-module-docbook-simple/src/test/java/org/apache/maven/doxia/module/docbook/DocbookUtilsTest.java (original) +++ maven/doxia/doxia/trunk/doxia-modules/doxia-module-docbook-simple/src/test/java/org/apache/maven/doxia/module/docbook/DocbookUtilsTest.java Mon Jun 15 04:52:05 2009 @@ -108,4 +108,24 @@ assertNotNull( e ); } } + /** + * Test of trademarkFromClass method, of class DocbookUtils. + */ + public void testTrademarkFromClass() + { + assertEquals( '\u00AE', DocbookUtils.trademarkFromClass( "registered" ) ); + assertEquals( '\u00A9', DocbookUtils.trademarkFromClass( "copyright" ) ); + assertEquals( '\u2120', DocbookUtils.trademarkFromClass( "service" ) ); + assertEquals( '\u2122', DocbookUtils.trademarkFromClass( "trade" ) ); + + try + { + DocbookUtils.trademarkFromClass( "" ); + fail(); + } + catch ( IllegalArgumentException e ) + { + assertNotNull( e ); + } + } }