org.apache.derby.client.am
Class Clob

java.lang.Object
  extended by org.apache.derby.client.am.Lob
      extended by org.apache.derby.client.am.Clob
All Implemented Interfaces:
java.sql.Clob, UnitOfWorkListener

public class Clob
extends Lob
implements java.sql.Clob


Field Summary
protected  java.io.InputStream asciiStream_
           
protected  java.io.Reader characterStream_
           
protected  java.lang.String encoding_
           
protected  java.lang.String string_
           
protected  java.io.InputStream unicodeStream_
           
protected  byte[] utf8String_
           
 
Fields inherited from class org.apache.derby.client.am.Lob
agent_, ASCII_STREAM, BINARY_STREAM, BINARY_STRING, CHARACTER_STREAM, dataType_, INVALID_LOCATOR, isValid_, LOB_OBJECT_LENGTH_UNKNOWN_YET, LOCATOR, locator_, STRING, UNICODE_STREAM
 
Constructor Summary
private Clob(Agent agent, boolean willBeLayerBStreamed)
           
  Clob(Agent agent, byte[] unconvertedBytes, java.lang.String charsetName, int dataOffset)
           
  Clob(Agent agent, java.io.InputStream inputStream, java.lang.String encoding)
          Create a Clob of unknown length with the specified encoding.
  Clob(Agent agent, java.io.InputStream inputStream, java.lang.String encoding, int length)
           
  Clob(Agent agent, int locator)
          Create a Clob object for a Clob value stored on the server and indentified by locator.
  Clob(Agent agent, java.io.Reader reader)
          Create a Clob of unknown length.
  Clob(Agent agent, java.io.Reader reader, int length)
           
  Clob(Agent agent, java.lang.String string)
           
 
Method Summary
 void convertFromAsciiToCharacterStream()
           
protected  Clob createClobWrapper(java.sql.Clob clob)
           
 void free()
          This method frees the Clob object and releases the resources the resources that it holds.
 java.io.InputStream getAsciiStream()
           
(package private)  java.io.InputStream getAsciiStreamX()
           
 java.io.Reader getCharacterStream()
           
 java.io.Reader getCharacterStream(long pos, long length)
          Returns a Reader object that contains a partial Clob value, starting with the character specified by pos, which is length characters in length.
(package private)  java.io.Reader getCharacterStreamX()
           
(package private)  long getLocatorLength()
          Get the length in bytes of the Clob value represented by this locator based Clob object.
 java.lang.String getString()
           
 java.lang.String getSubString(long pos, int length)
          Returns a copy of the specified substring in the CLOB value designated by this Clob object.
private  java.lang.String getSubStringX(long pos, int length)
           
 java.io.InputStream getUnicodeStream()
           
 int getUTF8Length()
           
 byte[] getUtf8String()
           
 boolean isAsciiStream()
           
 boolean isCharacterStream()
           
 boolean isString()
           
 boolean isUnicodeStream()
           
 long length()
           
protected  void materializeStream()
          Materialize the stream used for input to the database.
 long position(java.sql.Clob searchstr, long start)
           
 long position(java.lang.String searchstr, long start)
           
private  long positionX(java.sql.Clob searchstr, long start)
           
private  long positionX(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)
           
 int setStringX(long pos, java.lang.String str, int offset, int len)
           
 void truncate(long len)
           
 
Methods inherited from class org.apache.derby.client.am.Lob
checkForClosedConnection, checkForLocatorValidity, checkPosAndLength, checkValidity, completeLocalCommit, completeLocalCommit, completeLocalRollback, completeLocalRollback, finalize, getAgent, getLocator, getUpdateCount, incrementUpdateCount, isLayerBStreamingPossible, isLocator, listenToUnitOfWork, materializeStream, setSqlLength, sqlLength, willBeLayerBStreamed
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

string_

protected java.lang.String string_

asciiStream_

protected java.io.InputStream asciiStream_

unicodeStream_

protected java.io.InputStream unicodeStream_

characterStream_

protected java.io.Reader characterStream_

utf8String_

protected byte[] utf8String_

encoding_

protected java.lang.String encoding_
Constructor Detail

Clob

public Clob(Agent agent,
            java.lang.String string)

Clob

public Clob(Agent agent,
            byte[] unconvertedBytes,
            java.lang.String charsetName,
            int dataOffset)
     throws SqlException
Throws:
SqlException

Clob

public Clob(Agent agent,
            java.io.InputStream inputStream,
            java.lang.String encoding,
            int length)
     throws SqlException
Throws:
SqlException

Clob

public Clob(Agent agent,
            java.io.InputStream inputStream,
            java.lang.String encoding)
     throws SqlException
Create a Clob of unknown length with the specified encoding. This constructor was added to support the JDBC 4 length less overloads. Note that a Clob created with this constructor is made for input to the database only. Do not pass it out to the user!

