Replacer constructor methods.
This API is EXPERIMENTAL. Use at your own risk.
- Author:
- Lukas Eder
-
Method Summary
Modifier and TypeMethodDescriptionstatic final @NotNull ReplacerDecomposes compound queries into their component queries.static final @NotNull Replacerlistening(Replacer replacer, BiConsumer<? super QueryPart, ? super QueryPart> replacement) Wraps anotherReplacer, listening to all of the replacement events that it produces.static final @NotNull ReplacermappingTable(Function<? super Table<?>, ? extends Table<?>> replacement) AReplacerthat maps tables similar to the functionality offered bySettings.getRenderMapping().static final @NotNull ReplacermappingTable(Table<?> input, Table<?> output) AReplacerthat maps a pair of tables similar to the functionality offered bySettings.getRenderMapping().static final @NotNull ReplacertransformPatterns(Configuration configuration) AReplacerthat implements theSettings.isTransformPatterns()functionality.
-
Method Details
-
decomposing
Decomposes compound queries into their component queries.Some DDL statements are compound statements, such as e.g.
ALTER TABLE t ADD col1 INT, ADD col2 INT;The above single compound statement can be decomposed into its component statements:
ALTER TABLE t ADD col1 INT; ALTER TABLE t ADD col2 INT;Some use-cases, including DDL interpretation may be better served by component statements rather than the compound version.
As this
Replacerhas to adhere to the contract imposed byReplacer.replacer(), it can only operate onQueriesand otherQuerywrapping elements, such asBlockand other procedural scope statements. -
listening
@NotNull public static final @NotNull Replacer listening(Replacer replacer, BiConsumer<? super QueryPart, ? super QueryPart> replacement) Wraps anotherReplacer, listening to all of the replacement events that it produces. -
transformPatterns
AReplacerthat implements theSettings.isTransformPatterns()functionality. -
mappingTable
@NotNull public static final @NotNull Replacer mappingTable(Function<? super Table<?>, ? extends Table<?>> replacement) AReplacerthat maps tables similar to the functionality offered bySettings.getRenderMapping().Ordinary
TraverserandReplacerimplementations don't get to see the qualifyingTableobject of aTableField, for example. This makes it laborious to map e.g.TtoUas follows:-- Input SELECT t.x FROM t -- Output SELECT u.x FROM u -
mappingTable
AReplacerthat maps a pair of tables similar to the functionality offered bySettings.getRenderMapping().Ordinary
TraverserandReplacerimplementations don't get to see the qualifyingTableobject of aTableField, for example. This makes it laborious to map e.g.TtoUas follows:-- Input SELECT t.x FROM t -- Output SELECT u.x FROM u
-