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 ac...@apache.org on 2008/07/07 15:44:15 UTC

svn commit: r674487 - /xmlgraphics/fop/trunk/src/java/org/apache/fop/render/xml/XMLRenderer.java

Author: acumiskey
Date: Mon Jul  7 06:44:14 2008
New Revision: 674487

URL: http://svn.apache.org/viewvc?rev=674487&view=rev
Log:
Refactored this class, moving much of its behaviour to  the base AbstractXMLRenderer class.

Modified:
    xmlgraphics/fop/trunk/src/java/org/apache/fop/render/xml/XMLRenderer.java

Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/render/xml/XMLRenderer.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/xml/XMLRenderer.java?rev=674487&r1=674486&r2=674487&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/render/xml/XMLRenderer.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/render/xml/XMLRenderer.java Mon Jul  7 06:44:14 2008
@@ -35,11 +35,7 @@
 
 import org.w3c.dom.Document;
 
-import org.xml.sax.Attributes;
-import org.xml.sax.ContentHandler;
 import org.xml.sax.SAXException;
-import org.xml.sax.ext.LexicalHandler;
-import org.xml.sax.helpers.AttributesImpl;
 
 import org.apache.xmlgraphics.util.QName;
 import org.apache.xmlgraphics.util.XMLizable;
@@ -99,39 +95,17 @@
  * The output can be used to build a new area tree which can be 
  * rendered to any renderer.
  */
-public class XMLRenderer extends PrintRenderer {
+public class XMLRenderer extends AbstractXMLRenderer {
 
     /** XML MIME type */
     public static final String XML_MIME_TYPE = MimeConstants.MIME_FOP_AREA_TREE;
 
-    /** Main namespace in use. */
-    public static final String NS = "";
-
-    /** CDATA type */
-    public static final String CDATA = "CDATA";
-
-    /** An empty Attributes object used when no attributes are needed. */
-    public static final Attributes EMPTY_ATTS = new AttributesImpl();
-
     private boolean startedSequence = false;
-    private RendererContext context;
     private boolean compactFormat = false;
 
     /** If not null, the XMLRenderer will mimic another renderer by using its font setup. */
     protected Renderer mimic;
 
-    /** ContentHandler that the generated XML is written to */
-    protected ContentHandler handler;
-
-    /** AttributesImpl instance that can be used during XML generation. */
-    protected AttributesImpl atts = new AttributesImpl();
-
-    /** The OutputStream to write the generated XML to. */
-    protected OutputStream out;
-
-    /** A list of ExtensionAttachements received through processOffDocumentItem() */
-    protected List extensionAttachments;
-
     /**
      * Creates a new XML renderer.
      */
@@ -171,15 +145,6 @@
         }
     }
 
-    /**
-     * Sets an outside TransformerHandler to use instead of the default one
-     * create in this class in startRenderer().
-     * @param handler Overriding TransformerHandler
-     */
-    public void setContentHandler(ContentHandler handler) {
-        this.handler = handler;
-    }
-
     public void setCompactFormat(boolean compact) {
         this.compactFormat = compact;
     }
