org.firebirdsql.gds.ng.fields

## Class RowDescriptor

- java.lang.Object
- - org.firebirdsql.gds.ng.fields.RowDescriptor

- All Implemented Interfaces:
    java.lang.Iterable<FieldDescriptor>

      public final class RowDescriptor
      extends java.lang.Object
      implements java.lang.Iterable<FieldDescriptor>

  The class `RowDescriptor` is a java mapping of the XSQLDA server data structure used to describe the row metadata of one row for input or output.

  RowDescriptor is an immutable, values of a row are maintained separately in a `RowValue`.

  Author:
    Mark Rotteveel

- - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `RowValue` | `createDefaultFieldValues()` Creates a `RowValue` instance with default (`null`) values for each field.
    `RowValue` | `createDeletedRowMarker()` Creates a deleted row marker.
    `static RowDescriptor` | `createRowDescriptor(FieldDescriptor[] fieldDescriptors, DatatypeCoder datatypeCoder)` Creates an instance of `RowDescriptor` with the supplied `FieldDescriptor` instances.
    `static RowDescriptor` | `empty(DatatypeCoder datatypeCoder)` Returns an empty row descriptor with the specified datatype coder.
    `boolean` | `equals(java.lang.Object obj)`
    `int` | `getCount()`
    `DatatypeCoder` | `getDatatypeCoder()`
    `IEncodingFactory` | `getEncodingFactory()`
    `FieldDescriptor` | `getFieldDescriptor(int index)` Gets the `FieldDescriptor` at the specified (0-based) index.
    `java.util.List<FieldDescriptor>` | `getFieldDescriptors()`
    `int` | `hashCode()`
    `java.util.Iterator<FieldDescriptor>` | `iterator()`
    `java.lang.String` | `toString()`

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

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface java.lang.Iterable

      `forEach, spliterator`

- - ### Method Detail

    - #### getDatatypeCoder

          public DatatypeCoder getDatatypeCoder()

      Returns:
        The `DatatypeCoder`.

    - #### getEncodingFactory

          public IEncodingFactory getEncodingFactory()

      Returns:
        The `IEncodingFactory`.

    - #### getCount

          public int getCount()

      Returns:
        The number of fields.

    - #### getFieldDescriptor

          public FieldDescriptor getFieldDescriptor(int index)

      Gets the `FieldDescriptor` at the specified (0-based) index.
      Parameters:
        `index` - 0-based index of the field
      Returns:
        FieldDescriptor
      Throws:
        `java.lang.IndexOutOfBoundsException` - if index is not `0 <= index < getCount`

    - #### getFieldDescriptors

          public java.util.List<FieldDescriptor> getFieldDescriptors()

      Returns:
        An unmodifiable List of the `FieldDescriptor` instances of this row.

    - #### createDefaultFieldValues

          public RowValue createDefaultFieldValues()

      Creates a `RowValue` instance with default (`null`) values for each field.

      All fields are marked as uninitialized.

      The (0-based) index of the each field value in the `RowValue` corresponds with the (0-based) index of the `FieldDescriptor` within this `RowDescriptor`.

      Returns:
        Uninitialized and empty `RowValue` instance for a row described by this descriptor.
      See Also:
        `RowValue.defaultFor(RowDescriptor)`

    - #### createDeletedRowMarker

          public RowValue createDeletedRowMarker()

      Creates a deleted row marker.

      A deleted row marker is used in JDBC result sets for deleted rows, and to discern them from (updated) rows that are simply all `NULL`. This is for Jaybird internal implementation needs only.

      Returns:
        Deleted row marker with `count` number of rows, all set to null

    - #### iterator

          public java.util.Iterator<FieldDescriptor> iterator()

      Specified by:
        `iterator` in interface `java.lang.Iterable<FieldDescriptor>`

    - #### toString

          public java.lang.String toString()

      Overrides:
        `toString` in class `java.lang.Object`

    - #### equals

          public boolean equals(java.lang.Object obj)

      Overrides:
        `equals` in class `java.lang.Object`

    - #### hashCode

          public int hashCode()

      Overrides:
        `hashCode` in class `java.lang.Object`

    - #### createRowDescriptor

          public static RowDescriptor createRowDescriptor(FieldDescriptor[] fieldDescriptors,
                                                          DatatypeCoder datatypeCoder)

      Creates an instance of `RowDescriptor` with the supplied `FieldDescriptor` instances.
      Parameters:
        `fieldDescriptors` - The field descriptors (array is cloned before use)
        `datatypeCoder` - he datatype code for the connection that uses this RowDescriptor.
      Returns:
        `RowDescriptor` instance

    - #### empty

          public static RowDescriptor empty(DatatypeCoder datatypeCoder)

      Returns an empty row descriptor with the specified datatype coder.
      Parameters:
        `datatypeCoder` - The datatype code for the connection that uses this RowDescriptor.
      Returns:
        Empty row descriptor

Copyright © 2001-2025 Jaybird (Firebird JDBC) team. All rights reserved.