Class RowDescriptor

java.lang.Object
org.firebirdsql.gds.ng.fields.RowDescriptor
All Implemented Interfaces:
Iterable<FieldDescriptor>

public final class RowDescriptor extends Object implements 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 immutable, values of a row are maintained separately in a RowValue.

Author:
Mark Rotteveel
  • Method Details

    • 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:
      IndexOutOfBoundsException - if index is not 0 <= index < getCount
    • getFieldDescriptors

      public List<FieldDescriptor> getFieldDescriptors()
      Returns:
      An immutable 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:
    • 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 Iterator<FieldDescriptor> iterator()
      Specified by:
      iterator in interface Iterable<FieldDescriptor>
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • createRowDescriptor

      public static RowDescriptor createRowDescriptor(FieldDescriptor[] fieldDescriptors, DatatypeCoder datatypeCoder)
      Creates an instance of RowDescriptor with the supplied FieldDescriptor instances.
      Parameters:
      fieldDescriptors - field descriptors (array is cloned before use)
      datatypeCoder - datatype coder 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 - datatype coder for the connection that uses this RowDescriptor.
      Returns:
      Empty row descriptor