Package org.apache.cayenne.access.jdbc

# Class RowDescriptorBuilder

java.lang.Object
org.apache.cayenne.access.jdbc.RowDescriptorBuilder

public class RowDescriptorBuilder extends Object
A builder class that helps to assemble `RowDescriptor` instances from various types of inputs.

Since:
  3.0

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected Function<String,String>`
  `caseTransformer`
  `protected ColumnDescriptor[]`
  `columns`
  `protected ResultSetMetaData`
  `resultSetMetadata`
  `protected Map<String,String>`
  `typeOverrides`
  `protected boolean`
  `validateDuplicateColumnNames`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `RowDescriptorBuilder()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `RowDescriptor`
  `getDescriptor(ExtendedTypeMap typeMap)`
  Returns a RowDescriptor built based on the builder internal state.
  `boolean`
  `isOverriden(String columnName)`
  `RowDescriptorBuilder`
  `mergeColumnsWithRsMetadata()`
  `protected ColumnDescriptor[]`
  `mergeResultSetAndPresetColumns()`
  `RowDescriptorBuilder`
  `overrideColumnType(String columnName, String type)`
  `RowDescriptorBuilder`
  `setColumns(ColumnDescriptor[] columns)`
  Sets an explicit set of columns.
  `RowDescriptorBuilder`
  `setResultSet(ResultSet resultSet)`
  `RowDescriptorBuilder`
  `useLowercaseColumnNames()`
  `RowDescriptorBuilder`
  `useUppercaseColumnNames()`
  `RowDescriptorBuilder`
  `validateDuplicateColumnNames()`
  Validate and report duplicate names of columns.

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

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

- ## Field Details

  - ### columns

    protected ColumnDescriptor[] columns

  - ### resultSetMetadata

    protected ResultSetMetaData resultSetMetadata

  - ### caseTransformer

    protected Function<String,String> caseTransformer

  - ### typeOverrides

    protected Map<String,String> typeOverrides

  - ### validateDuplicateColumnNames

    protected boolean validateDuplicateColumnNames

- ## Constructor Details

  - ### RowDescriptorBuilder

    public RowDescriptorBuilder()

- ## Method Details

  - ### getDescriptor

    public RowDescriptor getDescriptor(ExtendedTypeMap typeMap) throws SQLException, IllegalStateException
    Returns a RowDescriptor built based on the builder internal state.
    Throws:
      `SQLException`
      `IllegalStateException`

  - ### mergeResultSetAndPresetColumns

    protected ColumnDescriptor[] mergeResultSetAndPresetColumns() throws SQLException
    Returns:
      array of columns for ResultSet with overriding ColumnDescriptors from 'columns' Note: column will be overlooked, if column name is empty
    Throws:
      `SQLException`

  - ### setColumns

    public RowDescriptorBuilder setColumns(ColumnDescriptor[] columns)
    Sets an explicit set of columns. Note that the array passed as an argument can later be modified by the build to enforce column capitalization policy and columns Java types overrides.

  - ### setResultSet

    public RowDescriptorBuilder setResultSet(ResultSet resultSet) throws SQLException
    Throws:
      `SQLException`

  - ### useLowercaseColumnNames

    public RowDescriptorBuilder useLowercaseColumnNames()

  - ### useUppercaseColumnNames

    public RowDescriptorBuilder useUppercaseColumnNames()

  - ### overrideColumnType

    public RowDescriptorBuilder overrideColumnType(String columnName, String type)

  - ### validateDuplicateColumnNames

    public RowDescriptorBuilder validateDuplicateColumnNames()
    Validate and report duplicate names of columns.
    Returns:
      this builder

  - ### isOverriden

    public boolean isOverriden(String columnName)

  - ### mergeColumnsWithRsMetadata

    public RowDescriptorBuilder mergeColumnsWithRsMetadata()