Package org.apache.derby.client.am
Class ClobLocatorReader
java.lang.Object
java.io.Reader
org.apache.derby.client.am.ClobLocatorReader
- All Implemented Interfaces:
Closeable
,AutoCloseable
,Readable
An
Reader
that will use an locator to fetch the
Clob value from the server.
This Reader
implementation is pretty basic. No
buffering of data is done. Hence, for efficiency #read(char[])
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 ClientClob
The Clob to be accessed.private final ClientConnection
Connection used to read Clob from server.private long
Current position in the underlying Clob.private boolean
Stores the information to whether this Reader has been closed or not.private final long
Position in Clob where to stop reading. -
Constructor Summary
ConstructorsConstructorDescriptionClobLocatorReader
(ClientConnection connection, ClientClob clob) Create anReader
for reading theClob
value represented by the given locator basedClob
object.ClobLocatorReader
(ClientConnection connection, ClientClob clob, long pos, long len) Create anReader
for reading theClob
value represented by the given locator basedClob
object. -
Method Summary
Modifier and TypeMethodDescriptionprivate void
Check to see if thisReader
is closed.void
close()
int
read()
int
read
(char[] c, int off, int len) private char[]
readCharacters
(int len) Read the nextlen
characters of theClob
value from the server.Methods inherited from class java.io.Reader
mark, markSupported, nullReader, read, read, ready, reset, skip, 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 -
maxPos
private final long maxPosPosition in Clob where to stop reading. maxPos starts counting from 1. -
isClosed
private boolean isClosedStores the information to whether this Reader has been closed or not. Is set to true if close() has been called. Is false otherwise.
-
-
Constructor Details
-
ClobLocatorReader
ClobLocatorReader(ClientConnection connection, ClientClob clob) throws SqlException Create anReader
for reading theClob
value represented by the given locator basedClob
object.- Parameters:
connection
- connection to be used to read theClob
value from the serverclob
-Clob
object that contains locator for theClob
value on the server.- Throws:
SqlException
-
ClobLocatorReader
ClobLocatorReader(ClientConnection connection, ClientClob clob, long pos, long len) throws SqlException Create anReader
for reading theClob
value represented by the given locator basedClob
object.- Parameters:
connection
- connection to be used to read theClob
value from the serverclob
-Clob
object that contains locator for theClob
value on the server.pos
- The offset to the first character of the partial value to be retrieved.len
- The length in characters of the partial value to be retrieved.- Throws:
SqlException
-
-
Method Details
-
read
- Overrides:
read
in classReader
- Throws:
IOException
- See Also:
-
read
- Specified by:
read
in classReader
- Throws:
IOException
- See Also:
-
close
- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Specified by:
close
in classReader
- Throws:
IOException
- See Also:
-
checkClosed
Check to see if thisReader
is closed. If it is closed throw anIOException
that states that the stream is closed.- Throws:
IOException
- if isClosed = true.
-
readCharacters
Read the nextlen
characters of theClob
value from the server.- Parameters:
len
- number of characters to read.- Returns:
char[]
containing the read characters.- Throws:
IOException
- Wrapped SqlException if reading from server fails.
-