net.sourceforge.jtds.jdbc
Class ClobImpl

java.lang.Object
  extended bynet.sourceforge.jtds.jdbc.ClobImpl
All Implemented Interfaces:
java.sql.Clob

public class ClobImpl
extends java.lang.Object
implements java.sql.Clob

An in-memory or disk based representation of character data.

Implementation note:

  1. This implementation stores the CLOB data in a byte array managed by the BlobBuffer class. Each character is stored in 2 sequential bytes using UTF-16LE encoding.
  2. As a consequence of using UTF-16LE, Unicode 3.1 supplementary characters may require an additional 2 bytes of storage. This implementation assumes that character position parameters supplied to getSubstring, position and the set methods refer to 16 bit characters only. The presence of supplementary characters will cause the wrong characters to be accessed.
  3. For the same reasons although the position method will return the correct start position for any given pattern in the array, the returned value may be different to that expected if supplementary characters exist in the text preceding the pattern.

Version:
$Id: ClobImpl.java,v 1.36.2.3 2009-12-30 08:45:34 ickzon Exp $
Author:
Brian Heineman, Mike Hutchinson

Field Summary
private  BlobBuffer blobBuffer
          The underlying BlobBuffer.
private static java.lang.String EMPTY_CLOB
          0 length String as initial value for empty Clobs.
 
Constructor Summary
(package private) ClobImpl(ConnectionJDBC2 connection)
          Constructs a new empty Clob instance.
(package private) ClobImpl(ConnectionJDBC2 connection, java.lang.String str)
          Constructs a new initialized Clob instance.
 
Method Summary
 java.io.InputStream getAsciiStream()
           
(package private)  BlobBuffer getBlobBuffer()
          Obtain this object's backing BlobBuffer object.
 java.io.Reader getCharacterStream()
           
 java.lang.String getSubString(long pos, int length)
           
 long length()
           
 long position(java.sql.Clob searchStr, long start)
           
 long position(java.lang.String searchStr, long start)
           
 java.io.OutputStream setAsciiStream(long pos)
           
 java.io.Writer setCharacterStream(long pos)
           
 int setString(long pos, java.lang.String str)
           
 int setString(long pos, java.lang.String str, int offset, int len)
           
 void truncate(long len)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

EMPTY_CLOB

private static final java.lang.String EMPTY_CLOB
0 length String as initial value for empty Clobs.

See Also:
Constant Field Values

blobBuffer

private final BlobBuffer blobBuffer
The underlying BlobBuffer.

Constructor Detail

ClobImpl

ClobImpl(ConnectionJDBC2 connection)
Constructs a new empty Clob instance.

Parameters:
connection - a reference to the parent connection object

ClobImpl

ClobImpl(ConnectionJDBC2 connection,
         java.lang.String str)
Constructs a new initialized Clob instance.

Parameters:
connection - a reference to the parent connection object
str - the String object to encapsulate
Method Detail

getBlobBuffer

BlobBuffer getBlobBuffer()
Obtain this object's backing BlobBuffer object.

Returns:
the underlying BlobBuffer

getAsciiStream

public java.io.InputStream getAsciiStream()
                                   throws java.sql.SQLException
Specified by:
getAsciiStream in interface java.sql.Clob
Throws:
java.sql.SQLException

getCharacterStream

public java.io.Reader getCharacterStream()
                                  throws java.sql.SQLException
Specified by:
getCharacterStream in interface java.sql.Clob
Throws:
java.sql.SQLException

getSubString

public java.lang.String getSubString(long pos,
                                     int length)
                              throws java.sql.SQLException
Specified by:
getSubString in interface java.sql.Clob
Throws:
java.sql.SQLException

length

public long length()
            throws java.sql.SQLException
Specified by:
length in interface java.sql.Clob
Throws:
java.sql.SQLException

position

public long position(java.lang.String searchStr,
                     long start)
              throws java.sql.SQLException
Specified by:
position in interface java.sql.Clob
Throws:
java.sql.SQLException

position

public long position(java.sql.Clob searchStr,
                     long start)
              throws java.sql.SQLException
Specified by:
position in interface java.sql.Clob
Throws:
java.sql.SQLException

setAsciiStream

public java.io.OutputStream setAsciiStream(long pos)
                                    throws java.sql.SQLException
Specified by:
setAsciiStream in interface java.sql.Clob
Throws:
java.sql.SQLException

setCharacterStream

public java.io.Writer setCharacterStream(long pos)
                                  throws java.sql.SQLException
Specified by:
setCharacterStream in interface java.sql.Clob
Throws:
java.sql.SQLException

setString

public int setString(long pos,
                     java.lang.String str)
              throws java.sql.SQLException
Specified by:
setString in interface java.sql.Clob
Throws:
java.sql.SQLException

setString

public int setString(long pos,
                     java.lang.String str,
                     int offset,
                     int len)
              throws java.sql.SQLException
Specified by:
setString in interface java.sql.Clob
Throws:
java.sql.SQLException

truncate

public void truncate(long len)
              throws java.sql.SQLException
Specified by:
truncate in interface java.sql.Clob
Throws:
java.sql.SQLException


Generated on October 27 2012