Package org.firebirdsql.jdbc.field

## Class FBField

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

Direct Known Subclasses:
  `FBLongVarCharField`, `FBWorkaroundStringField`

    public abstract class FBField
    extends java.lang.Object

Describe class `FBField` here.

Author:
  Roman Rokytskyy, Mark Rotteveel

### Field Summary

Fields
`protected FieldDescriptor` `fieldDescriptor`
`protected GDSHelper` `gdsHelper`
`protected int` `requiredType`
`protected int` `scale`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods
`void` `close()` Close this field.
`static FBField` `createField​(FieldDescriptor fieldDescriptor, FieldDataProvider dataProvider, GDSHelper gdsHelper, boolean cached)` This is a factory method that creates appropriate instance of the `FBField` class according to the SQL datatype.
`java.lang.String` `getAlias()` Returns the alias of the column as declared in XSQLVAR.
`java.sql.Array` `getArray()`
`java.math.BigDecimal` `getBigDecimal()`
`java.math.BigDecimal` `getBigDecimal​(int scale)`
`java.math.BigInteger` `getBigInteger()`
`java.io.InputStream` `getBinaryStream()`
`java.sql.Blob` `getBlob()`
`boolean` `getBoolean()`
`byte` `getByte()`
`byte[]` `getBytes()`
`java.io.Reader` `getCharacterStream()`
`java.sql.Clob` `getClob()`
`protected DatatypeCoder` `getDatatypeCoder()`
`java.sql.Date` `getDate()`
`java.sql.Date` `getDate​(java.util.Calendar cal)`
`Decimal<?>` `getDecimal()` Returns the value as a Decimal type.
`<D extends Decimal<D>> D` `getDecimal​(java.lang.Class<D> targetType)`
`double` `getDouble()`
`protected byte[]` `getFieldData()`
`float` `getFloat()`
`int` `getInt()`
`long` `getLong()`
`java.lang.String` `getName()` Returns the name of the column as declared in the XSQLVAR.
`java.lang.Object` `getObject()`
`<T> T` `getObject​(java.lang.Class<T> type)`
`java.lang.Object` `getObject​(java.util.Map<java.lang.String,​java.lang.Class<?>> map)`
`protected org.firebirdsql.jdbc.field.ObjectConverter` `getObjectConverter()`
`DatatypeCoder.RawDateTimeStruct` `getRawDateTimeStruct()`
`java.sql.Ref` `getRef()`
`java.lang.String` `getRelationName()` Returns the relation to which belongs column as declared in XSQLVAR.
`java.sql.RowId` `getRowId()`
`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)`
`protected boolean` `isInvertTimeZone()`
`boolean` `isNull()`
`static boolean` `isType​(FieldDescriptor field, int jdbcType)` Deprecated. This method will be removed in Jaybird 5, as a replacement use `JdbcTypeConverter.isJdbcType(FieldDescriptor, int)`
`void` `setBigDecimal​(java.math.BigDecimal value)`
`void` `setBigInteger​(java.math.BigInteger value)`
`void` `setBinaryStream​(java.io.InputStream in)`
`void` `setBinaryStream​(java.io.InputStream in, int length)`
`void` `setBinaryStream​(java.io.InputStream in, long length)`
`protected void` `setBinaryStreamInternal​(java.io.InputStream in, long length)`
`void` `setBlob​(FBBlob blob)`
`void` `setBoolean​(boolean value)`
`void` `setByte​(byte value)`
`void` `setBytes​(byte[] value)`
`void` `setCharacterStream​(java.io.Reader in)`
`void` `setCharacterStream​(java.io.Reader in, int length)`
`void` `setCharacterStream​(java.io.Reader in, long length)`
`protected void` `setCharacterStreamInternal​(java.io.Reader in, long length)`
`void` `setClob​(FBClob clob)`
`void` `setConnection​(GDSHelper gdsHelper)`
`void` `setDate​(java.sql.Date value)`
`void` `setDate​(java.sql.Date value, java.util.Calendar cal)`
`void` `setDecimal​(Decimal<?> decimal)` Sets the value as a Decimal type.
`void` `setDouble​(double value)`
`protected void` `setFieldData​(byte[] data)`
`void` `setFloat​(float value)`
`void` `setInteger​(int value)`
`void` `setLong​(long value)`
`void` `setNull()`
`void` `setObject​(java.lang.Object value)`
`void` `setRawDateTimeStruct​(DatatypeCoder.RawDateTimeStruct raw)`
`void` `setRequiredType​(int requiredType)` Set the required type for `getObject()` conversion.
`void` `setRowId​(java.sql.RowId rowId)`
`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)`

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

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

### Field Detail

