public class DataTypeParser extends Object implements DdlConstants
DdlConstants.AstNodeNames, DdlConstants.DataTypes, DdlConstants.DropBehavior, DdlConstants.MatchType, DdlConstants.Problems, DdlConstants.ReferencialAction, DdlConstants.StatementStartPhrases
ALTER, CHECK, COLUMN, COMMA, CONSTRAINT, CONSTRAINT_C, CONSTRAINT_FK, CONSTRAINT_PK, CONSTRAINT_UC, CREATE, DECLARE, DEFAULT_TERMINATOR, DELETE, DROP, FOREIGN, FOREIGN_KEY, GIGA, GRANT, INDEX, INSERT, KEY, KILO, L_PAREN, L_SQUOTE, LS_BRACE, MEGA, MISSING_TERMINATOR_NODE_LITERAL, NOT, NULL, OFF, ON, PERIOD, PRIMARY, PRIMARY_KEY, R_PAREN, REVOKE, RS_BRACE, SCHEMA, SELECT, SEMICOLON, SET, SPACE, SQL_92_RESERVED_WORDS, TABLE, UNIQUE, UPDATE, VIEW
Constructor and Description |
---|
DataTypeParser() |
Modifier and Type | Method and Description |
---|---|
protected boolean |
canConsume(DdlTokenStream tokens,
DataType dataType,
boolean addSpacePrefix,
int type) |
protected boolean |
canConsume(DdlTokenStream tokens,
DataType dataType,
boolean addSpacePrefix,
String[] additionalStrs) |
protected boolean |
canConsume(DdlTokenStream tokens,
DataType dataType,
boolean addSpacePrefix,
String initialStr,
String... additionalStrs) |
protected boolean |
canConsumeAnyOf(DdlTokenStream tokens,
DataType dataType,
boolean addSpacePrefix,
String initialStr,
String... additionalStrs) |
protected String |
consume(DdlTokenStream tokens,
DataType dataType,
boolean addSpacePrefix) |
protected String |
consume(DdlTokenStream tokens,
DataType dataType,
boolean addSpacePrefix,
String str) |
protected String |
consume(DdlTokenStream tokens,
DataType dataType,
boolean addSpacePrefix,
String[] additionalStrs) |
protected String |
consume(DdlTokenStream tokens,
DataType dataType,
boolean addSpacePrefix,
String initialStr,
String... additionalStrs) |
int |
getDefaultLength() |
int |
getDefaultPrecision() |
int |
getDefaultScale() |
String |
getStatementTypeName(String[] stmtPhrase) |
protected boolean |
isCustomDataType(DdlTokenStream tokens)
Method to determine of next tokens represent a custom data type.
|
boolean |
isDatatype(DdlTokenStream tokens)
Method determines if the next set of tokens matches one of the registered data type token sets.
|
DataType |
parse(DdlTokenStream tokens)
Method which performs the actual parsing of the data type name and applicable values (i.e.
|
protected DataType |
parseApproxNumericType(DdlTokenStream tokens)
Parses SQL-92 Approximate numeric data types.
|
protected DataType |
parseBitStringType(DdlTokenStream tokens)
Parses SQL-92 Bit string data types.
|
protected long |
parseBracketedLong(DdlTokenStream tokens,
DataType dataType)
Returns a long value from the input token stream assuming the long is bracketed with parenthesis.
|
protected DataType |
parseCharStringType(DdlTokenStream tokens)
Parses SQL-92 Character string data types.
|
protected DataType |
parseCustomType(DdlTokenStream tokens)
General catch-all data type parsing method that sub-classes can override to parse database-specific data types.
|
protected DataType |
parseDateTimeType(DdlTokenStream tokens)
Parses SQL-92 Date and Time data types.
|
protected DataType |
parseExactNumericType(DdlTokenStream tokens)
Parses SQL-92 Exact numeric data types.
|
protected long |
parseLong(DdlTokenStream tokens,
DataType dataType)
Returns a long value from the input token stream assuming the long is not bracketed with parenthesis.
|
protected long |
parseLong(String value)
Returns the integer value of the input string.
|
protected DataType |
parseMiscellaneousType(DdlTokenStream tokens)
Parses SQL-92 Misc data types.
|
protected DataType |
parseNationalCharStringType(DdlTokenStream tokens)
Parses SQL-92 National Character string data types.
|
void |
setDefaultLength(int defaultLength) |
void |
setDefaultPrecision(int defaultPrecision) |
void |
setDefaultScale(int defaultScale) |
void |
setPropertiesOnNode(AstNode columnNode,
DataType datatype) |
public final boolean isDatatype(DdlTokenStream tokens) throws ParsingException
tokens
- ParsingException
protected boolean isCustomDataType(DdlTokenStream tokens) throws ParsingException
tokens
- ParsingException
public DataType parse(DdlTokenStream tokens) throws ParsingException
tokens
- DataType
ParsingException
protected DataType parseCharStringType(DdlTokenStream tokens) throws ParsingException
tokens
- DataType
ParsingException
protected DataType parseNationalCharStringType(DdlTokenStream tokens) throws ParsingException
tokens
- DataType
ParsingException
protected DataType parseBitStringType(DdlTokenStream tokens) throws ParsingException
tokens
- DataType
ParsingException
protected DataType parseExactNumericType(DdlTokenStream tokens) throws ParsingException
tokens
- DataType
ParsingException
protected DataType parseApproxNumericType(DdlTokenStream tokens) throws ParsingException
tokens
- DataType
ParsingException
protected DataType parseDateTimeType(DdlTokenStream tokens) throws ParsingException
tokens
- DataType
ParsingException
protected DataType parseMiscellaneousType(DdlTokenStream tokens) throws ParsingException
tokens
- DataType
ParsingException
protected DataType parseCustomType(DdlTokenStream tokens) throws ParsingException
tokens
- DataType
ParsingException
public int getDefaultLength()
public void setDefaultLength(int defaultLength)
defaultLength
- public int getDefaultPrecision()
public void setDefaultPrecision(int defaultPrecision)
defaultPrecision
- public int getDefaultScale()
public void setDefaultScale(int defaultScale)
defaultScale
- protected long parseLong(DdlTokenStream tokens, DataType dataType)
tokens
- dataType
- protected long parseBracketedLong(DdlTokenStream tokens, DataType dataType)
tokens
- dataType
- protected long parseLong(String value)
value
- NumberFormatException
- if a valid integer is not foundprotected String consume(DdlTokenStream tokens, DataType dataType, boolean addSpacePrefix) throws ParsingException
tokens
- dataType
- addSpacePrefix
- ParsingException
protected String consume(DdlTokenStream tokens, DataType dataType, boolean addSpacePrefix, String str) throws ParsingException
tokens
- dataType
- addSpacePrefix
- str
- ParsingException
protected String consume(DdlTokenStream tokens, DataType dataType, boolean addSpacePrefix, String initialStr, String... additionalStrs) throws ParsingException
tokens
- dataType
- addSpacePrefix
- initialStr
- additionalStrs
- ParsingException
protected String consume(DdlTokenStream tokens, DataType dataType, boolean addSpacePrefix, String[] additionalStrs) throws ParsingException
ParsingException
protected boolean canConsume(DdlTokenStream tokens, DataType dataType, boolean addSpacePrefix, String initialStr, String... additionalStrs) throws ParsingException
tokens
- dataType
- addSpacePrefix
- initialStr
- additionalStrs
- ParsingException
protected boolean canConsume(DdlTokenStream tokens, DataType dataType, boolean addSpacePrefix, String[] additionalStrs) throws ParsingException
tokens
- dataType
- addSpacePrefix
- additionalStrs
- ParsingException
protected boolean canConsume(DdlTokenStream tokens, DataType dataType, boolean addSpacePrefix, int type) throws ParsingException
tokens
- dataType
- addSpacePrefix
- type
- ParsingException
protected boolean canConsumeAnyOf(DdlTokenStream tokens, DataType dataType, boolean addSpacePrefix, String initialStr, String... additionalStrs) throws ParsingException
tokens
- dataType
- addSpacePrefix
- initialStr
- additionalStrs
- ParsingException
public String getStatementTypeName(String[] stmtPhrase)
stmtPhrase
- Copyright © 2008–2016 JBoss, a division of Red Hat. All rights reserved.