Class ClientClob

  • All Implemented Interfaces:
    java.sql.Clob, UnitOfWorkListener

    public class ClientClob
    extends Lob
    implements java.sql.Clob
    This class implements the JDBC java.sql.Clob interface.
    • Field Detail

      • string_

        protected java.lang.String string_
      • asciiStream_

        private java.io.InputStream asciiStream_
      • unicodeStream_

        private java.io.InputStream unicodeStream_
      • characterStream_

        private java.io.Reader characterStream_
      • utf8String_

        private byte[] utf8String_
    • Constructor Detail

      • ClientClob

        public ClientClob​(Agent agent,
                          java.lang.String string)
      • ClientClob

        public ClientClob​(Agent agent,
                          byte[] unconvertedBytes,
                          java.nio.charset.Charset charset,
                          int dataOffset)
                   throws SqlException
        Throws:
        SqlException
      • ClientClob

        public ClientClob​(Agent agent,
                          java.io.InputStream inputStream,
                          java.nio.charset.Charset encoding,
                          int length)
      • ClientClob

        ClientClob​(Agent agent,
                   java.io.InputStream inputStream,
                   java.nio.charset.Charset encoding)
            throws SqlException
        Create a ClientClob of unknown length with the specified encoding. This constructor was added to support the JDBC 4 length less overloads. Note that a ClientClob 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
      • ClientClob

        ClientClob​(Agent agent,
                   java.io.Reader reader,
                   int length)
      • ClientClob

        public ClientClob​(Agent agent,
                          int locator)
        Create a ClientClob 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.
      • ClientClob

        ClientClob​(Agent agent,
                   java.io.Reader reader)
        Create a ClientClob of unknown length. This constructor was added to support the JDBC 4 length less overloads. Note that a ClientClob 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
      • ClientClob

        private ClientClob​(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 ClientClob 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 ClientClob 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
      • getAsciiStream

        public java.io.InputStream getAsciiStream()
                                           throws java.sql.SQLException
        Specified by:
        getAsciiStream 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
      • 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
      • 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

        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()
      • reInitForNonLocator

        void reInitForNonLocator​(java.lang.String newString)
        Reinitialize the value of this CLOB. This is legacy code, only used when talking to servers that don't support locators.
        Parameters:
        newString - the new value
      • 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