Package org.hibernate.sql.ordering.antlr
Class OrderByFragmentParser
- java.lang.Object
-
- antlr.Parser
-
- antlr.LLkParser
-
- org.hibernate.sql.ordering.antlr.GeneratedOrderByFragmentParser
-
- org.hibernate.sql.ordering.antlr.OrderByFragmentParser
-
- All Implemented Interfaces:
OrderByTemplateTokenTypes
public class OrderByFragmentParser extends GeneratedOrderByFragmentParser
Extension of the Antlr-generated parser for the purpose of adding our custom parsing behavior (semantic analysis, etc).
-
-
Field Summary
-
Fields inherited from class org.hibernate.sql.ordering.antlr.GeneratedOrderByFragmentParser
_tokenNames, _tokenSet_0, _tokenSet_1, _tokenSet_2, _tokenSet_3, _tokenSet_4, _tokenSet_5, _tokenSet_6, _tokenSet_7, _tokenSet_8, _tokenSet_9
-
Fields inherited from class antlr.Parser
astFactory, inputState, returnAST, tokenNames, tokenTypeToASTClassMap
-
Fields inherited from interface org.hibernate.sql.ordering.antlr.OrderByTemplateTokenTypes
ASCENDING, CLOSE_PAREN, COLLATE, COLUMN_REF, COMMA, DESCENDING, DOT, EOF, ESCqs, EXPONENT, EXPR_LIST, FIRST, FLOAT_SUFFIX, HARD_QUOTE, HEX_DIGIT, ID_LETTER, ID_START_LETTER, IDENT, IDENT_LIST, LAST, LITERAL_ascending, LITERAL_descending, NULL_ORDER, NULL_TREE_LOOKAHEAD, NULLS, NUM_DOUBLE, NUM_FLOAT, NUM_INT, NUM_LONG, OPEN_PAREN, ORDER_BY, ORDER_SPEC, QUOTED_STRING, SORT_KEY, SORT_SPEC, WS
-
-
Constructor Summary
Constructors Constructor Description OrderByFragmentParser(antlr.TokenStream lexer, TranslationContext context)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Set<String>
getColumnReferences()
protected boolean
isFunctionName(antlr.collections.AST ast)
A check to see if the text of the given node represents a known function name.protected antlr.collections.AST
postProcessSortSpecification(antlr.collections.AST sortSpec)
Allow post processing of each sort specificationprotected antlr.collections.AST
quotedIdentifier(antlr.collections.AST ident)
Process the given node as a quote identifier.protected antlr.collections.AST
quotedString(antlr.collections.AST ident)
Process the given node as a quote string.protected antlr.collections.AST
resolveFunction(antlr.collections.AST ast)
Process the given node as a function.protected antlr.collections.AST
resolveIdent(antlr.collections.AST ident)
Process the given node as an IDENT.protected void
trace(String msg)
Method for logging execution trace information.void
traceIn(String ruleName)
void
traceOut(String ruleName)
-
Methods inherited from class org.hibernate.sql.ordering.antlr.GeneratedOrderByFragmentParser
buildTokenTypeASTClassMap, collationName, collationSpecification, expression, extractText, functionCall, functionCallCheck, functionName, functionParameter, functionParameterList, nullOrdering, nullPrecedence, orderByFragment, orderingSpecification, simplePropertyPath, sortKey, sortSpecification
-
Methods inherited from class antlr.Parser
addMessageListener, addParserListener, addParserMatchListener, addParserTokenListener, addSemanticPredicateListener, addSyntacticPredicateListener, addTraceListener, consumeUntil, consumeUntil, defaultDebuggingSetup, getAST, getASTFactory, getFilename, getInputState, getTokenName, getTokenNames, getTokenTypeToASTClassMap, isDebugMode, mark, match, match, matchNot, panic, recover, removeMessageListener, removeParserListener, removeParserMatchListener, removeParserTokenListener, removeSemanticPredicateListener, removeSyntacticPredicateListener, removeTraceListener, reportError, reportError, reportWarning, rewind, setASTFactory, setASTNodeClass, setASTNodeType, setDebugMode, setFilename, setIgnoreInvalidDebugCalls, setInputState, setTokenBuffer, traceIndent
-
-
-
-
Constructor Detail
-
OrderByFragmentParser
public OrderByFragmentParser(antlr.TokenStream lexer, TranslationContext context)
-
-
Method Detail
-
quotedIdentifier
protected antlr.collections.AST quotedIdentifier(antlr.collections.AST ident)
Description copied from class:GeneratedOrderByFragmentParser
Process the given node as a quote identifier. These need to be quoted in the dialect-specific way.- Overrides:
quotedIdentifier
in classGeneratedOrderByFragmentParser
- Parameters:
ident
- The quoted-identifier node.- Returns:
- The processed node.
- See Also:
Dialect.quote(java.lang.String)
-
quotedString
protected antlr.collections.AST quotedString(antlr.collections.AST ident)
Description copied from class:GeneratedOrderByFragmentParser
Process the given node as a quote string.- Overrides:
quotedString
in classGeneratedOrderByFragmentParser
- Parameters:
ident
- The quoted string. This is used from within function param recognition, and represents a SQL-quoted string.- Returns:
- The processed node.
-
isFunctionName
protected boolean isFunctionName(antlr.collections.AST ast)
Description copied from class:GeneratedOrderByFragmentParser
A check to see if the text of the given node represents a known function name.- Overrides:
isFunctionName
in classGeneratedOrderByFragmentParser
- Parameters:
ast
- The node whose text we want to check.- Returns:
- True if the node's text is a known function name, false otherwise.
- See Also:
SQLFunctionRegistry
-
resolveFunction
protected antlr.collections.AST resolveFunction(antlr.collections.AST ast)
Description copied from class:GeneratedOrderByFragmentParser
Process the given node as a function.- Overrides:
resolveFunction
in classGeneratedOrderByFragmentParser
- Returns:
- The processed node.
-
resolveIdent
protected antlr.collections.AST resolveIdent(antlr.collections.AST ident)
Description copied from class:GeneratedOrderByFragmentParser
Process the given node as an IDENT. May represent either a column reference or a property reference.- Overrides:
resolveIdent
in classGeneratedOrderByFragmentParser
- Parameters:
ident
- The node whose text represents either a column or property reference.- Returns:
- The processed node.
-
postProcessSortSpecification
protected antlr.collections.AST postProcessSortSpecification(antlr.collections.AST sortSpec)
Description copied from class:GeneratedOrderByFragmentParser
Allow post processing of each sort specification- Overrides:
postProcessSortSpecification
in classGeneratedOrderByFragmentParser
- Returns:
- The processed sort specification subtree.
-
traceIn
public void traceIn(String ruleName)
- Overrides:
traceIn
in classantlr.LLkParser
-
traceOut
public void traceOut(String ruleName)
- Overrides:
traceOut
in classantlr.LLkParser
-
trace
protected void trace(String msg)
Description copied from class:GeneratedOrderByFragmentParser
Method for logging execution trace information.- Overrides:
trace
in classGeneratedOrderByFragmentParser
- Parameters:
msg
- The trace message.
-
-