Package io.debezium.antlr
Class DataTypeResolver
- java.lang.Object
-
- io.debezium.antlr.DataTypeResolver
-
@ThreadSafe @Immutable public class DataTypeResolver extends Object
A resolver for DBMS data types. Its main purpose is to match corresponding JDBC data type, resolve a name of parsed data type, and optionally predefine default values for length and scale for DBMS data type.- Author:
- Roman Kuchár
.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classDataTypeResolver.Builderstatic classDataTypeResolver.DataTypeEntryDTO class for definition of data type.
-
Field Summary
Fields Modifier and Type Field Description private Map<String,List<DataTypeResolver.DataTypeEntry>>contextDataTypesMap
-
Constructor Summary
Constructors Modifier Constructor Description privateDataTypeResolver(Map<String,List<DataTypeResolver.DataTypeEntry>> contextDataTypesMap)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private voidaddOptionalSuffixToName(org.antlr.v4.runtime.ParserRuleContext dataTypeContext, DataTypeResolver.DataTypeEntry dataTypeEntry, DataTypeBuilder dataTypeBuilder)private DataTypebuildDataType(org.antlr.v4.runtime.ParserRuleContext dataTypeContext, DataTypeResolver.DataTypeEntry dataTypeEntry, DataTypeBuilder dataTypeBuilder)DataTyperesolveDataType(org.antlr.v4.runtime.ParserRuleContext dataTypeContext)Resolves a data type from given parsed context.
-
-
-
Field Detail
-
contextDataTypesMap
private final Map<String,List<DataTypeResolver.DataTypeEntry>> contextDataTypesMap
-
-
Constructor Detail
-
DataTypeResolver
private DataTypeResolver(Map<String,List<DataTypeResolver.DataTypeEntry>> contextDataTypesMap)
-
-
Method Detail
-
resolveDataType
public DataType resolveDataType(org.antlr.v4.runtime.ParserRuleContext dataTypeContext)
Resolves a data type from given parsed context.- Parameters:
dataTypeContext- parse context; may not e null- Returns:
- instance of
DataType, which will holds matched JDBC type, name and default values for length and scale.
-
buildDataType
private DataType buildDataType(org.antlr.v4.runtime.ParserRuleContext dataTypeContext, DataTypeResolver.DataTypeEntry dataTypeEntry, DataTypeBuilder dataTypeBuilder)
-
addOptionalSuffixToName
private void addOptionalSuffixToName(org.antlr.v4.runtime.ParserRuleContext dataTypeContext, DataTypeResolver.DataTypeEntry dataTypeEntry, DataTypeBuilder dataTypeBuilder)
-
-