org.apache.derby.client.am
Class UpdateSensitiveClobLocatorReader
java.lang.Object
java.io.Reader
org.apache.derby.client.am.UpdateSensitiveClobLocatorReader
- All Implemented Interfaces:
- java.io.Closeable, java.lang.Readable
public class UpdateSensitiveClobLocatorReader
- extends java.io.Reader
Wraps a Buffered Clob locator reader and watches out
for updates on the Clob associated with it.
Before a read operation is performed on the Reader
this stream verifies that the underlying Clob has not
changed and if it has it recreates the specific streams.
| Fields inherited from class java.io.Reader |
lock |
|
Method Summary |
void |
close()
|
private void |
identifyAndReplaceObseleteStream()
Verifies whether the current updateCount matches
the updateCount of the Clob object and if it does
not it recreates the stream. |
int |
read()
|
int |
read(char[] c,
int off,
int len)
|
protected java.io.Reader |
reCreateStream()
Re-creates the underlying Locator stream
with the current position and the length
values if specified. |
| Methods inherited from class java.io.Reader |
mark, markSupported, read, read, ready, reset, skip |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
r
private java.io.BufferedReader r
con
private Connection con
clob
private Clob clob
updateCount
private long updateCount
currentPos
private long currentPos
length
private long length
UpdateSensitiveClobLocatorReader
protected UpdateSensitiveClobLocatorReader(Connection con,
Clob clob)
throws SqlException
- Initializes the Reader, updateCount, currentPos
and the connection to the appropriate values.
- Parameters:
con - connection to be used to read the
Clob value from the serverclob - the Clob object associated with
this stream.
- Throws:
SqlException
UpdateSensitiveClobLocatorReader
protected UpdateSensitiveClobLocatorReader(Connection con,
Clob clob,
long pos,
long len)
throws SqlException
- Initializes the Reader, updateCount, currentPos,
length and the connection to the appropriate values.
- Parameters:
con - connection to be used to read the
Clob value from the serverclob - the Clob object associated with
this reader.pos - the position from which the first read begins.len - the length in bytes of the partial value to be
retrieved.
- Throws:
SqlException
read
public int read()
throws java.io.IOException
- Overrides:
read in class java.io.Reader
- Throws:
java.io.IOException- See Also:
Reader.read()
read
public int read(char[] c,
int off,
int len)
throws java.io.IOException
- Specified by:
read in class java.io.Reader
- Throws:
java.io.IOException- See Also:
Reader.read(char[], int, int)
close
public void close()
throws java.io.IOException
- Specified by:
close in interface java.io.Closeable- Specified by:
close in class java.io.Reader
- Throws:
java.io.IOException- See Also:
Reader.close()
identifyAndReplaceObseleteStream
private void identifyAndReplaceObseleteStream()
throws java.io.IOException
- Verifies whether the current updateCount matches
the updateCount of the Clob object and if it does
not it recreates the stream.
- Throws:
java.io.IOException - If any exception occurs upon
Locator stream creation.
reCreateStream
protected java.io.Reader reCreateStream()
throws SqlException
- Re-creates the underlying Locator stream
with the current position and the length
values if specified.
- Throws:
SqlException
Apache Derby V10.10 Internals - Copyright © 2004,2013 The Apache Software Foundation. All Rights Reserved.