cvs commit: xml-fop/src/org/apache/fop/util StreamUtilities.java

2002-12-02 Thread jeremias
jeremias2002/12/02 06:15:08

  Modified:src/org/apache/fop/util StreamUtilities.java
  Log:
  style and javadocs
  added new method toByteArray()
  
  Revision  ChangesPath
  1.2   +62 -10xml-fop/src/org/apache/fop/util/StreamUtilities.java
  
  Index: StreamUtilities.java
  ===
  RCS file: /home/cvs/xml-fop/src/org/apache/fop/util/StreamUtilities.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- StreamUtilities.java  27 May 2002 10:59:08 -  1.1
  +++ StreamUtilities.java  2 Dec 2002 14:15:08 -   1.2
  @@ -8,6 +8,7 @@
   
   import java.io.InputStream;
   import java.io.OutputStream;
  +import java.io.ByteArrayOutputStream;
   import java.io.IOException;
   import java.io.EOFException;
   import java.io.DataInput;
  @@ -29,6 +30,10 @@
* 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 {
  @@ -39,8 +44,9 @@
   // trough
   int scoop;
   while ((scoop = source.read(buffer)) = 0) {
  -if (scoop == 0)
  +if (scoop == 0) {
   System.out.println(zero scoop!);
  +}
   sink.write(buffer, 0, scoop);
   total += scoop;
   }
  @@ -52,13 +58,20 @@
   }
   
   /**
  + * 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.
  - * Returns the total number of bytes copied.
  + * @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 {
  @@ -70,10 +83,12 @@
   int scoop;
   while (left  0) {
   scoop = source.read(buffer, 0, Math.min(BUFFER_SIZE, left));
  -if (scoop  0)
  +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));
  +  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;
  @@ -86,13 +101,20 @@
   }
   
   /**
  + * 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.
  - * Returns the checksum of the bytes copied.
  + * @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 {
  @@ -105,8 +127,10 @@
   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));
  +if (scoop  0) {
  +throw new EOFException(Not enough bytes to feed you in 
  ++ IOLib.streamCopy(source, sink, howMany));
  +}
   
   

cvs commit: xml-fop/src/org/apache/fop/util StreamUtilities.java

2002-05-27 Thread keiron

keiron  02/05/27 03:59:08

  Modified:src/org/apache/fop/pdf ASCII85Filter.java
ASCIIHexFilter.java DCTFilter.java FlateFilter.java
PDFFilter.java PDFICCStream.java PDFStream.java
PDFT1Stream.java PDFTTFStream.java
   src/org/apache/fop/tools AreaTreeBuilder.java
  Added:   src/org/apache/fop/pdf InMemoryStreamCache.java
StreamCache.java TempFileStreamCache.java
   src/org/apache/fop/util StreamUtilities.java
  Log:
  changed pdf streams to use io streams so that they
  can be cached
  Submitted by: Paul Reavis [EMAIL PROTECTED]
  
  Revision  ChangesPath
  1.4   +15 -19xml-fop/src/org/apache/fop/pdf/ASCII85Filter.java
  
  Index: ASCII85Filter.java
  ===
  RCS file: /home/cvs/xml-fop/src/org/apache/fop/pdf/ASCII85Filter.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- ASCII85Filter.java30 Jul 2001 20:29:29 -  1.3
  +++ ASCII85Filter.java27 May 2002 10:59:07 -  1.4
  @@ -1,5 +1,5 @@
   /*
  - * $Id: ASCII85Filter.java,v 1.3 2001/07/30 20:29:29 tore Exp $
  + * $Id: ASCII85Filter.java,v 1.4 2002/05/27 10:59:07 keiron Exp $
* 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.
  @@ -9,6 +9,7 @@
   
   import java.io.ByteArrayOutputStream;
   import java.io.IOException;
  +import java.io.*;
   
   public class ASCII85Filter extends PDFFilter {
   private static final char ASCII85_ZERO = 'z';
  @@ -30,9 +31,7 @@
   return null;
   }
   
  -public byte[] encode(byte[] data) {
  -
  -ByteArrayOutputStream buffer = new ByteArrayOutputStream();
  +public void encode(InputStream in, OutputStream out, int length) throws 
IOException {
   
   int i;
   int total = 0;
  @@ -40,16 +39,16 @@
   
   // first encode the majority of the data
   // each 4 byte group becomes a 5 byte group
  -for (i = 0; i + 3  data.length; i += 4) {
  +for (i = 0; i + 3  length; i += 4) {
   
  -long val = ((data[i]  24)
  +long val = ((in.read()  24)
0xff00L)  // note: must have the L at the
  -+ ((data[i + 1]  16)  0xffL)// end, otherwise you get into
  -+ ((data[i + 2]  8)  0xff00L)// weird signed value problems
  -+ (data[i + 3]  0xffL);// cause we're using a full 32 bits
  ++ ((in.read()  16)  0xffL)// end, otherwise you get into
  ++ ((in.read()  8)  0xff00L)// weird signed value problems
  ++ (in.read()  0xffL);// cause we're using a full 32 bits
   byte[] conv = convertWord(val);
   
  -buffer.write(conv, 0, conv.length);
  +out.write(conv, 0, conv.length);
   
   }
   
  @@ -57,12 +56,12 @@
   // with n leftover bytes, we append 0 bytes to make a full group of 4
   // then convert like normal (except not applying the special zero rule)
   // and write out the first n+1 bytes from the result
  -if (i  data.length) {
  -int n = data.length - i;
  +if (i  length) {
  +int n = length - i;
   byte[] lastdata = new byte[4];
   for (int j = 0; j  4; j++) {
   if (j  n) {
  -lastdata[j] = data[i++];
  +lastdata[j] = (byte)in.read();
   } else {
   lastdata[j] = 0;
   }
  @@ -82,18 +81,15 @@
   }
   }
   // assert n+1 = 5
  -buffer.write(conv, 0, n + 1);
  +out.write(conv, 0, n + 1);
   // System.out.println(ASCII85 end of data was +n+ bytes long);
   
   }
   // finally write the two character end of data marker
  -buffer.write(ASCII85_EOD.getBytes(), 0,
  +out.write(ASCII85_EOD.getBytes(), 0,
ASCII85_EOD.getBytes().length);
   
   
  -byte[] result = buffer.toByteArray();
  -
  -
   // assert that we have the correct outgoing length
   /*
* int in = (data.length % 4);
  @@ -103,8 +99,8 @@
* System.out.println(inlength = +data.length+ inlength % 4 = 
+(data.length % 4)+ outlength = +(result.length-ASCII85_EOD.getBytes().length)+ 
outlength % 5 = +((result.length-ASCII85_EOD.getBytes().length) % 5));
* }
*/
  -return result;
   
  +out.close();
   }
   
   /**
  
  
  
  1.3   +10 -12xml-fop/src/org/apache/fop/pdf/ASCIIHexFilter.java
  
  Index: ASCIIHexFilter.java