@@ -189,111 +154,6 @@
     }
 
     /**
-     * Handles SAXExceptions.
-     * @param saxe the SAXException to handle
-     */
-    protected void handleSAXException(SAXException saxe) {
-        throw new RuntimeException(saxe.getMessage());
-    }
-
-    /**
-     * Writes a comment to the generated XML.
-     * @param comment the comment
-     */
-    protected void comment(String comment) {
-        if (handler instanceof LexicalHandler) { 
-            try {
-                ((LexicalHandler) handler).comment(comment.toCharArray(), 0, comment.length());
-            } catch (SAXException saxe) {
-                handleSAXException(saxe);
-            }
-        }
-    }
-    
-    /**
-     * Starts a new element (without attributes).
-     * @param tagName tag name of the element
-     */
-    protected void startElement(String tagName) {
-        startElement(tagName, EMPTY_ATTS);
-    }
-
-    /**
-     * Starts a new element.
-     * @param tagName tag name of the element
-     * @param atts attributes to add
-     */
-    protected void startElement(String tagName, Attributes atts) {
-        try {
-            handler.startElement(NS, tagName, tagName, atts);
-        } catch (SAXException saxe) {
-            handleSAXException(saxe);
-        }
-    }
-
-    /**
-     * Ends an element.
-     * @param tagName tag name of the element
-     */
-    protected void endElement(String tagName) {
-        try {
-            handler.endElement(NS, tagName, tagName);
-        } catch (SAXException saxe) {
-            handleSAXException(saxe);
-        }
-    }
-
-    /**
-     * Sends plain text to the XML
-     * @param text the text
-     */
-    protected void characters(String text) {
-        try {
-            char[] ca = text.toCharArray();
-            handler.characters(ca, 0, ca.length);
-        } catch (SAXException saxe) {
-            handleSAXException(saxe);
-        }
-    }
-
-    /**
-     * Adds a new attribute to the protected member variable "atts".
-     * @param name name of the attribute
-     * @param value value of the attribute
-     */
-    protected void addAttribute(String name, String value) {
-        atts.addAttribute(NS, name, name, CDATA, value);
-    }
-
-    /**
-     * Adds a new attribute to the protected member variable "atts".
-     * @param name name of the attribute
-     * @param value value of the attribute
-     */
-    protected void addAttribute(QName name, String value) {
-        atts.addAttribute(name.getNamespaceURI(), name.getLocalName(), name.getQName(), 
-                CDATA, value);
-    }
-
-    /**
-     * Adds a new attribute to the protected member variable "atts".
-     * @param name name of the attribute
-     * @param value value of the attribute
-     */
-    protected void addAttribute(String name, int value) {
-        addAttribute(name, Integer.toString(value));
-    }
-
-    /**
-     * Adds a new attribute to the protected member variable "atts".
-     * @param name name of the attribute
-     * @param rect a Rectangle2D to format and use as attribute value
-     */
-    protected void addAttribute(String name, Rectangle2D rect) {
-        addAttribute(name, createString(rect));
-    }
-
-    /**
      * Adds the general Area attributes.
      * @param area Area to extract attributes from
      */
@@ -406,18 +266,6 @@
         }
     }
 
-    private String createString(Rectangle2D rect) {
-        return "" + (int) rect.getX() + " " + (int) rect.getY() + " "
-                  + (int) rect.getWidth() + " " + (int) rect.getHeight();
-    }
-
-    private void handleDocumentExtensionAttachments() {
-        if (extensionAttachments != null && extensionAttachments.size() > 0) {
-            handleExtensionAttachments(extensionAttachments);
-            extensionAttachments.clear();
-        }
-    }
-
     /** {@inheritDoc} */
     public void processOffDocumentItem(OffDocumentItem oDI) {
         if (oDI instanceof BookmarkData) {
@@ -518,9 +366,7 @@
         startElement("areaTree");
     }
 
-    /**
-     * {@inheritDoc}
-     */
+    /** {@inheritDoc} */
     public void stopRenderer() throws IOException {
         endPageSequence();
         endElement("areaTree");
@@ -535,9 +381,7 @@
         log.debug("Written out Area Tree XML");
     }
 
-    /**
-     * {@inheritDoc}
-     */
+    /** {@inheritDoc} */
     public void renderPage(PageViewport page) throws IOException, FOPException {
         atts.clear();
         addAttribute("bounds", page.getViewArea());
@@ -561,7 +405,8 @@
         endElement("pageViewport");
     }
 
-    private void handleExtensionAttachments(List attachments) {
+    /** {@inheritDoc} */
+    protected void handleExtensionAttachments(List attachments) {
         if (attachments != null && attachments.size() > 0) {
             startElement("extension-attachments");
             Iterator i = attachments.iterator();
@@ -582,10 +427,6 @@
         }
     }
 
-    private void handlePageExtensionAttachments(PageViewport page) {
-        handleExtensionAttachments(page.getExtensionAttachments());
-    }
-
     /** {@inheritDoc} */
     public void startPageSequence(PageSequence pageSequence) {
         handleDocumentExtensionAttachments();



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