Package org.firebirdsql.jdbc.field

## Class FBCachedClob

- java.lang.Object
- - org.firebirdsql.jdbc.field.FBCachedClob

- All Implemented Interfaces:
    `java.sql.Clob`, `java.sql.NClob`

      public final class FBCachedClob
      extends java.lang.Object
      implements java.sql.Clob, java.sql.NClob

  Clob implementation that is cached client-side.

  This implementation is used for disconnected result sets (ie scrollable and hold cursors over commit).

  This class also implements `NClob` so it can be used with the `set/get/updateNClob` methods transparently. It technically does not conform to the JDBC requirements for `NClob`.

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `FBCachedClob​(FBCachedBlob blob, FBBlob.Config blobConfig)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `free()` |
    `java.io.InputStream` | `getAsciiStream()` |
    `java.io.Reader` | `getCharacterStream()` |
    `java.io.Reader` | `getCharacterStream​(long pos, long length)` |
    `java.lang.String` | `getSubString​(long pos, int length)` |
    `long` | `length()` |
    `long` | `position​(java.lang.String searchstr, long start)` |
    `long` | `position​(java.sql.Clob 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`

- - ### Constructor Detail

    - #### FBCachedClob

          public FBCachedClob​(FBCachedBlob blob,
                              FBBlob.Config blobConfig)

  - ### Method Detail

    - #### free

          public void free()
                    throws java.sql.SQLException

      Specified by:
        `free` 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`

    - #### getCharacterStream

          public java.io.Reader getCharacterStream()
                                            throws java.sql.SQLException

      Specified by:
        `getCharacterStream` in interface `java.sql.Clob`
      Throws:
        `java.sql.SQLException`

    - #### getCharacterStream

          public java.io.Reader getCharacterStream​(long pos,
                                                   long length)
                                            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`