#### fieldDescriptor

    protected final FieldDescriptor fieldDescriptor

#### gdsHelper

    protected GDSHelper gdsHelper

#### requiredType

    protected int requiredType

#### scale

    protected int scale

### Method Detail

#### getFieldData

    protected final byte[] getFieldData()

#### setFieldData

    protected final void setFieldData​(byte[] data)

#### getObjectConverter

    protected final org.firebirdsql.jdbc.field.ObjectConverter getObjectConverter()

#### getDatatypeCoder

    protected final DatatypeCoder getDatatypeCoder()

#### isNull

    public final boolean isNull()
                         throws java.sql.SQLException

Returns:
  `true` if the corresponding field is `null`, otherwise `false`
Throws:
  `java.sql.SQLException`

#### setNull

    public void setNull()

#### setConnection

    public void setConnection​(GDSHelper gdsHelper)

#### setRequiredType

    public void setRequiredType​(int requiredType)

Set the required type for `getObject()` conversion.

Parameters:
  `requiredType` - required type, one of the `Types` constants.

#### isType

    @Deprecated
    public static boolean isType​(FieldDescriptor field,
                                 int jdbcType)

Deprecated.
This method will be removed in Jaybird 5, as a replacement use `JdbcTypeConverter.isJdbcType(FieldDescriptor, int)`

Returns:
  `true` if the field is of type `type`.

#### createField

    public static FBField createField​(FieldDescriptor fieldDescriptor,
                                      FieldDataProvider dataProvider,
                                      GDSHelper gdsHelper,
                                      boolean cached)
                               throws java.sql.SQLException

This is a factory method that creates appropriate instance of the `FBField` class according to the SQL datatype. This instance knows how to perform all necessary type conversions.

Throws:
  `java.sql.SQLException`

#### getName

    public java.lang.String getName()

Returns the name of the column as declared in the XSQLVAR.

#### getAlias

    public java.lang.String getAlias()

Returns the alias of the column as declared in XSQLVAR.

#### getRelationName

    public java.lang.String getRelationName()

Returns the relation to which belongs column as declared in XSQLVAR.

#### close

    public void close()
               throws java.sql.SQLException

Close this field. This method tells field implementation to release all resources allocated when field methods were called.

Throws:
  `java.sql.SQLException` - if field cannot be closed.

#### getByte

    public byte getByte()
                 throws java.sql.SQLException

Throws:
  `java.sql.SQLException`

#### getShort

    public short getShort()
                   throws java.sql.SQLException

Throws:
  `java.sql.SQLException`

#### getInt

    public int getInt()
               throws java.sql.SQLException

Throws:
  `java.sql.SQLException`

#### getLong

    public long getLong()
                 throws java.sql.SQLException

Throws:
  `java.sql.SQLException`

#### getFloat

    public float getFloat()
                   throws java.sql.SQLException

Throws:
  `java.sql.SQLException`

#### getDouble

    public double getDouble()
                     throws java.sql.SQLException

Throws:
  `java.sql.SQLException`

#### getBigDecimal

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

Throws:
  `java.sql.SQLException`

#### getBigDecimal

    public java.math.BigDecimal getBigDecimal​(int scale)
                                       throws java.sql.SQLException

Throws:
  `java.sql.SQLException`

#### getBoolean

    public boolean getBoolean()
                       throws java.sql.SQLException

Throws:
  `java.sql.SQLException`

#### getString

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

Throws:
  `java.sql.SQLException`

#### getObject

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

Throws:
  `java.sql.SQLException`

#### getObject

    public java.lang.Object getObject​(java.util.Map<java.lang.String,​java.lang.Class<?>> map)
                               throws java.sql.SQLException

Throws:
  `java.sql.SQLException`

#### getObject

    public <T> T getObject​(java.lang.Class<T> type)
                    throws java.sql.SQLException

Throws:
  `java.sql.SQLException`

#### getBinaryStream

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

Throws:
  `java.sql.SQLException`

#### getCharacterStream

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

Throws:
  `java.sql.SQLException`

#### getBytes

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

Throws:
  `java.sql.SQLException`

#### getBlob

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

Throws:
  `java.sql.SQLException`

#### getDate

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

Throws:
  `java.sql.SQLException`

#### getDate

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

Throws:
  `java.sql.SQLException`

#### getTime

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

Throws:
  `java.sql.SQLException`

#### getTime

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

Throws:
  `java.sql.SQLException`

#### getTimestamp

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

Throws:
  `java.sql.SQLException`

#### getTimestamp

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

Throws:
  `java.sql.SQLException`

#### getRef

    public java.sql.Ref getRef()
                        throws java.sql.SQLException

