You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-commits@xmlgraphics.apache.org by je...@apache.org on 2008/07/28 17:05:16 UTC

svn commit: r680378 - in /xmlgraphics/fop/trunk/src/java/org/apache/fop: fo/ fo/pagination/bookmarks/ render/afp/extensions/ render/ps/extensions/

Author: jeremias
Date: Mon Jul 28 08:05:14 2008
New Revision: 680378

URL: http://svn.apache.org/viewvc?rev=680378&view=rev
Log:
Reverted revision 670341 and replaced it with a different solution as discussed:
addCharacters() is now deprecated and called by the new characters() method which uses start/length instead of start/end.
Fixed bugs in the AFP and PS extensions (ArrayIndexOutOfBoundsExceptions). They were not properly changed when the interface changed.
Discussion: http://markmail.org/message/pdgzf6odxrnhflby

Modified:
    xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/FONode.java
    xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/FOText.java
    xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/FOTreeBuilder.java
    xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/FObjMixed.java
    xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/UnknownXMLObj.java
    xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/XMLObj.java
    xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/pagination/bookmarks/BookmarkTitle.java
    xmlgraphics/fop/trunk/src/java/org/apache/fop/render/afp/extensions/AbstractAFPExtensionObject.java
    xmlgraphics/fop/trunk/src/java/org/apache/fop/render/ps/extensions/AbstractPSExtensionElement.java
    xmlgraphics/fop/trunk/src/java/org/apache/fop/render/ps/extensions/AbstractPSExtensionObject.java

Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/FONode.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/FONode.java?rev=680378&r1=680377&r2=680378&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/FONode.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/FONode.java Mon Jul 28 08:05:14 2008
@@ -274,18 +274,37 @@
      *
      * @param data array of characters containing text to be added
      * @param start starting array element to add
-     * @param length number of elements to add
+     * @param end ending array element to add
      * @param pList currently applicable PropertyList
      * @param locator location in the XSL-FO source file.
      * @throws FOPException if there's a problem during processing
