aboutsummaryrefslogtreecommitdiffstats
path: root/src/org/apache/fop/util
diff options
context:
space:
mode:
authorJeremias Maerki <jeremias@apache.org>2003-03-11 13:25:33 +0000
committerJeremias Maerki <jeremias@apache.org>2003-03-11 13:25:33 +0000
commit77930a96151d680333f3c11b8dcb5f7c9b6761e7 (patch)
tree2bd2afef42926ee98914666ef27ae08ef0c98edd /src/org/apache/fop/util
parentb7052c02f1a0da7b6d2c04a799e947e8f9227d81 (diff)
downloadxmlgraphics-fop-77930a96151d680333f3c11b8dcb5f7c9b6761e7.tar.gz
xmlgraphics-fop-77930a96151d680333f3c11b8dcb5f7c9b6761e7.zip
Moved sources from src/org/** to src/java/org/**
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@196064 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/org/apache/fop/util')
-rw-r--r--src/org/apache/fop/util/CharUtilities.java232
-rw-r--r--src/org/apache/fop/util/StreamUtilities.java243
2 files changed, 0 insertions, 475 deletions
diff --git a/src/org/apache/fop/util/CharUtilities.java b/src/org/apache/fop/util/CharUtilities.java
deleted file mode 100644
index d612b9e38..000000000
--- a/src/org/apache/fop/util/CharUtilities.java
+++ /dev/null
@@ -1,232 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 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/>.
- */
-package org.apache.fop.util;
-
-import org.apache.fop.layout.FontState;
-
-/**
- * This class provides utilities to distinguish various kinds of Unicode
- * whitespace and to get character widths in a given FontState.
- */
-public class CharUtilities {
-
- /** Character code used to signal a character boundary in
- * inline content, such as an inline with borders and padding
- * or a nested block object.
- */
- public static final char CODE_EOT = 0;
-
- /**
- * Character class: Unicode white space
- */
- public static final int UCWHITESPACE = 0;
- /**
- * Character class: Line feed
- */
- public static final int LINEFEED = 1;
- /**
- * Character class: Boundary between text runs
- */
- public static final int EOT = 2;
- /**
- * Character class: non-whitespace
- */
- public static final int NONWHITESPACE = 3;
- /**
- * Character class: XML whitespace
- */
- public static final int XMLWHITESPACE = 4;
-
-
- /**
- * Return the appropriate CharClass constant for the type
- * of the passed character.
- * @param c character to inspect
- * @return int the determined character class
- */
- public static int classOf(char c) {
- if (c == CODE_EOT) { return EOT; }
- if (c == '\n') { return LINEFEED; }
- if (c == ' ' || c == '\r' || c == '\t') { return XMLWHITESPACE; }
- if (isAnySpace(c)) { return UCWHITESPACE; }
- return NONWHITESPACE;
- }
-
- /**
- * Helper method for getting the width of a unicode char
- * from the current fontstate.
- * This also performs some guessing on widths on various
- * versions of space that might not exists in the font.
- * @param c character to inspect
- * @param fs FontState to use
- * @return int the width of the character
- */
- public static int getCharWidth(char c, FontState fs) {
- int width;
-
- if ((c == '\n') || (c == '\r') || (c == '\t') || (c == '\u00A0')) {
- width = getCharWidth(' ', fs);
- } else {
- width = fs.getWidth(fs.mapChar(c));
- if (width <= 0) {
- // Estimate the width of spaces not represented in
- // the font
- int em = fs.getWidth(fs.mapChar('m'));
- int en = fs.getWidth(fs.mapChar('n'));
- if (em <= 0) {
- em = 500 * fs.getFontSize();
- }
- if (en <= 0) {
- en = em - 10;
- }
-
- if (c == ' ') {
- width = em;
- }
- if (c == '\u2000') {
- width = en;
- }
- if (c == '\u2001') {
- width = em;
- }
- if (c == '\u2002') {
- width = em / 2;
- }
- if (c == '\u2003') {
- width = fs.getFontSize();
- }
- if (c == '\u2004') {
- width = em / 3;
- }
- if (c == '\u2005') {
- width = em / 4;
- }
- if (c == '\u2006') {
- width = em / 6;
- }
- if (c == '\u2007') {
- width = getCharWidth(' ', fs);
- }
- if (c == '\u2008') {
- width = getCharWidth('.', fs);
- }
- if (c == '\u2009') {
- width = em / 5;
- }
- if (c == '\u200A') {
- width = 5;
- }
- if (c == '\u200B') {
- width = 100;
- }
- if (c == '\u202F') {
- width = getCharWidth(' ', fs) / 2;
- }
- if (c == '\u3000') {
- width = getCharWidth(' ', fs) * 2;
- }
- }
- }
-
- return width;
- }
-
- /**
- * Helper method to determine if the character is a
- * space with normal behaviour. Normal behaviour means that
- * it's not non-breaking.
- * @param c character to inspect
- * @return boolean True if the character is a normal space
- */
- public static boolean isSpace(char c) {
- return (c == ' '
- || (c >= '\u2000' && c <= '\u200B'));
-// c == '\u2000' // en quad
-// c == '\u2001' // em quad
-// c == '\u2002' // en space
-// c == '\u2003' // em space
-// c == '\u2004' // three-per-em space
-// c == '\u2005' // four--per-em space
-// c == '\u2006' // six-per-em space
-// c == '\u2007' // figure space
-// c == '\u2008' // punctuation space
-// c == '\u2009' // thin space
-// c == '\u200A' // hair space
-// c == '\u200B' // zero width space
- }
-
- /**
- * Method to determine if the character is a nonbreaking
- * space.
- * @param c character to check
- * @return boolean True if the character is a nbsp
- */
- public static boolean isNBSP(char c) {
- if (c == '\u00A0' || c == '\u202F' // narrow no-break space
- || c == '\u3000' // ideographic space
- || c == '\uFEFF') { // zero width no-break space
- return true;
- } else {
- return false;
- }
- }
-
- /**
- * Determines if the character represents any kind of space.
- * @param c character to check
- * @return True if the character represents any kind of space
- */
- public static boolean isAnySpace(char c) {
- boolean ret = (isSpace(c) || isNBSP(c));
- return ret;
- }
-}
-
diff --git a/src/org/apache/fop/util/StreamUtilities.java b/src/org/apache/fop/util/StreamUtilities.java
deleted file mode 100644
index 7a594a526..000000000
--- a/src/org/apache/fop/util/StreamUtilities.java
+++ /dev/null
@@ -1,243 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 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/>.
- */
-package org.apache.fop.util;
-
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.EOFException;
-import java.io.DataInput;
-import java.io.DataOutput;
-import java.util.zip.CRC32;
-
-/**
- * General handy stream i/o methods.
- */
-public class StreamUtilities {
-
- /**
- * Size of buffers. Duh.
- */
- public static final int BUFFER_SIZE = 4096; // cuz I like big buffers...
-
- /**
- * Binary copies bytes from an input stream to an output stream.
- * The process is buffered, so you shouldn't need
- * BufferedInput/OutputStreams. Flushes when it's finished, but does
- * not close either stream. Returns the number of bytes copied.
- * @param source InputStream to read from
- * @param sink OutputStream to write to
- * @return long the total number of bytes copied
- * @throws IOException In case of an I/O problem
- */
- public static long streamCopy(InputStream source,
- OutputStream sink) throws IOException {
- // set table
- byte[] buffer = new byte[BUFFER_SIZE];
- long total = 0;
-
- // trough
- int scoop;
- while ((scoop = source.read(buffer)) >= 0) {
- if (scoop == 0) {
- System.out.println("zero scoop!");
- }
- sink.write(buffer, 0, scoop);
- total += scoop;
- }
-
- // do dishes
- sink.flush();
-
- return total;
- }
-
- /**
- * Method streamCopy.
- */
- /**
- * Binary copies up to the given number of bytes from an input
- * stream to an output stream. The process is buffered, so you
- * shouldn't need BufferedInput/OutputStreams.
- * Flushes when it's finished, but does not close either stream.
- * Throws an EOFExeption if there aren't enough bytes available to
- * transfer the requested amount.
- * @param source InputStream to read from
- * @param sink OutputStream to write to
- * @param howMany requested amount of bytes that are to be copied
- * @return long the total number of bytes copied
- * @throws IOException In case of an I/O problem
- */
- public static long streamCopy(InputStream source,
- OutputStream sink, int howMany) throws IOException {
- // set table
- byte[] buffer = new byte[BUFFER_SIZE];
- int left = howMany;
-
- // trough
- int scoop;
- while (left > 0) {
- scoop = source.read(buffer, 0, Math.min(BUFFER_SIZE, left));
- if (scoop < 0) {
- throw new EOFException(
- "Not enough bytes to feed you in "
- + "IOLib.streamCopy(source, sink, howMany); you asked for "
- + howMany + " and I only have " + (howMany - left));
- }
-
- sink.write(buffer, 0, scoop);
- left -= scoop;
- }
-
- // do dishes
- sink.flush();
-
- return howMany;
- }
-
- /**
- * Method streamCopyWithChecksum.
- */
- /**
- * Binary copies up to the given number of bytes from an input
- * stream to an output stream. The process is buffered, so you
- * shouldn't need BufferedInput/OutputStreams.
- * Flushes when it's finished, but does not close either stream.
- * Throws an EOFExeption if there aren't enough bytes available
- * to transfer the requested amount.
- * @param source InputStream to read from
- * @param sink OutputStream to write to
- * @param howMany requested amount of bytes that are to be copied
- * @return long the checksum of the bytes copied
- * @throws IOException In case of an I/O problem
- */
- public static long streamCopyWithChecksum(InputStream source,
- OutputStream sink, int howMany) throws IOException {
- // set table
- byte[] buffer = new byte[BUFFER_SIZE];
- int left = howMany;
- CRC32 checksummer = new CRC32();
-
- // trough
- int scoop;
- while (left > 0) {
- scoop = source.read(buffer, 0, Math.min(BUFFER_SIZE, left));
- if (scoop < 0) {
- throw new EOFException("Not enough bytes to feed you in "
- + "IOLib.streamCopy(source, sink, howMany)");
- }
-
- checksummer.update(buffer, 0, scoop);
- sink.write(buffer, 0, scoop);
- left -= scoop;
- }
-
- // do dishes
- sink.flush();
-
- return checksummer.getValue();
- }
-
- /**
- * Method dataCopy.
- */
- /**
- * Binary copies up to the given number of bytes from a DataInput
- * object to an DataOutput object. The process is buffered. Since
- * DataOutput doesn't support closing or flushing, it does neither.
- * @param source DataInput to read from
- * @param sink DataOutput to write to
- * @param howMany requested amount of bytes that are to be copied
- * @return long the total number of bytes copied
- * @throws IOException In case of an I/O problem
- */
- public static long dataCopy(DataInput source, DataOutput sink,
- int howMany) throws IOException {
- // set table
- byte[] buffer = new byte[BUFFER_SIZE];
- int left = howMany;
-
- // trough
- int scoop;
- while (left > 0) {
- scoop = Math.min(BUFFER_SIZE, left);
- source.readFully(buffer, 0, scoop);
- sink.write(buffer, 0, scoop);
- left -= scoop;
- }
-
- // do dishes
- return howMany;
- }
-
-
- /**
- * Loads the contents of the InputStream to a byte array. The InputStream
- * isn't closed.
- * @param in InputStream to read from
- * @param initialTargetBufferSize initial number of bytes to allocate
- * (expected size to avoid a lot of reallocations)
- * @return byte[] the array of bytes requested
- * @throws IOException In case of an I/O problem
- */
- public static byte[] toByteArray(InputStream in, int initialTargetBufferSize)
- throws IOException {
- ByteArrayOutputStream baout = new ByteArrayOutputStream(initialTargetBufferSize);
- try {
- streamCopy(in, baout);
- } finally {
- baout.close();
- }
- return baout.toByteArray();
- }
-
-}