Class AbstractFieldMetaData

java.lang.Object
org.firebirdsql.jdbc.AbstractFieldMetaData
All Implemented Interfaces:
Wrapper
Direct Known Subclasses:
FBParameterMetaData, FBResultSetMetaData

@InternalApi public abstract class AbstractFieldMetaData extends Object implements Wrapper
Base class for FBResultSetMetaData and FBParameterMetaData for methods common to both implementations.

This class is internal API of Jaybird. Future versions may radically change, move, or make inaccessible this type.

Since:
3.0
Author:
David Jencks, Nickolay Samofatov, Mark Rotteveel
  • Constructor Details

  • Method Details

    • isWrapperFor

      public final boolean isWrapperFor(Class<?> iface) throws SQLException
      Specified by:
      isWrapperFor in interface Wrapper
      Throws:
      SQLException
    • unwrap

      public final <T> T unwrap(Class<T> iface) throws SQLException
      Specified by:
      unwrap in interface Wrapper
      Throws:
      SQLException
    • getRowDescriptor

      protected final RowDescriptor getRowDescriptor()
      Returns:
      The row descriptor.
    • getFieldCount

      protected final int getFieldCount()
      Retrieves the number of fields in the object for which this AbstractFieldMetaData object contains information.
      Returns:
      the number of fields
    • getFieldDescriptor

      protected final FieldDescriptor getFieldDescriptor(int fieldIndex)
      The FieldDescriptor of the field with index fieldIndex.
      Parameters:
      fieldIndex - 1-based index of a field in this metadata object
      Returns:
      field descriptor
    • isSignedInternal

      protected final boolean isSignedInternal(int field)
      Retrieves whether values for the designated field can be signed numbers.
      Parameters:
      field - the first field is 1, the second is 2, ...
      Returns:
      true if so; false otherwise
    • getScaleInternal

      protected final int getScaleInternal(int field)
      Retrieves the designated field's number of digits to right of the decimal point.

      0 is returned for data types where the scale is not applicable.

      Parameters:
      field - the first field is 1, the second is 2, ...
      Returns:
      scale
    • getFieldClassName

      protected final String getFieldClassName(int field) throws SQLException
      Throws:
      SQLException
    • getFieldTypeName

      protected final String getFieldTypeName(int field)
    • getFieldType

      protected final int getFieldType(int field)
    • getPrecisionInternal

      protected final int getPrecisionInternal(int field) throws SQLException
      Retrieves the designated parameter's specified column size.

      The returned value represents the maximum column size for the given parameter. For numeric data, this is the maximum precision. For character data, this is the length in characters. For datetime datatypes, this is the length in characters of the String representation (assuming the maximum allowed precision of the fractional seconds component). For binary data, this is the length in bytes. For the ROWID datatype, this is the length in bytes. 0 is returned for data types where the column size is not applicable.

      Parameters:
      field - the first field is 1, the second is 2, ...
      Returns:
      precision
      Throws:
      SQLException - if a database access error occurs
    • estimateFixedPrecision

      protected final int estimateFixedPrecision(int fieldIndex)
    • getExtFieldInfo

      protected final AbstractFieldMetaData.ExtendedFieldInfo getExtFieldInfo(int columnIndex) throws SQLException
      Throws:
      SQLException
    • getExtendedFieldInfo

      protected abstract Map<AbstractFieldMetaData.FieldKey,AbstractFieldMetaData.ExtendedFieldInfo> getExtendedFieldInfo(FBConnection connection) throws SQLException
      This method retrieves extended information from the system tables in a database. Since this method is expensive, use it with care.
      Returns:
      mapping between AbstractFieldMetaData.FieldKey instances and AbstractFieldMetaData.ExtendedFieldInfo instances, or an empty Map if the metadata implementation does not support extended info.
      Throws:
      SQLException - if a database error occurs while obtaining extended field information.