1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
|
/*-------------------------------------------------------------------------
*
* Copyright (c) 2004-2008, PostgreSQL Global Development Group
* Copyright (c) 2004, Open Cloud Limited.
*
* IDENTIFICATION
* $PostgreSQL: pgjdbc/org/postgresql/util/StreamWrapper.java,v 1.6 2008/01/08 06:56:31 jurka Exp $
*
*-------------------------------------------------------------------------
*/
package org.postgresql.util;
import java.io.InputStream;
/**
* Wrapper around a length-limited InputStream.
*
* @author Oliver Jowett (oliver@opencloud.com)
*/
public class StreamWrapper {
public StreamWrapper(byte[] data, int offset, int length) {
this.stream = null;
this.rawData = data;
this.offset = offset;
this.length = length;
}
public StreamWrapper(InputStream stream, int length) {
this.stream = stream;
this.rawData = null;
this.offset = 0;
this.length = length;
}
public InputStream getStream() {
if (stream != null)
return stream;
return new java.io.ByteArrayInputStream(rawData, offset, length);
}
public int getLength() {
return length;
}
public int getOffset() {
return offset;
}
public byte[] getBytes() {
return rawData;
}
public String toString() {
return "<stream of " + length + " bytes>";
}
private final InputStream stream;
private final byte[] rawData;
private final int offset;
private final int length;
}
|