- All Implemented Interfaces:
EventListener
,ParseListener
ParseListener
that allows for functional composition.
For example:
ParseListener listener = ParseListener
.onParseField(ctx -> something())
.onParseCondition(ctx -> something());
- Author:
- Lukas Eder
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionfinal CallbackParseListener
onParseCondition
(Function<? super ParseContext, ? extends Condition> newOnParseCondition) final CallbackParseListener
onParseEnd
(Consumer<? super ParseContext> newOnParseEnd) final CallbackParseListener
onParseField
(Function<? super ParseContext, ? extends Field<?>> newOnParseField) final CallbackParseListener
onParseStart
(Consumer<? super ParseContext> newOnParseStart) final CallbackParseListener
onParseTable
(Function<? super ParseContext, ? extends Table<?>> newOnParseTable) final Condition
Attempt to parse aCondition
expression.final void
parseEnd
(ParseContext ctx) Callback method invoked after the parser successfully completes parsing a SQL string.final Field
<?> parseField
(ParseContext ctx) Attempt to parse aField
expression.final void
parseStart
(ParseContext ctx) Callback method invoked before the parser starts parsing a SQL string.final Table
<?> parseTable
(ParseContext ctx) Attempt to parse aTable
expression.
-
Constructor Details
-
CallbackParseListener
public CallbackParseListener()
-
-
Method Details
-
parseStart
Description copied from interface:ParseListener
Callback method invoked before the parser starts parsing a SQL string.Use this to perform quick modifications to the SQL string where necessary, e.g. by removing unsupported (but irrelevant) syntax from the input string of
ParseContext.characters()
.- Specified by:
parseStart
in interfaceParseListener
- Parameters:
ctx
- The context containing information about the parsing, as well as API to interact with it.
-
parseEnd
Description copied from interface:ParseListener
Callback method invoked after the parser successfully completes parsing a SQL string.Use this to clean up resources or perform post-parsing validations.
- Specified by:
parseEnd
in interfaceParseListener
- Parameters:
ctx
- The context containing information about the parsing, as well as API to interact with it.
-
parseField
Description copied from interface:ParseListener
Attempt to parse aField
expression.This parses a "term", meaning the callback does not interfere with any operators or operator precedence, but will be called only when a field term can appear. For example, with input SQL like
A + B
, the callback is called at the positions ofA
andB
. Client code does not have to (and should not) handle the+
operator, or its precedence.- Specified by:
parseField
in interfaceParseListener
- Parameters:
ctx
- The context containing information about the parsing, as well as API to interact with it.- Returns:
- The
Field
expression if a field could be parsed, ornull
otherwise.
-
parseTable
Description copied from interface:ParseListener
Attempt to parse aTable
expression.This parses a "table factor", meaning the callback does not interfere with any operators or operator precedence, but will be called only when a condition term can appear. For example, with input SQL like
A join B
, the callback is called at the positions ofA
andB
. Client code does not have to (and should not) handle thejoin
operator, or its precedence.- Specified by:
parseTable
in interfaceParseListener
- Parameters:
ctx
- The context containing information about the parsing, as well as API to interact with it.- Returns:
- The
Table
expression if a table could be parsed, ornull
otherwise.
-
parseCondition
Description copied from interface:ParseListener
Attempt to parse aCondition
expression.This parses a "predicate", meaning the callback does not interfere with any operators or operator precedence, but will be called only when a condition term can appear. For example, with input SQL like
A or B
, the callback is called at the positions ofA
andB
. Client code does not have to (and should not) handle theor
operator, or its precedence.- Specified by:
parseCondition
in interfaceParseListener
- Parameters:
ctx
- The context containing information about the parsing, as well as API to interact with it.- Returns:
- The
Condition
expression if a condition could be parsed, ornull
otherwise.
-
onParseStart
-
onParseEnd
-
onParseField
public final CallbackParseListener onParseField(Function<? super ParseContext, ? extends Field<?>> newOnParseField) -
onParseTable
public final CallbackParseListener onParseTable(Function<? super ParseContext, ? extends Table<?>> newOnParseTable) -
onParseCondition
public final CallbackParseListener onParseCondition(Function<? super ParseContext, ? extends Condition> newOnParseCondition)
-