Author: ltheussl
Date: Sat Jun 13 11:40:11 2009
New Revision: 784379
URL: http://svn.apache.org/viewvc?rev=784379&view=rev
Log:
Factor out some utility methods in a separate class.
Added:
maven/doxia/doxia/trunk/doxia-modules/doxia-module-docbook-simple/src/main/java/org/apache/maven/doxia/module/docbook/DocbookUtils.java
(with props)
maven/doxia/doxia/trunk/doxia-modules/doxia-module-docbook-simple/src/test/java/org/apache/maven/doxia/module/docbook/DocbookUtilsTest.java
(with props)
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/DocBookSink.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=784379&r1=784378&r2=784379&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
Sat Jun 13 11:40:11 2009
@@ -634,30 +634,12 @@
{
//default enumeration style is decimal
int numeration = Sink.NUMBERING_DECIMAL;
- String style = SimplifiedDocbookMarkup.ARABIC_STYLE;
Object num = attribs.getAttribute(
SimplifiedDocbookMarkup.NUMERATION_ATTRIBUTE );
if ( num != null )
{
- style = num.toString();
- }
-
- if ( SimplifiedDocbookMarkup.LOWERALPHA_STYLE.equals( style ) )
- {
- numeration = Sink.NUMBERING_LOWER_ALPHA;
- }
- else if ( SimplifiedDocbookMarkup.LOWERROMAN_STYLE.equals( style ) )
- {
- numeration = Sink.NUMBERING_LOWER_ROMAN;
- }
- else if ( SimplifiedDocbookMarkup.UPPERALPHA_STYLE.equals( style ) )
- {
- numeration = Sink.NUMBERING_UPPER_ALPHA;
- }
- else if ( SimplifiedDocbookMarkup.UPPERROMAN_STYLE.equals( style ) )
- {
- numeration = Sink.NUMBERING_UPPER_ROMAN;
+ numeration = DocbookUtils.doxiaListNumbering( num.toString() );
}
sink.numberedList( numeration, attribs );
@@ -687,33 +669,8 @@
Object frame = attribs.getAttribute(
SimplifiedDocbookMarkup.FRAME_ATTRIBUTE );
if ( frame != null )
{
- String fr = frame.toString();
- if ( fr.equals( "all" ) )
- {
- fr = "box";
- }
- else if ( fr.equals( "bottom" ) )
- {
- fr = "below";
- }
- else if ( fr.equals( "none" ) )
- {
- fr = "void";
- }
- else if ( fr.equals( "sides" ) )
- {
- fr = "vsides";
- }
- else if ( fr.equals( "top" ) )
- {
- fr = "above";
- }
- else if ( fr.equals( "topbot" ) )
- {
- fr = "hsides";
- }
-
- attribs.addAttribute( SimplifiedDocbookMarkup.FRAME_ATTRIBUTE, fr
);
+ attribs.addAttribute( SimplifiedDocbookMarkup.FRAME_ATTRIBUTE,
+ DocbookUtils.doxiaTableFrameAttribute( frame.toString() )
);
}
sink.table( attribs );
Modified:
maven/doxia/doxia/trunk/doxia-modules/doxia-module-docbook-simple/src/main/java/org/apache/maven/doxia/module/docbook/DocBookSink.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/DocBookSink.java?rev=784379&r1=784378&r2=784379&view=diff
==============================================================================
---
maven/doxia/doxia/trunk/doxia-modules/doxia-module-docbook-simple/src/main/java/org/apache/maven/doxia/module/docbook/DocBookSink.java
(original)
+++
maven/doxia/doxia/trunk/doxia-modules/doxia-module-docbook-simple/src/main/java/org/apache/maven/doxia/module/docbook/DocBookSink.java
Sat Jun 13 11:40:11 2009
@@ -920,25 +920,7 @@
*/
public void numberedList( int numbering )
{
- String numeration;
- switch ( numbering )
- {
- case NUMBERING_UPPER_ALPHA:
- numeration = SimplifiedDocbookMarkup.UPPERALPHA_STYLE;
- break;
- case NUMBERING_LOWER_ALPHA:
- numeration = SimplifiedDocbookMarkup.LOWERALPHA_STYLE;
- break;
- case NUMBERING_UPPER_ROMAN:
- numeration = SimplifiedDocbookMarkup.UPPERROMAN_STYLE;
- break;
- case NUMBERING_LOWER_ROMAN:
- numeration = SimplifiedDocbookMarkup.LOWERROMAN_STYLE;
- break;
- case NUMBERING_DECIMAL:
- default:
- numeration = SimplifiedDocbookMarkup.ARABIC_STYLE;
- }
+ String numeration = DocbookUtils.docbookListNumbering( numbering );
paragraph_();
Added:
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=784379&view=auto
==============================================================================
---
maven/doxia/doxia/trunk/doxia-modules/doxia-module-docbook-simple/src/main/java/org/apache/maven/doxia/module/docbook/DocbookUtils.java
(added)
+++
maven/doxia/doxia/trunk/doxia-modules/doxia-module-docbook-simple/src/main/java/org/apache/maven/doxia/module/docbook/DocbookUtils.java
Sat Jun 13 11:40:11 2009
@@ -0,0 +1,150 @@
+package org.apache.maven.doxia.module.docbook;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.maven.doxia.sink.Sink;
+
+/**
+ * Utility methods for Doxia Docbook Parser and Sink.
+ *
+ * @author ltheussl
+ * @version $Id$
+ * @since 1.1.1
+ */
+public class DocbookUtils
+{
+ /**
+ * Translate a given Docbook table frame attribute value to a valid
+ * Doxia table frame attribute value.
+ *
+ * <p>The input has to be one of <code>"all"</code>, <code>"bottom"</code>,
+ * <code>"none"</code>, <code>"sides"</code>, <code>"top"</code> or
<code>"topbot"</code>,
+ * otherwise an IllegalArgumentException is thrown.</p>
+ *
+ * <p>The corresponding output values are <code>"box"</code>,
<code>"below"</code>,
+ * <code>"void"</code>, <code>"vsides"</code>, <code>"above"</code> and
<code>"hsides"</code>.</p>
+ *
+ * @param frame a valid docbook table frame attribute as specified above,
+ * otherwise an IllegalArgumentException is thrown.
+ * @return a valid Doxia table frame attribute as specified above.
+ */
+ public static final String doxiaTableFrameAttribute( String frame )
+ {
+ String fr = frame;
+
+ if ( fr.equals( "all" ) )
+ {
+ fr = "box";
+ }
+ else if ( frame.equals( "bottom" ) )
+ {
+ fr = "below";
+ }
+ else if ( fr.equals( "none" ) )
+ {
+ fr = "void";
+ }
+ else if ( fr.equals( "sides" ) )
+ {
+ fr = "vsides";
+ }
+ else if ( fr.equals( "top" ) )
+ {
+ fr = "above";
+ }
+ else if ( fr.equals( "topbot" ) )
+ {
+ fr = "hsides";
+ }
+ else
+ {
+ throw new IllegalArgumentException( "Not a valid frame attribute:
" + fr );
+ }
+
+ return fr;
+ }
+
+ /**
+ * Convert a docbook ordered-list numbering style to a doxia numbering
style.
+ *
+ * <p>The input has to be one of the style constants defined in {...@link
SimplifiedDocbookMarkup},
+ * otherwise an IllegalArgumentException is thrown.</p>
+ *
+ * <p>The output is one of the numbering constants defined in {...@link
Sink}.</p>
+ * @param style a docbook ordered-list numbering style.
+ * @return a doxia numbering style.
+ */
+ public static final int doxiaListNumbering( String style )
+ {
+ if ( SimplifiedDocbookMarkup.LOWERALPHA_STYLE.equals( style ) )
+ {
+ return Sink.NUMBERING_LOWER_ALPHA;
+ }
+ else if ( SimplifiedDocbookMarkup.LOWERROMAN_STYLE.equals( style ) )
+ {
+ return Sink.NUMBERING_LOWER_ROMAN;
+ }
+ else if ( SimplifiedDocbookMarkup.UPPERALPHA_STYLE.equals( style ) )
+ {
+ return Sink.NUMBERING_UPPER_ALPHA;
+ }
+ else if ( SimplifiedDocbookMarkup.UPPERROMAN_STYLE.equals( style ) )
+ {
+ return Sink.NUMBERING_UPPER_ROMAN;
+ }
+ else if ( SimplifiedDocbookMarkup.ARABIC_STYLE.equals( style ) )
+ {
+ return Sink.NUMBERING_DECIMAL;
+ }
+ else
+ {
+ throw new IllegalArgumentException( "Not a valid numbering style:
" + style );
+ }
+ }
+
+ /**
+ * Convert a doxia numbering style to a docbook ordered-list numbering
style.
+ *
+ * <p>The input has to be one of the numbering constants defined in
{...@link Sink},
+ * otherwise an IllegalArgumentException is thrown.</p>
+ *
+ * <p>The output is one of the style constants defined in {...@link
SimplifiedDocbookMarkup}.</p>
+ * @param numbering a doxia numbering style.
+ * @return a docbook ordered-list numbering style.
+ */
+ public static final String docbookListNumbering( int numbering )
+ {
+ switch ( numbering )
+ {
+ case Sink.NUMBERING_UPPER_ALPHA:
+ return SimplifiedDocbookMarkup.UPPERALPHA_STYLE;
+ case Sink.NUMBERING_LOWER_ALPHA:
+ return SimplifiedDocbookMarkup.LOWERALPHA_STYLE;
+ case Sink.NUMBERING_UPPER_ROMAN:
+ return SimplifiedDocbookMarkup.UPPERROMAN_STYLE;
+ case Sink.NUMBERING_LOWER_ROMAN:
+ return SimplifiedDocbookMarkup.LOWERROMAN_STYLE;
+ case Sink.NUMBERING_DECIMAL:
+ return SimplifiedDocbookMarkup.ARABIC_STYLE;
+ default:
+ throw new IllegalArgumentException( "Not a valid numbering: "
+ numbering );
+ }
+ }
+}
Propchange:
maven/doxia/doxia/trunk/doxia-modules/doxia-module-docbook-simple/src/main/java/org/apache/maven/doxia/module/docbook/DocbookUtils.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
maven/doxia/doxia/trunk/doxia-modules/doxia-module-docbook-simple/src/main/java/org/apache/maven/doxia/module/docbook/DocbookUtils.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added:
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=784379&view=auto
==============================================================================
---
maven/doxia/doxia/trunk/doxia-modules/doxia-module-docbook-simple/src/test/java/org/apache/maven/doxia/module/docbook/DocbookUtilsTest.java
(added)
+++
maven/doxia/doxia/trunk/doxia-modules/doxia-module-docbook-simple/src/test/java/org/apache/maven/doxia/module/docbook/DocbookUtilsTest.java
Sat Jun 13 11:40:11 2009
@@ -0,0 +1,111 @@
+package org.apache.maven.doxia.module.docbook;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import junit.framework.TestCase;
+
+import org.apache.maven.doxia.sink.Sink;
+
+/**
+ * Test DocbookUtils.
+ *
+ * @author ltheussl
+ * @version $Id$
+ */
+public class DocbookUtilsTest
+ extends TestCase
+{
+ /**
+ * Test of doxiaTableFrameAttribute method, of class DocbookUtils.
+ */
+ public void testDoxiaTableFrameAttribute()
+ {
+ assertEquals( "box", DocbookUtils.doxiaTableFrameAttribute( "all" ) );
+ assertEquals( "below", DocbookUtils.doxiaTableFrameAttribute( "bottom"
) );
+ assertEquals( "void", DocbookUtils.doxiaTableFrameAttribute( "none" )
);
+ assertEquals( "vsides", DocbookUtils.doxiaTableFrameAttribute( "sides"
) );
+ assertEquals( "above", DocbookUtils.doxiaTableFrameAttribute( "top" )
);
+ assertEquals( "hsides", DocbookUtils.doxiaTableFrameAttribute(
"topbot" ) );
+
+ try
+ {
+ DocbookUtils.doxiaTableFrameAttribute( "" );
+ fail();
+ }
+ catch ( IllegalArgumentException e )
+ {
+ assertNotNull( e );
+ }
+ }
+
+ /**
+ * Test of doxiaListNumbering method, of class DocbookUtils.
+ */
+ public void testDoxiaListNumbering()
+ {
+ assertEquals( Sink.NUMBERING_LOWER_ALPHA,
+ DocbookUtils.doxiaListNumbering(
SimplifiedDocbookMarkup.LOWERALPHA_STYLE ) );
+ assertEquals( Sink.NUMBERING_LOWER_ROMAN,
+ DocbookUtils.doxiaListNumbering(
SimplifiedDocbookMarkup.LOWERROMAN_STYLE ) );
+ assertEquals( Sink.NUMBERING_UPPER_ALPHA,
+ DocbookUtils.doxiaListNumbering(
SimplifiedDocbookMarkup.UPPERALPHA_STYLE ) );
+ assertEquals( Sink.NUMBERING_UPPER_ROMAN,
+ DocbookUtils.doxiaListNumbering(
SimplifiedDocbookMarkup.UPPERROMAN_STYLE ) );
+ assertEquals( Sink.NUMBERING_DECIMAL,
+ DocbookUtils.doxiaListNumbering(
SimplifiedDocbookMarkup.ARABIC_STYLE ) );
+
+ try
+ {
+ DocbookUtils.doxiaListNumbering( "" );
+ fail();
+ }
+ catch ( IllegalArgumentException e )
+ {
+ assertNotNull( e );
+ }
+ }
+
+ /**
+ * Test of docbookListNumbering method, of class DocbookUtils.
+ */
+ public void testDocbookListNumbering()
+ {
+ assertEquals( SimplifiedDocbookMarkup.UPPERALPHA_STYLE,
+ DocbookUtils.docbookListNumbering( Sink.NUMBERING_UPPER_ALPHA
) );
+ assertEquals( SimplifiedDocbookMarkup.LOWERALPHA_STYLE,
+ DocbookUtils.docbookListNumbering( Sink.NUMBERING_LOWER_ALPHA
) );
+ assertEquals( SimplifiedDocbookMarkup.UPPERROMAN_STYLE,
+ DocbookUtils.docbookListNumbering( Sink.NUMBERING_UPPER_ROMAN
) );
+ assertEquals( SimplifiedDocbookMarkup.LOWERROMAN_STYLE,
+ DocbookUtils.docbookListNumbering( Sink.NUMBERING_LOWER_ROMAN
) );
+ assertEquals( SimplifiedDocbookMarkup.ARABIC_STYLE,
+ DocbookUtils.docbookListNumbering( Sink.NUMBERING_DECIMAL ) );
+
+ try
+ {
+ DocbookUtils.docbookListNumbering( -1 );
+ fail();
+ }
+ catch ( IllegalArgumentException e )
+ {
+ assertNotNull( e );
+ }
+ }
+}
Propchange:
maven/doxia/doxia/trunk/doxia-modules/doxia-module-docbook-simple/src/test/java/org/apache/maven/doxia/module/docbook/DocbookUtilsTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
maven/doxia/doxia/trunk/doxia-modules/doxia-module-docbook-simple/src/test/java/org/apache/maven/doxia/module/docbook/DocbookUtilsTest.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"