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 assembleRowDescriptorinstances from various types of inputs.- Since:
- 3.0
-
-
Field Summary
Fields Modifier and Type Field Description protected Function<String,String>caseTransformerprotected ColumnDescriptor[]columnsprotected ResultSetMetaDataresultSetMetadataprotected Map<String,String>typeOverridesprotected booleanvalidateDuplicateColumnNames
-
Constructor Summary
Constructors Constructor Description RowDescriptorBuilder()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description RowDescriptorgetDescriptor(ExtendedTypeMap typeMap)Returns a RowDescriptor built based on the builder internal state.booleanisOverriden(String columnName)RowDescriptorBuildermergeColumnsWithRsMetadata()protected ColumnDescriptor[]mergeResultSetAndPresetColumns()RowDescriptorBuilderoverrideColumnType(String columnName, String type)RowDescriptorBuildersetColumns(ColumnDescriptor[] columns)Sets an explicit set of columns.RowDescriptorBuildersetResultSet(ResultSet resultSet)RowDescriptorBuilderuseLowercaseColumnNames()RowDescriptorBuilderuseUppercaseColumnNames()RowDescriptorBuildervalidateDuplicateColumnNames()Validate and report duplicate names of columns.
-
-
-
Field Detail
-
columns
protected ColumnDescriptor[] columns
-
resultSetMetadata
protected ResultSetMetaData resultSetMetadata
-
validateDuplicateColumnNames
protected boolean validateDuplicateColumnNames
-
-
Method Detail
-
getDescriptor
public RowDescriptor getDescriptor(ExtendedTypeMap typeMap) throws SQLException, IllegalStateException
Returns a RowDescriptor built based on the builder internal state.- Throws:
SQLExceptionIllegalStateException
-
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()
-
-