Top Description Fields Constructors Methods
org.apache.derby.impl.jdbc

public Class LOBInputStream

extends InputStream
implements PositionedStream
Class Inheritance
All Implemented Interfaces
org.apache.derby.iapi.types.PositionedStream
Imports
java.io.EOFException, .IOException, .InputStream, org.apache.derby.shared.common.error.StandardException, .ExceptionUtil, org.apache.derby.shared.common.reference.MessageId, .SQLState, org.apache.derby.shared.common.i18n.MessageService, org.apache.derby.shared.common.sanity.SanityManager, org.apache.derby.iapi.types.PositionedStream

This input stream is built on top of LOBStreamControl.

All the read methods are routed to LOBStreamControl.

Field Summary

Modifier and TypeField and Description
private boolean
private final LOBStreamControl
private long
private long

Constructor Summary

AccessConstructor and Description
pack-priv
LOBInputStream(LOBStreamControl control, long position)

Method Summary

Modifier and TypeMethod and Description
public InputStream
asInputStream()

Implements org.apache.derby.iapi.types.PositionedStream.asInputStream.

Returns a reference to self as an InputStream.

public void
close()

Overrides java.io.InputStream.close.

Implements java.io.Closeable.close.

Closes this input stream and releases any system resources associated with the stream.

public long

Returns:

The current byte position.
getPosition
()

Implements org.apache.derby.iapi.types.PositionedStream.getPosition.

Returns the current byte position.

pack-priv boolean

Returns:

if stream is modified since created
isObsolete
()

Checks if underlying StreamControl has been updated.

pack-priv long

Returns:

size of stream.
length
()

Returns size of stream in bytes.

public int

Returns:

the total number of bytes read into the buffer, or -1 if there is no more data because the end of the stream has been reached.
read
(byte[]
the buffer into which the data is read.
b
,
int
the start offset in array b at which the data is written.
off
,
int
the maximum number of bytes to read.
len
)

Overrides java.io.InputStream.read.

Reads up to len bytes of data from the input stream into an array of bytes.

public int

Returns:

the next byte of data, or -1 if the end of the stream is reached.
read
()

Implements abstract java.io.InputStream.read.

Reads the next byte of data from the input stream.

pack-priv void
reInitialize()

Reinitializes the stream and sets the current pointer to zero.

public void
reposition(long
the requested position, starting at 0
requestedPos
)

Implements org.apache.derby.iapi.types.PositionedStream.reposition.

Repositions the stream to the requested byte position.

Inherited from java.io.InputStream:
availablemarkmarkSupportednullInputStreamreadreadAllBytesreadNBytesreadNBytesresetskipskipNBytestransferTo

Field Detail

closedback to summary
private boolean closed
controlback to summary
private final LOBStreamControl control
posback to summary
private long pos
updateCountback to summary
private long updateCount

Constructor Detail

LOBInputStreamback to summary
pack-priv LOBInputStream(LOBStreamControl control, long position)

Method Detail

asInputStreamback to summary
public InputStream asInputStream()

Implements org.apache.derby.iapi.types.PositionedStream.asInputStream.

Doc from org.apache.derby.iapi.types.PositionedStream.asInputStream.

Returns a reference to self as an InputStream.

This method is not allowed to return null.

Returns:InputStream

An InputStream reference to self.

closeback to summary
public void close() throws IOException

Overrides java.io.InputStream.close.

Implements java.io.Closeable.close.

Closes this input stream and releases any system resources associated with the stream.

The close method of InputStream does nothing.

Exceptions
IOException:
if an I/O error occurs.
getPositionback to summary
public long getPosition()

Implements org.apache.derby.iapi.types.PositionedStream.getPosition.

Returns the current byte position.

Returns:long

The current byte position.

isObsoleteback to summary
pack-priv boolean isObsolete()

Checks if underlying StreamControl has been updated.

Returns:boolean

if stream is modified since created

lengthback to summary
pack-priv long length() throws IOException

Returns size of stream in bytes.

Returns:long

size of stream.

readback to summary
public int read(byte[] b, int off, int len) throws IOException

Overrides java.io.InputStream.read.

Reads up to len bytes of data from the input stream into an array of bytes. An attempt is made to read as many as len bytes, but a smaller number may be read. The number of bytes actually read is returned as an integer.

This method blocks until input data is available, end of file is detected, or an exception is thrown.

If b is null, a NullPointerException is thrown.

If off is negative, or len is negative, or off+len is greater than the length of the array b, then an IndexOutOfBoundsException is thrown.

If len is zero, then no bytes are read and 0 is returned; otherwise, there is an attempt to read at least one byte. If no byte is available because the stream is at end of file, the value -1 is returned; otherwise, at least one byte is read and stored into b.

The first byte read is stored into element b[off], the next one into b[off+1], and so on. The number of bytes read is, at most, equal to len. Let k be the number of bytes actually read; these bytes will be stored in elements b[off] through b[off+k-1], leaving elements b[off+k] through b[off+len-1] unaffected.

In every case, elements b[0] through b[off] and elements b[off+len] through b[b.length-1] are unaffected.

If the first byte cannot be read for any reason other than end of file, then an IOException is thrown. In particular, an IOException is thrown if the input stream has been closed.

The read(b, off, len) method for class InputStream simply calls the method read() repeatedly. If the first such call results in an IOException, that exception is returned from the call to the read(b, off, len) method. If any subsequent call to read() results in a IOException, the exception is caught and treated as if it were end of file; the bytes read up to that point are stored into b and the number of bytes read before the exception occurred is returned. Subclasses are encouraged to provide a more efficient implementation of this method.

Parameters
b:byte[]

the buffer into which the data is read.

off:int

the start offset in array b at which the data is written.

len:int

the maximum number of bytes to read.

Returns:int

the total number of bytes read into the buffer, or -1 if there is no more data because the end of the stream has been reached.

Exceptions
IOException:
if an I/O error occurs.
NullPointerException:
if b is null.
See Also
java.io.InputStream#read()
readback to summary
public int read() throws IOException

Implements abstract java.io.InputStream.read.

Reads the next byte of data from the input stream. The value byte is returned as an int in the range 0 to 255. If no byte is available because the end of the stream has been reached, the value -1 is returned. This method blocks until input data is available, the end of the stream is detected, or an exception is thrown.

A subclass must provide an implementation of this method.

Returns:int

the next byte of data, or -1 if the end of the stream is reached.

Exceptions
IOException:
if an I/O error occurs.
reInitializeback to summary
pack-priv void reInitialize()

Reinitializes the stream and sets the current pointer to zero.

repositionback to summary
public void reposition(long requestedPos) throws IOException

Implements org.apache.derby.iapi.types.PositionedStream.reposition.

Repositions the stream to the requested byte position.

Parameters
requestedPos:long

the requested position, starting at 0

Exceptions
IOException:
if obtaining the stream length fails
EOFException:
if the requested position is larger than the length