From 64bc45d38e2bdd497439e22a57db762ff3109123 Mon Sep 17 00:00:00 2001 From: Keiron Liddle Date: Tue, 5 Jun 2001 12:51:53 +0000 Subject: [PATCH] some cleanup and more consistent output git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@194270 13f79535-47bb-0310-9956-ffa450edef68 --- .../apache/fop/render/xml/XMLRenderer.java | 387 ++++++++---------- 1 file changed, 170 insertions(+), 217 deletions(-) diff --git a/src/org/apache/fop/render/xml/XMLRenderer.java b/src/org/apache/fop/render/xml/XMLRenderer.java index 9a06c2d2e..9f47e8787 100644 --- a/src/org/apache/fop/render/xml/XMLRenderer.java +++ b/src/org/apache/fop/render/xml/XMLRenderer.java @@ -1,53 +1,9 @@ -/*-- $Id$ -- - - ============================================================================ - The Apache Software License, Version 1.1 - ============================================================================ - - Copyright (C) 1999 The Apache Software Foundation. All rights reserved. - - Redistribution and use in source and binary forms, with or without modifica- - tion, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - - 3. The end-user documentation included with the redistribution, if any, must - include the following acknowledgment: "This product includes software - developed by the Apache Software Foundation (http://www.apache.org/)." - Alternately, this acknowledgment may appear in the software itself, if - and wherever such third-party acknowledgments normally appear. - - 4. The names "Fop" and "Apache Software Foundation" must not be used to - endorse or promote products derived from this software without prior - written permission. For written permission, please contact - apache@apache.org. - - 5. Products derived from this software may not be called "Apache", nor may - "Apache" appear in their name, without prior written permission of the - Apache Software Foundation. - - THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND - FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU- - DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - This software consists of voluntary contributions made by many individuals - on behalf of the Apache Software Foundation and was originally created by - James Tauber . For more information on the Apache - Software Foundation, please see . - +/* $Id$ + * Copyright (C) 2001 The Apache Software Foundation. All rights reserved. + * For details on use and redistribution please refer to the + * LICENSE file included with these sources." */ + package org.apache.fop.render.xml; // FOP @@ -71,7 +27,7 @@ import java.util.Hashtable; * Renderer that renders areas to XML for debugging purposes. */ public class XMLRenderer implements Renderer { - + /** indentation to use for pretty-printing the XML */ protected int indent = 0; @@ -81,24 +37,24 @@ public class XMLRenderer implements Renderer { /** the writer used to output the XML */ protected PrintWriter writer; - /** options */ - protected Hashtable options; - - public XMLRenderer() { - } - - /** set up renderer options */ - public void setOptions(Hashtable options) { - this.options = options; - } - + /** options */ + protected Hashtable options; + + public XMLRenderer() { + } + + /** set up renderer options */ + public void setOptions(Hashtable options) { + this.options = options; + } + /** * set the document's producer * * @param producer string indicating application producing the XML */ public void setProducer(String producer) { - this.producer = producer; + this.producer = producer; } /** @@ -107,20 +63,20 @@ public class XMLRenderer implements Renderer { * @param areaTree the laid-out area tree * @param stream the OutputStream to give the XML to */ - public void render(AreaTree areaTree, OutputStream stream) - throws IOException { - MessageHandler.logln("rendering areas to XML"); - this.writer = new PrintWriter(stream); - this.writer.write("\n\n"); - writeStartTag(""); - Enumeration e = areaTree.getPages().elements(); - while (e.hasMoreElements()) { - this.renderPage((Page) e.nextElement()); - } - writeEndTag(""); - this.writer.flush(); - MessageHandler.errorln("written out XML"); + public void render(AreaTree areaTree, + OutputStream stream) throws IOException { + MessageHandler.logln("rendering areas to XML"); + this.writer = new PrintWriter(stream); + this.writer.write( "\n\n"); + writeStartTag(""); + Enumeration e = areaTree.getPages().elements(); + while (e.hasMoreElements()) { + this.renderPage((Page) e.nextElement()); + } + writeEndTag(""); + this.writer.flush(); + MessageHandler.errorln("written out XML"); } /** @@ -128,10 +84,10 @@ public class XMLRenderer implements Renderer { */ protected void writeIndent() { StringBuffer s = new StringBuffer(); - for (int i= 0; i"); - Enumeration e = area.getChildren().elements(); - while (e.hasMoreElements()) { - Box b = (Box) e.nextElement(); - b.render(this); - } - writeEndTag(""); + writeStartTag(""); + Enumeration e = area.getChildren().elements(); + while (e.hasMoreElements()) { + Box b = (Box) e.nextElement(); + b.render(this); + } + writeEndTag(""); } /** @@ -207,30 +163,30 @@ public class XMLRenderer implements Renderer { * * @param area the body area container to render */ - public void renderBodyAreaContainer(BodyAreaContainer area) { - writeStartTag(""); - Enumeration e = area.getChildren().elements(); - while (e.hasMoreElements()) { - Box b = (Box) e.nextElement(); - b.render(this); - } - writeEndTag(""); - } + public void renderBodyAreaContainer(BodyAreaContainer area) { + writeStartTag(""); + Enumeration e = area.getChildren().elements(); + while (e.hasMoreElements()) { + Box b = (Box) e.nextElement(); + b.render(this); + } + writeEndTag(""); + } /** * render a span area to XML * * @param area the span area to render */ - public void renderSpanArea(SpanArea area) { - writeStartTag(""); - Enumeration e = area.getChildren().elements(); - while (e.hasMoreElements()) { - Box b = (Box) e.nextElement(); - b.render(this); - } - writeEndTag(""); - } + public void renderSpanArea(SpanArea area) { + writeStartTag(""); + Enumeration e = area.getChildren().elements(); + while (e.hasMoreElements()) { + Box b = (Box) e.nextElement(); + b.render(this); + } + writeEndTag(""); + } /** * render a block area to XML @@ -238,16 +194,15 @@ public class XMLRenderer implements Renderer { * @param area the block area to render */ public void renderBlockArea(BlockArea area) { - writeStartTag(""); - Enumeration e = area.getChildren().elements(); - while (e.hasMoreElements()) { - Box b = (Box) e.nextElement(); - b.render(this); - } - writeEndTag(""); + writeStartTag(""); + Enumeration e = area.getChildren().elements(); + while (e.hasMoreElements()) { + Box b = (Box) e.nextElement(); + b.render(this); + } + writeEndTag(""); } /** @@ -256,14 +211,13 @@ public class XMLRenderer implements Renderer { * @param space the space to render */ public void renderDisplaySpace(DisplaySpace space) { - if (!isCoarseXml()) - writeEmptyElementTag(""); + if (!isCoarseXml()) + writeEmptyElementTag(""); } /** render a foreign object area */ - public void renderForeignObjectArea(ForeignObjectArea area) - { + public void renderForeignObjectArea(ForeignObjectArea area) { // if necessary need to scale and align the content area.getObject().render(this); } @@ -274,7 +228,7 @@ public class XMLRenderer implements Renderer { * @param area the area to render */ public void renderSVGArea(SVGArea area) { - writeEmptyElementTag(""); + writeEmptyElementTag(""); } /** @@ -283,7 +237,7 @@ public class XMLRenderer implements Renderer { * @param area the area to render */ public void renderImageArea(ImageArea area) { - writeEmptyElementTag(""); + writeEmptyElementTag(""); } /** @@ -292,28 +246,26 @@ public class XMLRenderer implements Renderer { * @param area the area to render */ public void renderWordArea(WordArea area) { - String fontWeight = area.getFontState().getFontWeight(); - StringBuffer sb = new StringBuffer(); - String s = area.getText(); - int l = s.length(); - for (int i=0; i < l; i++) { - char ch = s.charAt(i); - if (ch>127) - sb = sb.append("&#"+(int)ch+";"); - else - sb = sb.append(ch); - } - if (!isCoarseXml()) { - writeElement("" + sb.toString() - + ""); - } else { - this.writer.write(sb.toString()); - } + String fontWeight = area.getFontState().getFontWeight(); + StringBuffer sb = new StringBuffer(); + String s = area.getText(); + int l = s.length(); + for (int i = 0; i < l; i++) { + char ch = s.charAt(i); + if (ch > 127) + sb = sb.append("&#"+(int) ch + ";"); + else + sb = sb.append(ch); + } + if (!isCoarseXml()) { + writeElement("" + + sb.toString() + ""); + } else { + this.writer.write(sb.toString()); + } } /** @@ -322,11 +274,11 @@ public class XMLRenderer implements Renderer { * @param space the space to render */ public void renderInlineSpace(InlineSpace space) { - if (!isCoarseXml()) - writeEmptyElementTag(""); - else - this.writer.write(" "); + if (!isCoarseXml()) + writeEmptyElementTag(""); + else + this.writer.write(" "); } /** @@ -335,20 +287,19 @@ public class XMLRenderer implements Renderer { * @param area the area to render */ public void renderLineArea(LineArea area) { - if (!isCoarseXml()) { - String fontWeight = area.getFontState().getFontWeight(); - writeStartTag(""); - } - Enumeration e = area.getChildren().elements(); - while (e.hasMoreElements()) { - Box b = (Box)e.nextElement(); - b.render(this); - } - if (!isCoarseXml()) - writeEndTag(""); - else - this.writer.write("\n"); + if (!isCoarseXml()) { + String fontWeight = area.getFontState().getFontWeight(); + writeStartTag(""); + } + Enumeration e = area.getChildren().elements(); + while (e.hasMoreElements()) { + Box b = (Box) e.nextElement(); + b.render(this); + } + if (!isCoarseXml()) + writeEndTag(""); + else + this.writer.write("\n"); } /** @@ -357,54 +308,56 @@ public class XMLRenderer implements Renderer { * @param page the page to render */ public void renderPage(Page page) { - BodyAreaContainer body; - AreaContainer before, after; - writeStartTag(""); - body = page.getBody(); - before = page.getBefore(); - after = page.getAfter(); - if (before != null) { - renderAreaContainer(before); - } - renderBodyAreaContainer(body); - if (after != null) { - renderAreaContainer(after); - } - writeEndTag(""); + BodyAreaContainer body; + AreaContainer before, after; + writeStartTag(""); + body = page.getBody(); + before = page.getBefore(); + after = page.getAfter(); + if (before != null) { + renderAreaContainer(before); + } + renderBodyAreaContainer(body); + if (after != null) { + renderAreaContainer(after); + } + writeEndTag(""); } /** - * render a leader area to XML - * - * @param area the area to render - */ + * render a leader area to XML + * + * @param area the area to render + */ public void renderLeaderArea(LeaderArea area) { - if (isCoarseXml()) return; - String leaderPattern = ""; - switch (area.getLeaderPattern()) { - case LeaderPattern.SPACE: - leaderPattern = "space"; - break; - case LeaderPattern.RULE: - leaderPattern = "rule"; - break; - case LeaderPattern.DOTS: - leaderPattern = "dots"; - break; - case LeaderPattern.USECONTENT: - leaderPattern = "use-content"; - break; - } - - writeEmptyElementTag(""); + if (isCoarseXml()) + return; + String leaderPattern = ""; + switch (area.getLeaderPattern()) { + case LeaderPattern.SPACE: + leaderPattern = "space"; + break; + case LeaderPattern.RULE: + leaderPattern = "rule"; + break; + case LeaderPattern.DOTS: + leaderPattern = "dots"; + break; + case LeaderPattern.USECONTENT: + leaderPattern = "use-content"; + break; + } + + writeEmptyElementTag(""); + } + + private boolean isCoarseXml() { + return ((Boolean) options.get("fineDetail")).booleanValue(); } - - private boolean isCoarseXml() { - return ((Boolean)options.get("fineDetail")).booleanValue(); - } } -- 2.39.5