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.
-
Field Details
-
columns
-
resultSetMetadata
-
caseTransformer
-
typeOverrides
-
validateDuplicateColumnNames
protected boolean validateDuplicateColumnNames
-
-
Constructor Details
-
RowDescriptorBuilder
public RowDescriptorBuilder()
-
-
Method Details
-
getDescriptor
public RowDescriptor getDescriptor(ExtendedTypeMap typeMap) throws SQLException, IllegalStateExceptionReturns a RowDescriptor built based on the builder internal state.- Throws:
SQLException
IllegalStateException
-
mergeResultSetAndPresetColumns
- Returns:
- array of columns for ResultSet with overriding ColumnDescriptors from 'columns' Note: column will be overlooked, if column name is empty
- Throws:
SQLException
-
setColumns
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
- Throws:
SQLException
-
useLowercaseColumnNames
-
useUppercaseColumnNames
-
overrideColumnType
-
validateDuplicateColumnNames
Validate and report duplicate names of columns.- Returns:
- this builder
-
isOverriden
-
mergeColumnsWithRsMetadata
-