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.6 Internals - Copyright © 2004,2007 The Apache Software Foundation. All Rights Reserved.