Throws:
  `java.sql.SQLException`

#### getClob

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

Throws:
  `java.sql.SQLException`

#### getArray

    public java.sql.Array getArray()
                            throws java.sql.SQLException

Throws:
  `java.sql.SQLException`

#### getBigInteger

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

Throws:
  `java.sql.SQLException`

#### getRowId

    public java.sql.RowId getRowId()
                            throws java.sql.SQLException

Throws:
  `java.sql.SQLException`

#### setByte

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

Throws:
  `java.sql.SQLException`

#### setShort

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

Throws:
  `java.sql.SQLException`

#### setInteger

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

Throws:
  `java.sql.SQLException`

#### setLong

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

Throws:
  `java.sql.SQLException`

#### setFloat

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

Throws:
  `java.sql.SQLException`

#### setDouble

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

Throws:
  `java.sql.SQLException`

#### setBigDecimal

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

Throws:
  `java.sql.SQLException`

#### setBoolean

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

Throws:
  `java.sql.SQLException`

#### setString

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

Throws:
  `java.sql.SQLException`

#### setBigInteger

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

Throws:
  `java.sql.SQLException`

#### setObject

    public void setObject​(java.lang.Object value)
                   throws java.sql.SQLException

Throws:
  `java.sql.SQLException`

#### setBinaryStreamInternal

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

Throws:
  `java.sql.SQLException`

#### setBinaryStream

    public final void setBinaryStream​(java.io.InputStream in,
                                      long length)
                               throws java.sql.SQLException

Throws:
  `java.sql.SQLException`

#### setBinaryStream

    public final void setBinaryStream​(java.io.InputStream in)
                               throws java.sql.SQLException

Throws:
  `java.sql.SQLException`

#### setBinaryStream

    public final void setBinaryStream​(java.io.InputStream in,
                                      int length)
                               throws java.sql.SQLException

Throws:
  `java.sql.SQLException`

#### setCharacterStreamInternal

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

Throws:
  `java.sql.SQLException`

#### setCharacterStream

    public final void setCharacterStream​(java.io.Reader in,
                                         long length)
                                  throws java.sql.SQLException

Throws:
  `java.sql.SQLException`

#### setCharacterStream

    public final void setCharacterStream​(java.io.Reader in)
                                  throws java.sql.SQLException

Throws:
  `java.sql.SQLException`

#### setCharacterStream

    public final void setCharacterStream​(java.io.Reader in,
                                         int length)
                                  throws java.sql.SQLException

Throws:
  `java.sql.SQLException`

#### setBytes

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

Throws:
  `java.sql.SQLException`

#### setDate

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

Throws:
  `java.sql.SQLException`

#### setDate

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

Throws:
  `java.sql.SQLException`

#### setTime

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

Throws:
  `java.sql.SQLException`

#### setTime

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

Throws:
  `java.sql.SQLException`

#### setTimestamp

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

Throws:
  `java.sql.SQLException`

#### setTimestamp

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

Throws:
  `java.sql.SQLException`

#### setBlob

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

Throws:
  `java.sql.SQLException`

#### setClob

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

Throws:
  `java.sql.SQLException`

#### setRowId

    public void setRowId​(java.sql.RowId rowId)
                  throws java.sql.SQLException

Throws:
  `java.sql.SQLException`

#### getRawDateTimeStruct

    public DatatypeCoder.RawDateTimeStruct getRawDateTimeStruct()
                                                         throws java.sql.SQLException

Throws:
  `java.sql.SQLException`

#### setRawDateTimeStruct

    public void setRawDateTimeStruct​(DatatypeCoder.RawDateTimeStruct raw)
                              throws java.sql.SQLException

Throws:
  `java.sql.SQLException`

#### getDecimal

    public Decimal<?> getDecimal()
                          throws java.sql.SQLException

Returns the value as a Decimal type.

The default for this method is implemented in terms of `getBigDecimal()`, and returning a `Decimal128`. Implementations may return a `Decimal64` (or even `Decimal32`).

Returns:
  The value as decimal
Throws:
  `java.sql.SQLException` - For database access errors, or values that cannot be converted.

#### getDecimal

    public final <D extends Decimal<D>> D getDecimal​(java.lang.Class<D> targetType)
                                              throws java.sql.SQLException

Throws:
  `java.sql.SQLException`

#### setDecimal

    public void setDecimal​(Decimal<?> decimal)
                    throws java.sql.SQLException

Sets the value as a Decimal type.

The default for this method is implemented in terms of `setBigDecimal(BigDecimal)`.

Parameters:
  `decimal` - Value to set
Throws:
  `java.sql.SQLException`

#### isInvertTimeZone

    protected boolean isInvertTimeZone()