+     * @deprecated Please override {@code #characters(char[], int, int, PropertyList, Locator)}
+     *          instead!
      */
-    protected void addCharacters(char[] data, int start, int length,
+    protected void addCharacters(char[] data, int start, int end,
                                  PropertyList pList,
                                  Locator locator) throws FOPException {
         // ignore
     }
 
     /**
+     * Adds characters. Does nothing by default. To be overridden in subclasses
+     * that allow <code>#PCDATA</code> content.
+     *
+     * @param data array of characters containing text to be added
+     * @param start starting array element to add
+     * @param length number of elements to add
+     * @param pList currently applicable PropertyList
+     * @param locator location in the XSL-FO source file.
+     * @throws FOPException if there's a problem during processing
+     */
+    protected void characters(char[] data, int start, int length,
+                                 PropertyList pList,
+                                 Locator locator) throws FOPException {
+        addCharacters(data, start, start + length, pList, locator);
+    }
+
+    /**
      * Called after processNode() is called. Subclasses can do additional processing.
      *
      * @throws FOPException if there's a problem during processing

Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/FOText.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/FOText.java?rev=680378&r1=680377&r2=680378&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/FOText.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/FOText.java Mon Jul 28 08:05:14 2008
@@ -93,7 +93,7 @@
     }
 
     /** {@inheritDoc} */
-    protected void addCharacters(char[] data, int start, int length,
+    protected void characters(char[] data, int start, int length,
             PropertyList list, Locator locator) throws FOPException {
 
         if (this.charBuffer == null) {

Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/FOTreeBuilder.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/FOTreeBuilder.java?rev=680378&r1=680377&r2=680378&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/FOTreeBuilder.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/FOTreeBuilder.java Mon Jul 28 08:05:14 2008
@@ -371,7 +371,7 @@
         public void characters(char[] data, int start, int length)
             throws FOPException {
             if (currentFObj != null) {
-                currentFObj.addCharacters(data, start, length,
+                currentFObj.characters(data, start, length,
                         currentPropertyList, getEffectiveLocator());
             }
         }

Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/FObjMixed.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/FObjMixed.java?rev=680378&r1=680377&r2=680378&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/FObjMixed.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/FObjMixed.java Mon Jul 28 08:05:14 2008
@@ -50,7 +50,7 @@
     }
 
     /** {@inheritDoc} */
-    protected void addCharacters(char[] data, int start, int length,
+    protected void characters(char[] data, int start, int length,
                                  PropertyList pList,
                                  Locator locator) throws FOPException {
         if (ft == null) {
@@ -60,7 +60,7 @@
                 ft.bind(pList);
             }
         }
-        ft.addCharacters(data, start, length, null, null);
+        ft.characters(data, start, length, null, null);
     }
 
     /** {@inheritDoc} */

Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/UnknownXMLObj.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/UnknownXMLObj.java?rev=680378&r1=680377&r2=680378&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/UnknownXMLObj.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/UnknownXMLObj.java Mon Jul 28 08:05:14 2008
@@ -21,6 +21,8 @@
 
 import org.xml.sax.Locator;
 
+import org.apache.fop.apps.FOPException;
+
 /**
  * Class for handling generic XML from a namespace not recognized by FOP
  */
@@ -72,9 +74,7 @@
         return null; //We don't know that in this case.
     }
 
-    /**
-     * {@inheritDoc}
-     */
+    /** {@inheritDoc} */
     protected void addChildNode(FONode child) {
         if (doc == null) {
             createBasicDocument();
@@ -82,15 +82,13 @@
         super.addChildNode(child);
     }
 
-    /**
-     *  {@inheritDoc}
-     */
-    protected void addCharacters(char data[], int start, int length,
-                                 PropertyList pList, Locator locator) {
+    /** {@inheritDoc} */
+    protected void characters(char[] data, int start, int length,
+                                 PropertyList pList, Locator locator) throws FOPException {
         if (doc == null) {
             createBasicDocument();
         }
-        super.addCharacters(data, start, length, pList, locator);
+        super.characters(data, start, length, pList, locator);
     }
 
 }

Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/XMLObj.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/XMLObj.java?rev=680378&r1=680377&r2=680378&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/XMLObj.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/XMLObj.java Mon Jul 28 08:05:14 2008
@@ -25,14 +25,16 @@
 
 import javax.xml.parsers.DocumentBuilderFactory;
 
-import org.apache.fop.apps.FOPException;
-import org.apache.fop.datatypes.Length;
-import org.apache.fop.util.ContentHandlerFactory.ObjectBuiltListener;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
+
 import org.xml.sax.Attributes;
 import org.xml.sax.Locator;
 
+import org.apache.fop.apps.FOPException;
+import org.apache.fop.datatypes.Length;
+import org.apache.fop.util.ContentHandlerFactory.ObjectBuiltListener;
+
 /**
  * Abstract class modelling generic, non-XSL-FO XML objects. Such objects are
  * stored in a DOM.
@@ -203,17 +205,10 @@
         }
     }
 
-    /**
-     * Add parsed characters to this object
-     *
-     * @param data array of characters contaning the text to add
-     * @param start starting array element to add
-     * @param length number of characters from the array to add
-     * @param pList the currently applicable property list
-     * @param locator location in fo source file.
-     */
-    protected void addCharacters(char[] data, int start, int length,
-                                 PropertyList pList, Locator locator) {
+    /** {@inheritDoc} */
+    protected void characters(char[] data, int start, int length,
+                                 PropertyList pList, Locator locator) throws FOPException {
+        super.characters(data, start, length, pList, locator);
         String str = new String(data, start, length);
         org.w3c.dom.Text text = doc.createTextNode(str);
         element.appendChild(text);

Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/pagination/bookmarks/BookmarkTitle.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/pagination/bookmarks/BookmarkTitle.java?rev=680378&r1=680377&r2=680378&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/pagination/bookmarks/BookmarkTitle.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/pagination/bookmarks/BookmarkTitle.java Mon Jul 28 08:05:14 2008
@@ -21,8 +21,8 @@
 
 import org.xml.sax.Locator;
 
-import org.apache.fop.fo.FObj;
 import org.apache.fop.fo.FONode;
+import org.apache.fop.fo.FObj;
 import org.apache.fop.fo.PropertyList;
 import org.apache.fop.fo.ValidationException;
 
@@ -52,9 +52,10 @@
      * @param data the character data
      * @param start the start position in the data array
      * @param length the length of the character array
+     * @param pList currently applicable PropertyList
      * @param locator location in fo source file.
      */
-    protected void addCharacters(char[] data, int start, int length,
+    protected void characters(char[] data, int start, int length,
                                  PropertyList pList,
                                  Locator locator) {
         title += new String(data, start, length);

Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/render/afp/extensions/AbstractAFPExtensionObject.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/afp/extensions/AbstractAFPExtensionObject.java?rev=680378&r1=680377&r2=680378&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/render/afp/extensions/AbstractAFPExtensionObject.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/render/afp/extensions/AbstractAFPExtensionObject.java Mon Jul 28 08:05:14 2008
@@ -20,13 +20,14 @@
 package org.apache.fop.render.afp.extensions;
 
 // FOP
+import org.xml.sax.Attributes;
+import org.xml.sax.Locator;
+
 import org.apache.fop.apps.FOPException;
 import org.apache.fop.fo.FONode;
 import org.apache.fop.fo.PropertyList;
 import org.apache.fop.fo.ValidationException;
 import org.apache.fop.fo.extensions.ExtensionAttachment;
-import org.xml.sax.Attributes;
-import org.xml.sax.Locator;
 
 /**
  * Base class for the AFP-specific extension elements.
@@ -60,9 +61,9 @@
     }
 
     /** {@inheritDoc} */
-    protected void addCharacters(char[] data, int start, int end,
+    protected void characters(char[] data, int start, int length,
                                  PropertyList pList, Locator locator) {
-        setupCode.setContent(new String(data, start, end - start));
+        setupCode.setContent(new String(data, start, length));
     }
 
     /** {@inheritDoc} */

Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/render/ps/extensions/AbstractPSExtensionElement.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/ps/extensions/AbstractPSExtensionElement.java?rev=680378&r1=680377&r2=680378&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/render/ps/extensions/AbstractPSExtensionElement.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/render/ps/extensions/AbstractPSExtensionElement.java Mon Jul 28 08:05:14 2008
@@ -64,24 +64,16 @@
         }
     }
 
-    /**
-     * Adds characters (does nothing here)
-     * @param data array of characters containing text to be added
-     * @param start starting array element to add
-     * @param length of data array to add
-     * @param pList currently applicable PropertyList
-     * @param locator location in fo source file.
-     * @see org.apache.fop.fo.FONode#addCharacters(char[], int, int, PropertyList, Locator)
-     */
-    protected void addCharacters(char[] data, int start, int length,
+    /** {@inheritDoc} */
+    protected void characters(char[] data, int start, int length,
                                  PropertyList pList, Locator locator) {
         PSExtensionAttachment a = (PSExtensionAttachment)getExtensionAttachment();
         if (a.getContent() != null) {
             StringBuffer sb = new StringBuffer(a.getContent());
-            sb.append(data, start, length - start);
+            sb.append(data, start, length);
             a.setContent(sb.toString());
         } else {
-            a.setContent(new String(data, start, length - start));
+            a.setContent(new String(data, start, length));
         }
     }
 

Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/render/ps/extensions/AbstractPSExtensionObject.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/ps/extensions/AbstractPSExtensionObject.java?rev=680378&r1=680377&r2=680378&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/render/ps/extensions/AbstractPSExtensionObject.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/render/ps/extensions/AbstractPSExtensionObject.java Mon Jul 28 08:05:14 2008
@@ -54,14 +54,14 @@
     }
 
     /** {@inheritDoc} */
-    protected void addCharacters(char[] data, int start, int length,
+    protected void characters(char[] data, int start, int length,
                                  PropertyList pList, Locator locator) {
         if (setupCode.getContent() != null) {
             StringBuffer sb = new StringBuffer(setupCode.getContent());
             sb.append(data, start, length - start);
             setupCode.setContent(sb.toString());
         } else {
-            setupCode.setContent(new String(data, start, length - start));
+            setupCode.setContent(new String(data, start, length));
         }
     }
 



---------------------------------------------------------------------
To unsubscribe, e-mail: fop-commits-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: fop-commits-help@xmlgraphics.apache.org