Author: vsiveton
Date: Mon Jun 8 12:49:39 2009
New Revision: 782608
URL: http://svn.apache.org/viewvc?rev=782608&view=rev
Log:
o improved getPageSize
o added test cases
Added:
maven/doxia/doxia/trunk/doxia-modules/doxia-module-itext/src/test/java/org/apache/maven/doxia/module/itext/ITextUtilTest.java
(with props)
Modified:
maven/doxia/doxia/trunk/doxia-modules/doxia-module-itext/src/main/java/org/apache/maven/doxia/module/itext/ITextUtil.java
Modified:
maven/doxia/doxia/trunk/doxia-modules/doxia-module-itext/src/main/java/org/apache/maven/doxia/module/itext/ITextUtil.java
URL:
http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-itext/src/main/java/org/apache/maven/doxia/module/itext/ITextUtil.java?rev=782608&r1=782607&r2=782608&view=diff
==============================================================================
---
maven/doxia/doxia/trunk/doxia-modules/doxia-module-itext/src/main/java/org/apache/maven/doxia/module/itext/ITextUtil.java
(original)
+++
maven/doxia/doxia/trunk/doxia-modules/doxia-module-itext/src/main/java/org/apache/maven/doxia/module/itext/ITextUtil.java
Mon Jun 8 12:49:39 2009
@@ -29,7 +29,6 @@
import java.io.InputStream;
import java.io.OutputStream;
import java.lang.reflect.Field;
-import java.lang.reflect.Modifier;
import java.util.Locale;
/**
@@ -63,35 +62,50 @@
/**
* Return a page size as String.
*
- * @param rect a Rectangle
- * @return a page size as String
+ * @param rect a Rectangle defined in {...@link PageSize}.
+ * @return a page size as String or A4 if not found.
* @see com.lowagie.text.PageSize
*/
public static String getPageSize( Rectangle rect )
{
- if ( ( rect.width() == PageSize.LETTER.width() ) && ( rect.height() ==
PageSize.LETTER.height() ) )
+ Field[] fields = PageSize.class.getFields();
+ for ( int i = 0; i < fields.length; i++ )
{
- return "LETTER";
+ Field currentField = fields[i];
+ try
+ {
+ if ( currentField.getType().equals( Rectangle.class ) )
+ {
+ Rectangle fPageSize = (Rectangle) currentField.get( null );
+ if ( ( rect.width() == fPageSize.width() ) && (
rect.height() == fPageSize.height() ) )
+ {
+ return currentField.getName();
+ }
+ }
+ }
+ catch ( Exception e )
+ {
+ // nop
+ }
}
return "A4";
}
/**
- * Return true if the page size is supported by <code>PageSize</code>
class, false otherwise
+ * Return <code>true</code> if the page size is supported by {...@link
PageSize} class, <code>false</code> otherwise.
*
* @param aPageSize a page size
- * @return true if the page size is supported, false otherwise
+ * @return <code>true</code> if the page size is supported,
<code>false</code> otherwise
* @see com.lowagie.text.PageSize
*/
public static boolean isPageSizeSupported( String aPageSize )
{
- Field[] sizes = PageSize.class.getDeclaredFields();
- for ( int i = 0; i < sizes.length; i++ )
+ Field[] fields = PageSize.class.getFields();
+ for ( int i = 0; i < fields.length; i++ )
{
- Field currentField = sizes[i];
+ Field currentField = fields[i];
if ( ( currentField.getName().equalsIgnoreCase( aPageSize ) )
- && ( Modifier.isStatic( currentField.getModifiers() ) )
&& ( currentField.getType().equals( Rectangle.class ) ) )
{
return true;
Added:
maven/doxia/doxia/trunk/doxia-modules/doxia-module-itext/src/test/java/org/apache/maven/doxia/module/itext/ITextUtilTest.java
URL:
http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-itext/src/test/java/org/apache/maven/doxia/module/itext/ITextUtilTest.java?rev=782608&view=auto
==============================================================================
---
maven/doxia/doxia/trunk/doxia-modules/doxia-module-itext/src/test/java/org/apache/maven/doxia/module/itext/ITextUtilTest.java
(added)
+++
maven/doxia/doxia/trunk/doxia-modules/doxia-module-itext/src/test/java/org/apache/maven/doxia/module/itext/ITextUtilTest.java
Mon Jun 8 12:49:39 2009
@@ -0,0 +1,94 @@
+package org.apache.maven.doxia.module.itext;
+
+/*
+ * 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 java.util.Locale;
+
+import junit.framework.TestCase;
+
+import com.lowagie.text.PageSize;
+
+/**
+ * @author <a href="mailto:[email protected]">Vincent Siveton</a>
+ * @version $Id$
+ */
+public class ITextUtilTest
+ extends TestCase
+{
+ public void testGetDefaultPageSize()
+ throws Exception
+ {
+ Locale oldLocale = Locale.getDefault();
+
+ try
+ {
+ Locale.setDefault( Locale.US );
+ assertEquals( PageSize.LETTER, ITextUtil.getDefaultPageSize() );
+
+ Locale.setDefault( Locale.CANADA );
+ assertEquals( PageSize.LETTER, ITextUtil.getDefaultPageSize() );
+
+ Locale.setDefault( Locale.FRANCE );
+ assertEquals( PageSize.A4, ITextUtil.getDefaultPageSize() );
+ }
+ finally
+ {
+ Locale.setDefault( oldLocale );
+ }
+ }
+
+ public void testGetPageSize()
+ throws Exception
+ {
+ assertEquals( "A0", ITextUtil.getPageSize( PageSize.A0 ) );
+ assertEquals( "A1", ITextUtil.getPageSize( PageSize.A1 ) );
+ assertEquals( "A2", ITextUtil.getPageSize( PageSize.A2 ) );
+ assertEquals( "A3", ITextUtil.getPageSize( PageSize.A3 ) );
+ assertEquals( "A4", ITextUtil.getPageSize( PageSize.A4 ) );
+ assertEquals( "A5", ITextUtil.getPageSize( PageSize.A5 ) );
+ assertEquals( "A6", ITextUtil.getPageSize( PageSize.A6 ) );
+ assertEquals( "A7", ITextUtil.getPageSize( PageSize.A7 ) );
+ assertEquals( "A8", ITextUtil.getPageSize( PageSize.A8 ) );
+ assertEquals( "A9", ITextUtil.getPageSize( PageSize.A9 ) );
+ assertEquals( "A10", ITextUtil.getPageSize( PageSize.A10 ) );
+ assertEquals( "LETTER", ITextUtil.getPageSize( PageSize.LETTER ) );
+ assertEquals( "LEGAL", ITextUtil.getPageSize( PageSize.LEGAL ) );
+ }
+
+ public void testIsPageSupported()
+ throws Exception
+ {
+ assertEquals( true, ITextUtil.isPageSizeSupported( "A0" ) );
+ assertEquals( true, ITextUtil.isPageSizeSupported( "A1" ) );
+ assertEquals( true, ITextUtil.isPageSizeSupported( "A2" ) );
+ assertEquals( true, ITextUtil.isPageSizeSupported( "A3" ) );
+ assertEquals( true, ITextUtil.isPageSizeSupported( "A4" ) );
+ assertEquals( true, ITextUtil.isPageSizeSupported( "A5" ) );
+ assertEquals( true, ITextUtil.isPageSizeSupported( "A6" ) );
+ assertEquals( true, ITextUtil.isPageSizeSupported( "A7" ) );
+ assertEquals( true, ITextUtil.isPageSizeSupported( "A8" ) );
+ assertEquals( true, ITextUtil.isPageSizeSupported( "A9" ) );
+ assertEquals( true, ITextUtil.isPageSizeSupported( "A10" ) );
+ assertEquals( true, ITextUtil.isPageSizeSupported( "LETTER" ) );
+ assertEquals( true, ITextUtil.isPageSizeSupported( "letter" ) );
+ assertEquals( true, ITextUtil.isPageSizeSupported( "LEGAL" ) );
+ assertEquals( true, ITextUtil.isPageSizeSupported( "legal" ) );
+ }
+}
Propchange:
maven/doxia/doxia/trunk/doxia-modules/doxia-module-itext/src/test/java/org/apache/maven/doxia/module/itext/ITextUtilTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
maven/doxia/doxia/trunk/doxia-modules/doxia-module-itext/src/test/java/org/apache/maven/doxia/module/itext/ITextUtilTest.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision