Package org.firebirdsql.jdbc.field

## Class FBLongVarCharField

- java.lang.Object
- - org.firebirdsql.jdbc.field.FBField
  - - org.firebirdsql.jdbc.field.FBLongVarCharField

- All Implemented Interfaces:
    `BlobListenableField`, `FBCloseableField`, `FBFlushableField`, `TrimmableField`

      public class FBLongVarCharField
      extends FBField
      implements FBCloseableField, FBFlushableField, BlobListenableField

  This is Blob-based implementation of `FBStringField`. It should be used for fields declared in database as `BLOB SUB_TYPE 1`. This implementation provides all conversion routines `FBStringField` has.
  Author:
    Roman Rokytskyy, Mark Rotteveel

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface org.firebirdsql.jdbc.field.FBFlushableField

      `FBFlushableField.CachedObject`

  - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected int` | `possibleCharLength` |

    - ### Fields inherited from class org.firebirdsql.jdbc.field.FBField

      `fieldDescriptor, gdsHelper, requiredType`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `close()` | Close this field.
    `void` | `flushCachedData()` | Flush cached data to the database server.
    `java.math.BigDecimal` | `getBigDecimal()` |
    `java.math.BigInteger` | `getBigInteger()` |
    `java.io.InputStream` | `getBinaryStream()` |
    `java.sql.Blob` | `getBlob()` |
    `boolean` | `getBoolean()` |
    `byte` | `getByte()` |
    `byte[]` | `getBytes()` |
    `byte[]` | `getCachedData()` | Get cached data.
    `FBFlushableField.CachedObject` | `getCachedObject()` |
    `java.sql.Clob` | `getClob()` |
    `java.sql.Date` | `getDate()` |
    `java.sql.Date` | `getDate​(java.util.Calendar cal)` |
    `double` | `getDouble()` |
    `float` | `getFloat()` |
    `int` | `getInt()` |
    `long` | `getLong()` |
    `java.lang.Object` | `getObject()` |
    `short` | `getShort()` |
    `java.lang.String` | `getString()` |
    `java.sql.Time` | `getTime()` |
    `java.sql.Time` | `getTime​(java.util.Calendar cal)` |
    `java.sql.Timestamp` | `getTimestamp()` |
    `java.sql.Timestamp` | `getTimestamp​(java.util.Calendar cal)` |
    `boolean` | `isTrimTrailing()` |
    `void` | `setBigDecimal​(java.math.BigDecimal value)` |
    `void` | `setBigInteger​(java.math.BigInteger value)` |
    `protected void` | `setBinaryStreamInternal​(java.io.InputStream in, long length)` |
    `void` | `setBlob​(java.sql.Blob blob)` |
    `void` | `setBlob​(FBBlob blob)` |
    `void` | `setBlobListener​(FBObjectListener.BlobListener blobListener)` | Sets the blob listener of the field.
    `void` | `setBoolean​(boolean value)` |
    `void` | `setByte​(byte value)` |
    `void` | `setBytes​(byte[] value)` |
    `void` | `setCachedObject​(FBFlushableField.CachedObject cachedObject)` |
    `protected void` | `setCharacterStreamInternal​(java.io.Reader in, long length)` |
    `void` | `setClob​(java.sql.Clob clob)` |
    `void` | `setClob​(FBClob clob)` |
    `void` | `setDate​(java.sql.Date value)` |
    `void` | `setDate​(java.sql.Date value, java.util.Calendar cal)` |
    `void` | `setDouble​(double value)` |
    `void` | `setFloat​(float value)` |
    `void` | `setInteger​(int value)` |
    `void` | `setLong​(long value)` |
    `void` | `setNull()` |
    `void` | `setShort​(short value)` |
    `void` | `setString​(java.lang.String value)` |
    `void` | `setTime​(java.sql.Time value)` |
    `void` | `setTime​(java.sql.Time value, java.util.Calendar cal)` |
    `void` | `setTimestamp​(java.sql.Timestamp value)` |
    `void` | `setTimestamp​(java.sql.Timestamp value, java.util.Calendar cal)` |
    `void` | `setTrimTrailing​(boolean trimTrailing)` | Enable or disable trimming of trailing spaces.

    - ### Methods inherited from class org.firebirdsql.jdbc.field.FBField

      `createField, getAlias, getArray, getBigDecimal, getCharacterStream, getDatatypeCoder, getDecimal, getDecimal, getFieldData, getName, getObject, getObject, getRawDateTimeStruct, getRef, getRelationName, getRowId, isInvertTimeZone, isNull, setBinaryStream, setBinaryStream, setBinaryStream, setCharacterStream, setCharacterStream, setCharacterStream, setConnection, setDecimal, setFieldData, setObject, setRawDateTimeStruct, setRequiredType, setRowId`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### possibleCharLength

          protected final int possibleCharLength

  - ### Method Detail

    - #### setBlobListener

          public void setBlobListener​(FBObjectListener.BlobListener blobListener)

      Description copied from interface: `BlobListenableField`
      Sets the blob listener of the field.
      Specified by:
        `setBlobListener` in interface `BlobListenableField`
      Parameters:
        `blobListener` - blob listener

    - #### close

          public void close()
                     throws java.sql.SQLException

      Description copied from interface: `FBCloseableField`
      Close this field. This method tells field implementation to release all resources allocated when field methods were called.
      Specified by:
        `close` in interface `FBCloseableField`
      Throws:
        `java.sql.SQLException` - if field cannot be closed.

    - #### getBlob

          public java.sql.Blob getBlob()
                                throws java.sql.SQLException

      Overrides:
        `getBlob` in class `FBField`
      Throws:
        `java.sql.SQLException`

    - #### getClob

          public java.sql.Clob getClob()
                                throws java.sql.SQLException

      Overrides:
        `getClob` in class `FBField`
      Throws:
        `java.sql.SQLException`

    - #### getBinaryStream

          public java.io.InputStream getBinaryStream()
                                              throws java.sql.SQLException

      Throws:
        `java.sql.SQLException`

    - #### getBytes

          public byte[] getBytes()
                          throws java.sql.SQLException

      Throws:
        `java.sql.SQLException`

    - #### getCachedData

          public byte[] getCachedData()
                               throws java.sql.SQLException

      Description copied from interface: `FBFlushableField`
      Get cached data.
      Specified by:
        `getCachedData` in interface `FBFlushableField`
      Returns:
        cached object of this field.
      Throws:
        `java.sql.SQLException` - if something went wrong.

    - #### getCachedObject

          public FBFlushableField.CachedObject getCachedObject()
                                                        throws java.sql.SQLException

      Specified by:
        `getCachedObject` in interface `FBFlushableField`
      Throws:
        `java.sql.SQLException`

    - #### setCachedObject

          public void setCachedObject​(FBFlushableField.CachedObject cachedObject)

      Specified by:
        `setCachedObject` in interface `FBFlushableField`

    - #### getString

          public java.lang.String getString()
                                     throws java.sql.SQLException

      Throws:
        `java.sql.SQLException`

    - #### setBlob

          public void setBlob​(FBBlob blob)
                       throws java.sql.SQLException

      Overrides:
        `setBlob` in class `FBField`
      Throws:
        `java.sql.SQLException`

    - #### setBlob

          public void setBlob​(java.sql.Blob blob)
                       throws java.sql.SQLException

      Overrides:
        `setBlob` in class `FBField`
      Throws:
        `java.sql.SQLException`

    - #### setClob

          public void setClob​(FBClob clob)
                       throws java.sql.SQLException

      Overrides:
        `setClob` in class `FBField`
      Throws:
        `java.sql.SQLException`

    - #### setClob

          public void setClob​(java.sql.Clob clob)
                       throws java.sql.SQLException

      Overrides:
        `setClob` in class `FBField`
      Throws:
        `java.sql.SQLException`

    - #### setCharacterStreamInternal

          protected void setCharacterStreamInternal​(java.io.Reader in,
                                                    long length)

    - #### setString

          public void setString​(java.lang.String value)
                         throws java.sql.SQLException

      Throws:
        `java.sql.SQLException`

    - #### setBytes

          public void setBytes​(byte[] value)
                        throws java.sql.SQLException

      Throws:
        `java.sql.SQLException`

    - #### setBinaryStreamInternal

          protected void setBinaryStreamInternal​(java.io.InputStream in,
                                                 long length)

    - #### flushCachedData

          public void flushCachedData()
                               throws java.sql.SQLException

      Description copied from interface: `FBFlushableField`
      Flush cached data to the database server.
      Specified by:
        `flushCachedData` in interface `FBFlushableField`
      Throws:
        `java.sql.SQLException` - if something went wrong.

    - #### setNull

          public void setNull()

      Overrides:
        `setNull` in class `FBField`

    - #### setTrimTrailing

          public final void setTrimTrailing​(boolean trimTrailing)

      Description copied from interface: `TrimmableField`
      Enable or disable trimming of trailing spaces.

      NOTE: The behaviour applies to `FBField.getString()` and code paths that work through `getString()` (this usually includes `FBField.getObject()`.

      Specified by:
        `setTrimTrailing` in interface `TrimmableField`
      Parameters:
        `trimTrailing` - `true` trim trailing spaces

    - #### isTrimTrailing

          public final boolean isTrimTrailing()

      Specified by:
        `isTrimTrailing` in interface `TrimmableField`
      Returns:
        `true` trim trailing enabled, `false` trim trailing disabled

    - #### getObject

          public java.lang.Object getObject()
                                     throws java.sql.SQLException

      Overrides:
        `getObject` in class `FBField`
      Throws:
        `java.sql.SQLException`

    - #### getByte

          public byte getByte()
                       throws java.sql.SQLException

      Overrides:
        `getByte` in class `FBField`
      Throws:
        `java.sql.SQLException`

    - #### getShort

          public short getShort()
                         throws java.sql.SQLException

      Overrides:
        `getShort` in class `FBField`
      Throws:
        `java.sql.SQLException`

    - #### getInt

          public int getInt()
                     throws java.sql.SQLException

      Overrides:
        `getInt` in class `FBField`
      Throws:
        `java.sql.SQLException`

    - #### getLong

          public long getLong()
                       throws java.sql.SQLException

      Overrides:
        `getLong` in class `FBField`
      Throws:
        `java.sql.SQLException`

    - #### getBigDecimal

          public java.math.BigDecimal getBigDecimal()
                                             throws java.sql.SQLException

      Overrides:
        `getBigDecimal` in class `FBField`
      Throws:
        `java.sql.SQLException`

    - #### getFloat

          public float getFloat()
                         throws java.sql.SQLException

      Overrides:
        `getFloat` in class `FBField`
      Throws:
        `java.sql.SQLException`

    - #### getDouble

          public double getDouble()
                           throws java.sql.SQLException

      Overrides:
        `getDouble` in class `FBField`
      Throws:
        `java.sql.SQLException`

    - #### getBoolean

          public boolean getBoolean()
                             throws java.sql.SQLException

      Overrides:
        `getBoolean` in class `FBField`
      Throws:
        `java.sql.SQLException`

    - #### getDate

          public java.sql.Date getDate​(java.util.Calendar cal)
                                throws java.sql.SQLException

      Overrides:
        `getDate` in class `FBField`
      Throws:
        `java.sql.SQLException`

    - #### getDate

          public java.sql.Date getDate()
                                throws java.sql.SQLException

      Overrides:
        `getDate` in class `FBField`
      Throws:
        `java.sql.SQLException`

    - #### getTime

          public java.sql.Time getTime​(java.util.Calendar cal)
                                throws java.sql.SQLException

      Overrides:
        `getTime` in class `FBField`
      Throws:
        `java.sql.SQLException`

    - #### getTime

          public java.sql.Time getTime()
                                throws java.sql.SQLException

      Overrides:
        `getTime` in class `FBField`
      Throws:
        `java.sql.SQLException`

    - #### getTimestamp

          public java.sql.Timestamp getTimestamp​(java.util.Calendar cal)
                                          throws java.sql.SQLException

      Overrides:
        `getTimestamp` in class `FBField`
      Throws:
        `java.sql.SQLException`

    - #### getTimestamp

          public java.sql.Timestamp getTimestamp()
                                          throws java.sql.SQLException

      Overrides:
        `getTimestamp` in class `FBField`
      Throws:
        `java.sql.SQLException`

    - #### getBigInteger

          public java.math.BigInteger getBigInteger()
                                             throws java.sql.SQLException

      Overrides:
        `getBigInteger` in class `FBField`
      Throws:
        `java.sql.SQLException`

    - #### setByte

          public void setByte​(byte value)
                       throws java.sql.SQLException

      Overrides:
        `setByte` in class `FBField`
      Throws:
        `java.sql.SQLException`

    - #### setShort

          public void setShort​(short value)
                        throws java.sql.SQLException

      Overrides:
        `setShort` in class `FBField`
      Throws:
        `java.sql.SQLException`

    - #### setInteger

          public void setInteger​(int value)
                          throws java.sql.SQLException

      Overrides:
        `setInteger` in class `FBField`
      Throws:
        `java.sql.SQLException`

    - #### setLong

          public void setLong​(long value)
                       throws java.sql.SQLException

      Overrides:
        `setLong` in class `FBField`
      Throws:
        `java.sql.SQLException`

    - #### setFloat

          public void setFloat​(float value)
                        throws java.sql.SQLException

      Overrides:
        `setFloat` in class `FBField`
      Throws:
        `java.sql.SQLException`

    - #### setDouble

          public void setDouble​(double value)
                         throws java.sql.SQLException

      Overrides:
        `setDouble` in class `FBField`
      Throws:
        `java.sql.SQLException`

    - #### setBigDecimal

          public void setBigDecimal​(java.math.BigDecimal value)
                             throws java.sql.SQLException

      Overrides:
        `setBigDecimal` in class `FBField`
      Throws:
        `java.sql.SQLException`

    - #### setBoolean

          public void setBoolean​(boolean value)
                          throws java.sql.SQLException

      Overrides:
        `setBoolean` in class `FBField`
      Throws:
        `java.sql.SQLException`

    - #### setDate

          public void setDate​(java.sql.Date value,
                              java.util.Calendar cal)
                       throws java.sql.SQLException

      Overrides:
        `setDate` in class `FBField`
      Throws:
        `java.sql.SQLException`

    - #### setDate

          public void setDate​(java.sql.Date value)
                       throws java.sql.SQLException

      Overrides:
        `setDate` in class `FBField`
      Throws:
        `java.sql.SQLException`

    - #### setTime

          public void setTime​(java.sql.Time value,
                              java.util.Calendar cal)
                       throws java.sql.SQLException

      Overrides:
        `setTime` in class `FBField`
      Throws:
        `java.sql.SQLException`

    - #### setTime

          public void setTime​(java.sql.Time value)
                       throws java.sql.SQLException

      Overrides:
        `setTime` in class `FBField`
      Throws:
        `java.sql.SQLException`

    - #### setTimestamp

          public void setTimestamp​(java.sql.Timestamp value,
                                   java.util.Calendar cal)
                            throws java.sql.SQLException

      Overrides:
        `setTimestamp` in class `FBField`
      Throws:
        `java.sql.SQLException`

    - #### setTimestamp

          public void setTimestamp​(java.sql.Timestamp value)
                            throws java.sql.SQLException

      Overrides:
        `setTimestamp` in class `FBField`
      Throws:
        `java.sql.SQLException`

    - #### setBigInteger

          public void setBigInteger​(java.math.BigInteger value)
                             throws java.sql.SQLException

      Overrides:
        `setBigInteger` in class `FBField`
      Throws:
        `java.sql.SQLException`