Class ClobLocatorInputStream
java.lang.Object
java.io.InputStream
org.apache.derby.client.am.ClobLocatorInputStream
- All Implemented Interfaces:
Closeable, AutoCloseable
An
InputStream that will use an locator to fetch the
Clob value from the server.
Closing a ByteArrayInputStream has no effect. The methods in
this class can be called after the stream has been closed without
generating an IOException.
This InputStream implementation is pretty basic. No
buffering of data is done. Hence, for efficiency #read(byte[])
should be used instead of #read(). Marks are not supported, but it
should be pretty simple to extend the implementation to support
this. A more efficient skip implementation should also be
straight-forward.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final ClientClobThe Clob to be accessed.private final ClientConnectionConnection used to read Clob from server.private longCurrent position in the underlying Clob. -
Constructor Summary
ConstructorsConstructorDescriptionClobLocatorInputStream(ClientConnection connection, ClientClob clob) Create anInputStreamfor reading theClobvalue represented by the given locator basedClobobject.ClobLocatorInputStream(ClientConnection connection, ClientClob clob, long pos) Create anInputStreamfor reading theClobvalue represented by the given locator basedClobobject. -
Method Summary
Modifier and TypeMethodDescriptionprivate byte[]getBytesFromString(String str) Returns aBytearray from theStringpassed as Input.intread()intread(byte[] b, int off, int len) private byte[]readBytes(int len) Read the nextlenbytes of theClobvalue from the server.Methods inherited from class InputStream
available, close, mark, markSupported, nullInputStream, read, readAllBytes, readNBytes, readNBytes, reset, skip, skipNBytes, transferTo
-
Field Details
-
connection
Connection used to read Clob from server. -
clob
The Clob to be accessed. -
currentPos
private long currentPosCurrent position in the underlying Clob. Clobs are indexed from 1
-
-
Constructor Details
-
ClobLocatorInputStream
ClobLocatorInputStream(ClientConnection connection, ClientClob clob) throws SqlException Create anInputStreamfor reading theClobvalue represented by the given locator basedClobobject.- Parameters:
connection- connection to be used to read theClobvalue from the serverclob-Clobobject that contains locator for theClobvalue on the server.- Throws:
SqlException
-
ClobLocatorInputStream
ClobLocatorInputStream(ClientConnection connection, ClientClob clob, long pos) throws SqlException Create anInputStreamfor reading theClobvalue represented by the given locator basedClobobject.- Parameters:
connection- connection to be used to read theClobvalue from the serverclob-Clobobject that contains locator for theClobvalue on the server.pos- the position inside theClobfrom which the reading must begin.- Throws:
SqlException
-
-
Method Details
-
read
- Specified by:
readin classInputStream- Throws:
IOException- See Also:
-
read
- Overrides:
readin classInputStream- Throws:
IOException- See Also:
-
readBytes
Read the nextlenbytes of theClobvalue from the server.- Parameters:
len- number of bytes to read- Returns:
byte[]containing the read bytes- Throws:
IOException- Wrapped SqlException if reading from server fails.
-
getBytesFromString
Returns aBytearray from theStringpassed as Input.- Parameters:
str- the inputString.- Returns:
- The
Bytecorresponding to theStringthat was input.
-