You are viewing a plain text version of this content. The canonical link for it is here.
Posted to doxia-commits@maven.apache.org by lt...@apache.org on 2009/06/13 13:40:12 UTC

svn commit: r784379 - in /maven/doxia/doxia/trunk/doxia-modules/doxia-module-docbook-simple/src: main/java/org/apache/maven/doxia/module/docbook/ test/java/org/apache/maven/doxia/module/docbook/

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"