diff options
author | arved <arved@unknown> | 2001-05-19 00:59:33 +0000 |
---|---|---|
committer | arved <arved@unknown> | 2001-05-19 00:59:33 +0000 |
commit | e43a4c07efb8ef4159379fb213b761ee61fad246 (patch) | |
tree | 7f96b73e66f0d69fc767d8cf2d5b853af4fee2a5 /src/org/apache/fop/fo/FOText.java | |
parent | c0459ac51d9f792eddadd1c44785722db686bf70 (diff) | |
download | xmlgraphics-fop-e43a4c07efb8ef4159379fb213b761ee61fad246.tar.gz xmlgraphics-fop-e43a4c07efb8ef4159379fb213b761ee61fad246.zip |
Seshadri G.K.: memory buffering
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@194257 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/org/apache/fop/fo/FOText.java')
-rw-r--r-- | src/org/apache/fop/fo/FOText.java | 73 |
1 files changed, 20 insertions, 53 deletions
diff --git a/src/org/apache/fop/fo/FOText.java b/src/org/apache/fop/fo/FOText.java index 32c2fbe56..ae4971c71 100644 --- a/src/org/apache/fop/fo/FOText.java +++ b/src/org/apache/fop/fo/FOText.java @@ -1,52 +1,7 @@ -/*-- $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 <jtauber@jtauber.com>. For more information on the Apache - Software Foundation, please see <http://www.apache.org/>. - +/* $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.fo; @@ -60,13 +15,14 @@ import org.apache.fop.layout.*; import org.apache.fop.datatypes.*; import org.apache.fop.fo.properties.*; import org.apache.fop.apps.FOPException; +import org.apache.fop.system.BufferManager; /** * a text node in the formatting object tree */ public class FOText extends FONode { - protected char[] ca; + // protected char[] ca; protected int start; protected int length; @@ -89,10 +45,18 @@ public class FOText extends FONode { public FOText(char[] chars, int s, int e, FObj parent) { super(parent); this.start = 0; - this.ca = new char[e - s]; + char ca[] = new char[e - s]; for (int i = s; i < e; i++) - this.ca[i - s] = chars[i]; + ca[i - s] = chars[i]; this.length = e - s; + this.bufferManager = parent.bufferManager; + if (this.bufferManager != null) { + bufferManager.writeBuffer((Object) this, ca); + } + else { + System.out.println("abnormal exit"); + System.exit(0); + } } public void setUnderlined(boolean ul) { @@ -110,11 +74,13 @@ public class FOText extends FONode { public boolean willCreateArea() { + char ca[] = this.bufferManager.readBuffer((Object) this); this.whiteSpaceCollapse = this.parent.properties.get( "white-space-collapse").getEnum(); if(this.whiteSpaceCollapse == WhiteSpaceCollapse.FALSE && length > 0) { return true; } + for (int i = start; i < start + length; i++) { char ch = ca[i]; if (!((ch == ' ') || (ch == '\n') || (ch == '\r') || @@ -126,6 +92,7 @@ public class FOText extends FONode { } public Status layout(Area area) throws FOPException { + char ca[] = this.bufferManager.readBuffer((Object) this); if (!(area instanceof BlockArea)) { MessageHandler.errorln("WARNING: text outside block area" + new String(ca, start, length)); @@ -152,7 +119,7 @@ public class FOText extends FONode { this.red = c.red(); this.green = c.green(); this.blue = c.blue(); - + this.verticalAlign = this.parent.properties.get("vertical-align").getEnum(); this.wrapOption = |