Author: spepping
Date: Fri Apr 18 12:07:57 2008
New Revision: 649657

URL: http://svn.apache.org/viewvc?rev=649657&view=rev
Log:
An implementation of a positive integer property maker. It implements
convertProperty, which is the correct method to implement if one wants
to add to the make process. This fixes bug 44619.

Modified:
    xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/FOPropertyMapping.java
    xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/flow/table/TableFObj.java
    
xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/properties/NumberProperty.java

Modified: 
xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/FOPropertyMapping.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/FOPropertyMapping.java?rev=649657&r1=649656&r2=649657&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/FOPropertyMapping.java 
(original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/FOPropertyMapping.java Fri 
Apr 18 12:07:57 2008
@@ -1095,13 +1095,13 @@
         addPropertyMaker("hyphenation-character", m);
 
         // hyphenation-push-character-count
-        m  = new NumberProperty.Maker(PR_HYPHENATION_PUSH_CHARACTER_COUNT);
+        m  = new 
NumberProperty.PositiveIntegerMaker(PR_HYPHENATION_PUSH_CHARACTER_COUNT);
         m.setInherited(true);
         m.setDefault("2");
         addPropertyMaker("hyphenation-push-character-count", m);
 
         // hyphenation-remain-character-count
-        m  = new NumberProperty.Maker(PR_HYPHENATION_REMAIN_CHARACTER_COUNT);
+        m  = new 
NumberProperty.PositiveIntegerMaker(PR_HYPHENATION_REMAIN_CHARACTER_COUNT);
         m.setInherited(true);
         m.setDefault("2");
         addPropertyMaker("hyphenation-remain-character-count", m);
@@ -2137,7 +2137,7 @@
         addPropertyMaker("blank-or-not-blank", m);
 
         // column-count
-        m  = new NumberProperty.Maker(PR_COLUMN_COUNT);
+        m  = new NumberProperty.PositiveIntegerMaker(PR_COLUMN_COUNT);
         m.setInherited(false);
         m.setDefault("1");
         addPropertyMaker("column-count", m);
@@ -2175,7 +2175,7 @@
         addPropertyMaker("force-page-count", m);
 
         // initial-page-number
-        m  = new NumberProperty.Maker(PR_INITIAL_PAGE_NUMBER);
+        m  = new NumberProperty.PositiveIntegerMaker(PR_INITIAL_PAGE_NUMBER);
         m.setInherited(false);
         m.addEnum("auto", getEnumProperty(EN_AUTO, "AUTO"));
         m.addEnum("auto-odd", getEnumProperty(EN_AUTO_ODD, "AUTO_ODD"));
@@ -2359,19 +2359,19 @@
         addPropertyMaker("ends-row", m);
 
         // number-columns-repeated
-        m  = new NumberProperty.Maker(PR_NUMBER_COLUMNS_REPEATED);
+        m  = new 
NumberProperty.PositiveIntegerMaker(PR_NUMBER_COLUMNS_REPEATED);
         m.setInherited(false);
         m.setDefault("1");
         addPropertyMaker("number-columns-repeated", m);
 
         // number-columns-spanned
-        m  = new NumberProperty.Maker(PR_NUMBER_COLUMNS_SPANNED);
+        m  = new 
NumberProperty.PositiveIntegerMaker(PR_NUMBER_COLUMNS_SPANNED);
         m.setInherited(false);
         m.setDefault("1");
         addPropertyMaker("number-columns-spanned", m);
 
         // number-rows-spanned
-        m  = new NumberProperty.Maker(PR_NUMBER_ROWS_SPANNED);
+        m  = new NumberProperty.PositiveIntegerMaker(PR_NUMBER_ROWS_SPANNED);
         m.setInherited(false);
         m.setDefault("1");
         addPropertyMaker("number-rows-spanned", m);

Modified: 
xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/flow/table/TableFObj.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/flow/table/TableFObj.java?rev=649657&r1=649656&r2=649657&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/flow/table/TableFObj.java 
(original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/flow/table/TableFObj.java 
Fri Apr 18 12:07:57 2008
@@ -117,7 +117,7 @@
      * PropertyMaker subclass for the column-number property
      *
      */
-    public static class ColumnNumberPropertyMaker extends NumberProperty.Maker 
{
+    public static class ColumnNumberPropertyMaker extends 
NumberProperty.PositiveIntegerMaker {
 
         /**
          * Constructor
@@ -153,24 +153,6 @@
                     = (ColumnNumberManagerHolder) propertyList.getParentFObj();
             ColumnNumberManager columnIndexManager =  
parent.getColumnNumberManager();
             int columnIndex = p.getNumeric().getValue();
-            if (columnIndex <= 0) {
-                /* No warning necessary as the spec clearly defines how to 
handle these cases.
-                log.warn("Specified negative or zero value for "
-                        + "column-number on " + fo.getName() + ": "
-                        + columnIndex + " forced to "
-                        + columnIndexManager.getCurrentColumnNumber());*/
-                return 
NumberProperty.getInstance(columnIndexManager.getCurrentColumnNumber());
-            } else {
-                double tmpIndex = p.getNumeric().getNumericValue();
-                if (tmpIndex - columnIndex > 0.0) {
-                    columnIndex = (int) Math.round(tmpIndex);
-                    /* No warning necessary as the spec clearly defines how to 
handle these cases.
-                    log.warn("Rounding specified column-number of "
-                            + tmpIndex + " to " + columnIndex);*/
-                    p = NumberProperty.getInstance(columnIndex);
-                }
-            }
-
             int colSpan = propertyList.get(Constants.PR_NUMBER_COLUMNS_SPANNED)
                                 .getNumeric().getValue();
             int i = -1;

Modified: 
xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/properties/NumberProperty.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/properties/NumberProperty.java?rev=649657&r1=649656&r2=649657&view=diff
==============================================================================
--- 
xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/properties/NumberProperty.java 
(original)
+++ 
xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/properties/NumberProperty.java 
Fri Apr 18 12:07:57 2008
@@ -68,6 +68,40 @@
 
     }
 
+    public static class PositiveIntegerMaker extends PropertyMaker {
+
+        /**
+         * Constructor for NumberProperty.PositiveIntegerMaker
+         * @param propId the id of the property for which a 
PositiveIntegerMaker should be created
+         */
+        public PositiveIntegerMaker(int propId) {
+            super(propId);
+        }
+
+        /**
+         * If the value is not positive, return a property with value 1 
+         * 
+         * [EMAIL PROTECTED]
+         */
+        public Property convertProperty(Property p, 
+                                        PropertyList propertyList, FObj fo) 
+                    throws PropertyException {
+            if (p instanceof EnumProperty) {
+                return EnumNumber.getInstance(p);
+            }
+            Number val = p.getNumber();
+            if (val != null) {
+                int i = val.intValue();
+                if (i <= 0) {
+                    i = 1;
+                }
+                return getInstance(i);
+            }
+            return convertPropertyDatatype(p, propertyList, fo);
+        }
+
+    }
+    
     /** cache holding all canonical NumberProperty instances */
     private static final PropertyCache cache = new PropertyCache();
     



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to