Parameters:
agent -
inputStream - the data to insert
encoding - encoding to use for characters. Only "ISO-8859-1" is allowed.
Throws:
SqlException

Clob

public Clob(Agent agent,
            java.io.Reader reader,
            int length)

Clob

public Clob(Agent agent,
            int locator)
Create a Clob object for a Clob value stored on the server and indentified by locator.

Parameters:
agent - context for this Clob object (incl. connection).
locator - reference id to Clob value on server.

Clob

public Clob(Agent agent,
            java.io.Reader reader)
Create a Clob of unknown length. This constructor was added to support the JDBC 4 length less overloads. Note that a Clob created with this constructor is made for input to the database only. Do not pass it out to the user!

Parameters:
agent -
reader - the data to insert

Clob

private Clob(Agent agent,
             boolean willBeLayerBStreamed)
Method Detail

length

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

getSubString

public java.lang.String getSubString(long pos,
                                     int length)
                              throws java.sql.SQLException
Returns a copy of the specified substring in the CLOB value designated by this Clob object. The substring begins at position pos and has up to length consecutive characters. The starting position must be between 1 and the length of the CLOB plus 1. This allows for zero-length CLOB values, from which only zero-length substrings can be returned. If a larger length is requested than there are characters available, characters to the end of the CLOB are returned.

Specified by:
getSubString in interface java.sql.Clob
Parameters:
pos - the first character of the substring to be extracted. The first character is at position 1.
length - the number of consecutive characters to be copied
Returns:
a String that is the specified substring in the CLOB value designated by this Clob object
Throws:
java.sql.SQLException - if there is an error accessing the CLOB NOTE: If the starting position is the length of the CLOB plus 1, zero characters are returned regardless of the length requested.

getSubStringX

private java.lang.String getSubStringX(long pos,
                                       int length)
                                throws SqlException
Throws:
SqlException

getCharacterStream

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

getCharacterStreamX

java.io.Reader getCharacterStreamX()
                             throws SqlException
Throws:
SqlException

getAsciiStream

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

getAsciiStreamX

java.io.InputStream getAsciiStreamX()
                              throws SqlException
Throws:
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

positionX

private long positionX(java.lang.String searchstr,
                       long start)
                throws SqlException
Throws:
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

positionX

private long positionX(java.sql.Clob searchstr,
                       long start)
                throws SqlException
Throws:
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

setStringX

public int setStringX(long pos,
                      java.lang.String str,
                      int offset,
                      int len)
               throws SqlException
Throws:
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

truncate

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

free

public void free()
          throws java.sql.SQLException
This method frees the Clob object and releases the resources the resources that it holds. The object is invalid once the free method is called. If free is called multiple times, the subsequent calls to free are treated as a no-op.

Specified by:
free in interface java.sql.Clob
Throws:
java.sql.SQLException - if an error occurs releasing the Clob's resources

getCharacterStream

public java.io.Reader getCharacterStream(long pos,
                                         long length)
                                  throws java.sql.SQLException
Returns a Reader object that contains a partial Clob value, starting with the character specified by pos, which is length characters in length.

Specified by:
getCharacterStream in interface java.sql.Clob
Parameters:
pos - the offset to the first character of the partial value to be retrieved. The first character in the Clob is at position 1.
length - the length in characters of the partial value to be retrieved.
Returns:
Reader through which the partial Clob value can be read.
Throws:
java.sql.SQLException - if pos is less than 1 or if pos is greater than the number of characters in the Clob or if pos + length is greater than Clob.length() +1

isString

public boolean isString()

isAsciiStream

public boolean isAsciiStream()

isCharacterStream

public boolean isCharacterStream()

isUnicodeStream

public boolean isUnicodeStream()

getUnicodeStream

public java.io.InputStream getUnicodeStream()

getString

public java.lang.String getString()

getUtf8String

public byte[] getUtf8String()

getUTF8Length

public int getUTF8Length()
                  throws SqlException
Throws:
SqlException

createClobWrapper

protected Clob createClobWrapper(java.sql.Clob clob)
                          throws SqlException
Throws:
SqlException

convertFromAsciiToCharacterStream

public void convertFromAsciiToCharacterStream()
                                       throws SqlException
Throws:
SqlException

materializeStream

protected void materializeStream()
                          throws SqlException
Materialize the stream used for input to the database.

Specified by:
materializeStream in class Lob
Throws:
SqlException

getLocatorLength

long getLocatorLength()
                throws SqlException
Get the length in bytes of the Clob value represented by this locator based Clob object. A stored procedure call will be made to get it from the server.

Overrides:
getLocatorLength in class Lob
Returns:
length of Clob in bytes
Throws:
SqlException

Built on Thu 2010-12-23 20:49:13+0000, from revision ???

Apache Derby V10.6 Internals - Copyright © 2004,2007 The Apache Software Foundation. All Rights Reserved.