From 32c87800feee9489002efd8361c75ab9bc5849b3 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Thu, 30 Sep 2021 11:52:28 +0200 Subject: [PATCH] [jOOQ/jOOQ#12425] Refactor AbstractCondition.unwrapNot With the new MQueryPart.replace() functionality, a lot of internal expression tree transformations are no longer required, among which the AbstractCondition.unwrapNot utility that can transform things like NOT NOT P to P as is useful for a Teradata workaround (see [jOOQ/jOOQ#11857]) --- jOOQ/src/main/java/org/jooq/impl/Abs.java | 6 +- .../java/org/jooq/impl/AbstractCondition.java | 11 - .../java/org/jooq/impl/AbstractLeadLag.java | 6 +- .../main/java/org/jooq/impl/AbstractRow.java | 7 +- jOOQ/src/main/java/org/jooq/impl/Acos.java | 6 +- .../java/org/jooq/impl/AlterDatabaseImpl.java | 6 +- .../java/org/jooq/impl/AlterDomainImpl.java | 6 +- .../java/org/jooq/impl/AlterIndexImpl.java | 6 +- .../java/org/jooq/impl/AlterSchemaImpl.java | 6 +- .../java/org/jooq/impl/AlterSequenceImpl.java | 6 +- .../java/org/jooq/impl/AlterTypeImpl.java | 6 +- .../java/org/jooq/impl/AlterViewImpl.java | 6 +- .../src/main/java/org/jooq/impl/AnyValue.java | 6 +- jOOQ/src/main/java/org/jooq/impl/Array.java | 7 +- .../src/main/java/org/jooq/impl/ArrayGet.java | 6 +- .../main/java/org/jooq/impl/ArraySelect.java | 7 +- jOOQ/src/main/java/org/jooq/impl/Ascii.java | 6 +- jOOQ/src/main/java/org/jooq/impl/Asin.java | 6 +- .../main/java/org/jooq/impl/Assignment.java | 3 + .../main/java/org/jooq/impl/AsteriskImpl.java | 7 +- jOOQ/src/main/java/org/jooq/impl/Atan.java | 6 +- jOOQ/src/main/java/org/jooq/impl/Atan2.java | 6 +- jOOQ/src/main/java/org/jooq/impl/Avg.java | 6 +- .../java/org/jooq/impl/BetweenCondition.java | 7 +- .../main/java/org/jooq/impl/BitAndAgg.java | 6 +- .../src/main/java/org/jooq/impl/BitCount.java | 6 +- .../main/java/org/jooq/impl/BitLength.java | 6 +- .../src/main/java/org/jooq/impl/BitOrAgg.java | 6 +- .../main/java/org/jooq/impl/BitXorAgg.java | 6 +- .../main/java/org/jooq/impl/BlockImpl.java | 7 +- jOOQ/src/main/java/org/jooq/impl/BoolAnd.java | 6 +- jOOQ/src/main/java/org/jooq/impl/BoolOr.java | 6 +- jOOQ/src/main/java/org/jooq/impl/Call.java | 4 + .../main/java/org/jooq/impl/Cardinality.java | 6 +- .../org/jooq/impl/CaseConditionStepImpl.java | 7 + jOOQ/src/main/java/org/jooq/impl/Cast.java | 7 +- .../main/java/org/jooq/impl/CatalogImpl.java | 7 +- jOOQ/src/main/java/org/jooq/impl/Ceil.java | 6 +- .../main/java/org/jooq/impl/CharLength.java | 6 +- jOOQ/src/main/java/org/jooq/impl/Chr.java | 6 +- jOOQ/src/main/java/org/jooq/impl/Coerce.java | 7 +- .../java/org/jooq/impl/CollatedField.java | 7 +- .../java/org/jooq/impl/CommentOnImpl.java | 6 +- .../jooq/impl/CommonTableExpressionImpl.java | 7 +- .../java/org/jooq/impl/ConditionAsField.java | 6 +- .../java/org/jooq/impl/ConnectByRoot.java | 4 + .../src/main/java/org/jooq/impl/Continue.java | 3 + .../java/org/jooq/impl/ConvertDateTime.java | 5 + jOOQ/src/main/java/org/jooq/impl/Corr.java | 6 +- jOOQ/src/main/java/org/jooq/impl/Cos.java | 6 +- jOOQ/src/main/java/org/jooq/impl/Cosh.java | 6 +- jOOQ/src/main/java/org/jooq/impl/Cot.java | 6 +- jOOQ/src/main/java/org/jooq/impl/Coth.java | 6 +- jOOQ/src/main/java/org/jooq/impl/Count.java | 6 +- .../main/java/org/jooq/impl/CountTable.java | 6 +- .../src/main/java/org/jooq/impl/CovarPop.java | 6 +- .../main/java/org/jooq/impl/CovarSamp.java | 6 +- .../org/jooq/impl/CreateDatabaseImpl.java | 6 +- .../java/org/jooq/impl/CreateDomainImpl.java | 6 +- .../org/jooq/impl/CreateFunctionImpl.java | 4 + .../java/org/jooq/impl/CreateIndexImpl.java | 6 +- .../org/jooq/impl/CreateProcedureImpl.java | 4 + .../java/org/jooq/impl/CreateSchemaImpl.java | 6 +- .../org/jooq/impl/CreateSequenceImpl.java | 6 +- .../java/org/jooq/impl/CreateTriggerImpl.java | 4 + .../java/org/jooq/impl/CreateTypeImpl.java | 7 +- .../java/org/jooq/impl/CreateViewImpl.java | 7 +- .../src/main/java/org/jooq/impl/CumeDist.java | 6 +- .../org/jooq/impl/DataChangeDeltaTable.java | 7 +- jOOQ/src/main/java/org/jooq/impl/DateAdd.java | 6 +- .../java/org/jooq/impl/DeclarationImpl.java | 3 + .../jooq/impl/DefaultAggregateFunction.java | 9 +- jOOQ/src/main/java/org/jooq/impl/Degrees.java | 6 +- .../main/java/org/jooq/impl/DenseRank.java | 6 +- .../org/jooq/impl/DerivedColumnListImpl.java | 7 +- jOOQ/src/main/java/org/jooq/impl/Digits.java | 6 +- .../java/org/jooq/impl/DropDatabaseImpl.java | 6 +- .../java/org/jooq/impl/DropDomainImpl.java | 6 +- .../java/org/jooq/impl/DropFunctionImpl.java | 4 + .../java/org/jooq/impl/DropIndexImpl.java | 6 +- .../java/org/jooq/impl/DropProcedureImpl.java | 4 + .../java/org/jooq/impl/DropSchemaImpl.java | 6 +- .../java/org/jooq/impl/DropSequenceImpl.java | 6 +- .../java/org/jooq/impl/DropTableImpl.java | 6 +- .../java/org/jooq/impl/DropTriggerImpl.java | 4 + .../main/java/org/jooq/impl/DropTypeImpl.java | 7 +- .../main/java/org/jooq/impl/DropViewImpl.java | 6 +- jOOQ/src/main/java/org/jooq/impl/Execute.java | 4 + jOOQ/src/main/java/org/jooq/impl/Exists.java | 6 +- jOOQ/src/main/java/org/jooq/impl/Exit.java | 3 + jOOQ/src/main/java/org/jooq/impl/Exp.java | 6 +- jOOQ/src/main/java/org/jooq/impl/Extract.java | 7 +- .../main/java/org/jooq/impl/FieldAlias.java | 7 +- .../java/org/jooq/impl/FieldCondition.java | 6 +- .../main/java/org/jooq/impl/FirstValue.java | 6 +- jOOQ/src/main/java/org/jooq/impl/Floor.java | 6 +- .../src/main/java/org/jooq/impl/Function.java | 6 +- .../main/java/org/jooq/impl/Function1.java | 6 +- jOOQ/src/main/java/org/jooq/impl/Goto.java | 4 + .../main/java/org/jooq/impl/GrantImpl.java | 6 +- .../main/java/org/jooq/impl/JSONArray.java | 6 +- .../java/org/jooq/impl/JSONEntryImpl.java | 7 +- .../main/java/org/jooq/impl/JSONObject.java | 6 +- jOOQ/src/main/java/org/jooq/impl/LTrim.java | 6 +- .../main/java/org/jooq/impl/LabelImpl.java | 3 + .../java/org/jooq/impl/LabelledStatement.java | 3 + .../main/java/org/jooq/impl/LastValue.java | 6 +- .../main/java/org/jooq/impl/LazyCatalog.java | 7 +- .../main/java/org/jooq/impl/LazySchema.java | 7 +- jOOQ/src/main/java/org/jooq/impl/LazyVal.java | 7 +- jOOQ/src/main/java/org/jooq/impl/Left.java | 6 +- .../src/main/java/org/jooq/impl/LinkImpl.java | 3 + .../main/java/org/jooq/impl/LinkedTable.java | 3 + jOOQ/src/main/java/org/jooq/impl/Log.java | 6 +- jOOQ/src/main/java/org/jooq/impl/Log10.java | 6 +- jOOQ/src/main/java/org/jooq/impl/Lower.java | 6 +- jOOQ/src/main/java/org/jooq/impl/Lpad.java | 6 +- jOOQ/src/main/java/org/jooq/impl/MD5.java | 6 +- jOOQ/src/main/java/org/jooq/impl/Max.java | 6 +- jOOQ/src/main/java/org/jooq/impl/Median.java | 6 +- jOOQ/src/main/java/org/jooq/impl/Min.java | 6 +- .../src/main/java/org/jooq/impl/Multiset.java | 7 +- .../main/java/org/jooq/impl/MultisetAgg.java | 7 +- .../src/main/java/org/jooq/impl/NthValue.java | 6 +- jOOQ/src/main/java/org/jooq/impl/Ntile.java | 6 +- jOOQ/src/main/java/org/jooq/impl/Nullif.java | 6 +- jOOQ/src/main/java/org/jooq/impl/Nvl.java | 6 +- .../main/java/org/jooq/impl/OctetLength.java | 6 +- jOOQ/src/main/java/org/jooq/impl/Overlay.java | 6 +- .../main/java/org/jooq/impl/PackageImpl.java | 7 +- .../main/java/org/jooq/impl/PercentRank.java | 6 +- .../src/main/java/org/jooq/impl/Position.java | 6 +- jOOQ/src/main/java/org/jooq/impl/Prior.java | 4 + jOOQ/src/main/java/org/jooq/impl/Product.java | 6 +- jOOQ/src/main/java/org/jooq/impl/QOM.java | 649 ++++++++++-------- .../org/jooq/impl/QualifiedAsteriskImpl.java | 7 +- .../main/java/org/jooq/impl/QueriesImpl.java | 7 +- .../jooq/impl/QueryPartCollectionView.java | 7 +- jOOQ/src/main/java/org/jooq/impl/RTrim.java | 6 +- jOOQ/src/main/java/org/jooq/impl/Radians.java | 6 +- jOOQ/src/main/java/org/jooq/impl/Rank.java | 6 +- .../java/org/jooq/impl/RatioToReport.java | 7 +- .../main/java/org/jooq/impl/RegexpLike.java | 7 +- .../src/main/java/org/jooq/impl/RegrAvgx.java | 6 +- .../src/main/java/org/jooq/impl/RegrAvgy.java | 6 +- .../main/java/org/jooq/impl/RegrCount.java | 6 +- .../java/org/jooq/impl/RegrIntercept.java | 6 +- jOOQ/src/main/java/org/jooq/impl/RegrR2.java | 6 +- .../main/java/org/jooq/impl/RegrSlope.java | 6 +- jOOQ/src/main/java/org/jooq/impl/RegrSxx.java | 6 +- jOOQ/src/main/java/org/jooq/impl/RegrSxy.java | 6 +- jOOQ/src/main/java/org/jooq/impl/RegrSyy.java | 6 +- jOOQ/src/main/java/org/jooq/impl/Repeat.java | 6 +- jOOQ/src/main/java/org/jooq/impl/Replace.java | 6 +- jOOQ/src/main/java/org/jooq/impl/Return.java | 4 + jOOQ/src/main/java/org/jooq/impl/Reverse.java | 6 +- .../main/java/org/jooq/impl/RevokeImpl.java | 6 +- jOOQ/src/main/java/org/jooq/impl/Right.java | 6 +- .../src/main/java/org/jooq/impl/RoleImpl.java | 7 +- jOOQ/src/main/java/org/jooq/impl/Round.java | 6 +- .../src/main/java/org/jooq/impl/RowField.java | 7 +- .../main/java/org/jooq/impl/RowNumber.java | 6 +- .../src/main/java/org/jooq/impl/RowsFrom.java | 6 +- jOOQ/src/main/java/org/jooq/impl/Rpad.java | 6 +- .../main/java/org/jooq/impl/SchemaImpl.java | 7 +- .../java/org/jooq/impl/SelectQueryImpl.java | 6 +- .../main/java/org/jooq/impl/SetCatalog.java | 6 +- .../main/java/org/jooq/impl/SetCommand.java | 6 +- .../main/java/org/jooq/impl/SetSchema.java | 6 +- jOOQ/src/main/java/org/jooq/impl/Sign.java | 6 +- jOOQ/src/main/java/org/jooq/impl/Signal.java | 4 + jOOQ/src/main/java/org/jooq/impl/Sin.java | 6 +- jOOQ/src/main/java/org/jooq/impl/Sinh.java | 6 +- .../java/org/jooq/impl/SortFieldImpl.java | 6 +- jOOQ/src/main/java/org/jooq/impl/Space.java | 6 +- .../main/java/org/jooq/impl/SplitPart.java | 6 +- jOOQ/src/main/java/org/jooq/impl/Sqrt.java | 6 +- jOOQ/src/main/java/org/jooq/impl/Square.java | 6 +- .../main/java/org/jooq/impl/StddevPop.java | 6 +- .../main/java/org/jooq/impl/StddevSamp.java | 6 +- .../main/java/org/jooq/impl/Substring.java | 6 +- .../java/org/jooq/impl/SubstringIndex.java | 6 +- jOOQ/src/main/java/org/jooq/impl/Sum.java | 6 +- .../java/org/jooq/impl/SysConnectByPath.java | 4 + .../main/java/org/jooq/impl/TableAlias.java | 7 +- .../main/java/org/jooq/impl/TableImpl.java | 7 +- jOOQ/src/main/java/org/jooq/impl/Tan.java | 6 +- jOOQ/src/main/java/org/jooq/impl/Tanh.java | 6 +- jOOQ/src/main/java/org/jooq/impl/ToChar.java | 6 +- jOOQ/src/main/java/org/jooq/impl/ToDate.java | 6 +- jOOQ/src/main/java/org/jooq/impl/ToHex.java | 6 +- .../main/java/org/jooq/impl/ToTimestamp.java | 6 +- .../main/java/org/jooq/impl/Translate.java | 6 +- jOOQ/src/main/java/org/jooq/impl/Trim.java | 6 +- jOOQ/src/main/java/org/jooq/impl/Trunc.java | 6 +- .../main/java/org/jooq/impl/TruncateImpl.java | 6 +- jOOQ/src/main/java/org/jooq/impl/Unique.java | 6 +- jOOQ/src/main/java/org/jooq/impl/Upper.java | 6 +- .../src/main/java/org/jooq/impl/UserImpl.java | 7 +- jOOQ/src/main/java/org/jooq/impl/VarPop.java | 6 +- jOOQ/src/main/java/org/jooq/impl/VarSamp.java | 6 +- .../main/java/org/jooq/impl/VariableImpl.java | 3 + .../main/java/org/jooq/impl/WidthBucket.java | 6 +- .../org/jooq/impl/WindowDefinitionImpl.java | 7 +- .../jooq/impl/WindowSpecificationImpl.java | 6 +- .../src/main/java/org/jooq/impl/WithImpl.java | 7 +- .../java/org/jooq/impl/XMLAttributesImpl.java | 7 +- .../main/java/org/jooq/impl/XMLComment.java | 6 +- .../main/java/org/jooq/impl/XMLElement.java | 7 +- .../main/java/org/jooq/impl/XMLExists.java | 7 +- .../main/java/org/jooq/impl/XMLForest.java | 6 +- .../src/main/java/org/jooq/impl/XMLParse.java | 7 +- .../src/main/java/org/jooq/impl/XMLQuery.java | 7 +- .../main/java/org/jooq/impl/Xmlconcat.java | 6 +- .../main/java/org/jooq/impl/Xmldocument.java | 4 + jOOQ/src/main/java/org/jooq/impl/Xmlpi.java | 6 +- .../main/java/org/jooq/impl/Xmlserialize.java | 6 +- 217 files changed, 1403 insertions(+), 536 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/Abs.java b/jOOQ/src/main/java/org/jooq/impl/Abs.java index 24651c475a..6bf04ce866 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Abs.java +++ b/jOOQ/src/main/java/org/jooq/impl/Abs.java @@ -134,11 +134,15 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $number(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractCondition.java b/jOOQ/src/main/java/org/jooq/impl/AbstractCondition.java index 5a5240b655..514eedcabd 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractCondition.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractCondition.java @@ -171,17 +171,6 @@ abstract class AbstractCondition extends AbstractQueryPart implements Condition return or(notExists(select)); } - static final Condition unwrapNot(Condition c, BiFunction function) { - boolean not = false; - - while (c instanceof Not) { - c = ((Not) c).condition; - not = !not; - } - - return function.apply(c, not); - } - // ------------------------------------------------------------------------- diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractLeadLag.java b/jOOQ/src/main/java/org/jooq/impl/AbstractLeadLag.java index d9604aa029..fda7bcb60f 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractLeadLag.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractLeadLag.java @@ -185,11 +185,15 @@ abstract class AbstractLeadLag extends AbstractWindowFunction { } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, field, offset, defaultValue, $windowSpecification(), $windowDefinition(), (f, o, def, s, d) -> constructor(f, o, def).$windowSpecification(s).$windowDefinition(d).$nullTreatment(nullTreatment), + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractRow.java b/jOOQ/src/main/java/org/jooq/impl/AbstractRow.java index c2bf1cc735..5578782f42 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractRow.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractRow.java @@ -440,8 +440,11 @@ abstract class AbstractRow extends AbstractQueryPart implement } @Override - public final MQueryPart replace(Function1 replacement) { - return QOM.replace(this, fields(), Tools::row0, replacement); + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { + return QOM.replace(this, fields(), Tools::row0, recurse, replacement); } } diff --git a/jOOQ/src/main/java/org/jooq/impl/Acos.java b/jOOQ/src/main/java/org/jooq/impl/Acos.java index 4a99cfb036..33ef14bda9 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Acos.java +++ b/jOOQ/src/main/java/org/jooq/impl/Acos.java @@ -150,11 +150,15 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $number(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/AlterDatabaseImpl.java b/jOOQ/src/main/java/org/jooq/impl/AlterDatabaseImpl.java index 9fa2d37585..45f920d258 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AlterDatabaseImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/AlterDatabaseImpl.java @@ -209,13 +209,17 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $database(), $ifExists(), $renameTo(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/AlterDomainImpl.java b/jOOQ/src/main/java/org/jooq/impl/AlterDomainImpl.java index 0a507bfdeb..958d6f548d 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AlterDomainImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/AlterDomainImpl.java @@ -528,7 +528,10 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $domain(), @@ -546,6 +549,7 @@ implements $cascade(), $renameConstraintTo(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/AlterIndexImpl.java b/jOOQ/src/main/java/org/jooq/impl/AlterIndexImpl.java index bc8ed33b67..86b2bb1a81 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AlterIndexImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/AlterIndexImpl.java @@ -298,7 +298,10 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $index(), @@ -306,6 +309,7 @@ implements $on(), $renameTo(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/AlterSchemaImpl.java b/jOOQ/src/main/java/org/jooq/impl/AlterSchemaImpl.java index f3f73dbfc7..8801a88cd8 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AlterSchemaImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/AlterSchemaImpl.java @@ -231,13 +231,17 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $schema(), $ifExists(), $renameTo(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/AlterSequenceImpl.java b/jOOQ/src/main/java/org/jooq/impl/AlterSequenceImpl.java index 42de3c5d9f..55b27d31f7 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AlterSequenceImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/AlterSequenceImpl.java @@ -612,7 +612,10 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $sequence(), @@ -630,6 +633,7 @@ implements $cache(), $noCache(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/AlterTypeImpl.java b/jOOQ/src/main/java/org/jooq/impl/AlterTypeImpl.java index fbc6ff8181..22e4ae8ec0 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AlterTypeImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/AlterTypeImpl.java @@ -272,7 +272,10 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $type(), @@ -282,6 +285,7 @@ implements $renameValue(), $renameValueTo(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/AlterViewImpl.java b/jOOQ/src/main/java/org/jooq/impl/AlterViewImpl.java index b5b499c714..38a7d28909 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AlterViewImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/AlterViewImpl.java @@ -315,7 +315,10 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $view(), @@ -323,6 +326,7 @@ implements $comment(), $renameTo(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/AnyValue.java b/jOOQ/src/main/java/org/jooq/impl/AnyValue.java index cef86d50c3..7b04ad8cd6 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AnyValue.java +++ b/jOOQ/src/main/java/org/jooq/impl/AnyValue.java @@ -157,11 +157,15 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $field(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/Array.java b/jOOQ/src/main/java/org/jooq/impl/Array.java index 747c48d239..b7a223f51d 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Array.java +++ b/jOOQ/src/main/java/org/jooq/impl/Array.java @@ -133,7 +133,10 @@ final class Array extends AbstractField implements MArray { } @Override - public final MQueryPart replace(Function1 replacement) { - return QOM.replace(this, fields, f -> new Array<>(asList((Field[]) f.fields)), replacement); + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { + return QOM.replace(this, fields, f -> new Array<>(asList((Field[]) f.fields)), recurse, replacement); } } diff --git a/jOOQ/src/main/java/org/jooq/impl/ArrayGet.java b/jOOQ/src/main/java/org/jooq/impl/ArrayGet.java index 7f04f30dd4..312267d2a0 100644 --- a/jOOQ/src/main/java/org/jooq/impl/ArrayGet.java +++ b/jOOQ/src/main/java/org/jooq/impl/ArrayGet.java @@ -173,12 +173,16 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $array(), $index(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/ArraySelect.java b/jOOQ/src/main/java/org/jooq/impl/ArraySelect.java index 6453e59d64..6190ebbe45 100644 --- a/jOOQ/src/main/java/org/jooq/impl/ArraySelect.java +++ b/jOOQ/src/main/java/org/jooq/impl/ArraySelect.java @@ -116,7 +116,10 @@ final class ArraySelect extends AbstractField implements MArrayQuery } @Override - public final MQueryPart replace(Function1 replacement) { - return QOM.replace(this, select, ArraySelect::new, replacement); + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { + return QOM.replace(this, select, ArraySelect::new, recurse, replacement); } } diff --git a/jOOQ/src/main/java/org/jooq/impl/Ascii.java b/jOOQ/src/main/java/org/jooq/impl/Ascii.java index ad45c96233..a84ad969f4 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Ascii.java +++ b/jOOQ/src/main/java/org/jooq/impl/Ascii.java @@ -144,11 +144,15 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $string(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/Asin.java b/jOOQ/src/main/java/org/jooq/impl/Asin.java index 0e80c077b8..b09c71c470 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Asin.java +++ b/jOOQ/src/main/java/org/jooq/impl/Asin.java @@ -146,11 +146,15 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $number(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/Assignment.java b/jOOQ/src/main/java/org/jooq/impl/Assignment.java index 23cf821cf1..99c5944a82 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Assignment.java +++ b/jOOQ/src/main/java/org/jooq/impl/Assignment.java @@ -177,6 +177,9 @@ package org.jooq.impl; + + + diff --git a/jOOQ/src/main/java/org/jooq/impl/AsteriskImpl.java b/jOOQ/src/main/java/org/jooq/impl/AsteriskImpl.java index 276c0f704c..5e456ef4f6 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AsteriskImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/AsteriskImpl.java @@ -136,7 +136,10 @@ final class AsteriskImpl extends AbstractQueryPart implements Asterisk, MAsteris } @Override - public final MQueryPart replace(Function1 replacement) { - return QOM.replace(this, fields, AsteriskImpl::new, replacement); + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { + return QOM.replace(this, fields, AsteriskImpl::new, recurse, replacement); } } diff --git a/jOOQ/src/main/java/org/jooq/impl/Atan.java b/jOOQ/src/main/java/org/jooq/impl/Atan.java index c2da6a0642..575d5739ef 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Atan.java +++ b/jOOQ/src/main/java/org/jooq/impl/Atan.java @@ -141,11 +141,15 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $number(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/Atan2.java b/jOOQ/src/main/java/org/jooq/impl/Atan2.java index 0c89d3dce9..b7b6d805be 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Atan2.java +++ b/jOOQ/src/main/java/org/jooq/impl/Atan2.java @@ -158,12 +158,16 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $x(), $y(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/Avg.java b/jOOQ/src/main/java/org/jooq/impl/Avg.java index f1340a21b4..d2065172c3 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Avg.java +++ b/jOOQ/src/main/java/org/jooq/impl/Avg.java @@ -119,12 +119,16 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $field(), $distinct(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/BetweenCondition.java b/jOOQ/src/main/java/org/jooq/impl/BetweenCondition.java index b7e0f51982..bb749b43af 100644 --- a/jOOQ/src/main/java/org/jooq/impl/BetweenCondition.java +++ b/jOOQ/src/main/java/org/jooq/impl/BetweenCondition.java @@ -78,6 +78,7 @@ import static org.jooq.impl.Tools.nullSafe; import static org.jooq.impl.Tools.nullableIf; import java.util.Set; +import java.util.function.Predicate; import org.jooq.BetweenAndStep; import org.jooq.Clause; @@ -189,7 +190,10 @@ final class BetweenCondition extends AbstractCondition implements BetweenAndS // ------------------------------------------------------------------------- @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, field, @@ -202,6 +206,7 @@ final class BetweenCondition extends AbstractCondition implements BetweenAndS : symmetric ? Field::betweenSymmetric : Field::between, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/BitAndAgg.java b/jOOQ/src/main/java/org/jooq/impl/BitAndAgg.java index f8f977cc72..5b580e18ac 100644 --- a/jOOQ/src/main/java/org/jooq/impl/BitAndAgg.java +++ b/jOOQ/src/main/java/org/jooq/impl/BitAndAgg.java @@ -302,11 +302,15 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $value(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/BitCount.java b/jOOQ/src/main/java/org/jooq/impl/BitCount.java index 63276c72ff..949f2e2c7f 100644 --- a/jOOQ/src/main/java/org/jooq/impl/BitCount.java +++ b/jOOQ/src/main/java/org/jooq/impl/BitCount.java @@ -481,11 +481,15 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $number(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/BitLength.java b/jOOQ/src/main/java/org/jooq/impl/BitLength.java index 091d6c863d..eded2e1da7 100644 --- a/jOOQ/src/main/java/org/jooq/impl/BitLength.java +++ b/jOOQ/src/main/java/org/jooq/impl/BitLength.java @@ -165,11 +165,15 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $string(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/BitOrAgg.java b/jOOQ/src/main/java/org/jooq/impl/BitOrAgg.java index 604f127165..39093e20ac 100644 --- a/jOOQ/src/main/java/org/jooq/impl/BitOrAgg.java +++ b/jOOQ/src/main/java/org/jooq/impl/BitOrAgg.java @@ -302,11 +302,15 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $value(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/BitXorAgg.java b/jOOQ/src/main/java/org/jooq/impl/BitXorAgg.java index 7336c2d0b5..88cbdd04d7 100644 --- a/jOOQ/src/main/java/org/jooq/impl/BitXorAgg.java +++ b/jOOQ/src/main/java/org/jooq/impl/BitXorAgg.java @@ -307,11 +307,15 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $value(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/BlockImpl.java b/jOOQ/src/main/java/org/jooq/impl/BlockImpl.java index 8e15bd1f29..b24de64c6b 100644 --- a/jOOQ/src/main/java/org/jooq/impl/BlockImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/BlockImpl.java @@ -612,7 +612,10 @@ final class BlockImpl extends AbstractRowCountQuery implements Block, MBlock { } @Override - public final MQueryPart replace(Function1 replacement) { - return QOM.replace(this, statements, s -> new BlockImpl(configuration(), statements, alwaysWrapInBeginEnd), replacement); + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { + return QOM.replace(this, statements, s -> new BlockImpl(configuration(), statements, alwaysWrapInBeginEnd), recurse, replacement); } } diff --git a/jOOQ/src/main/java/org/jooq/impl/BoolAnd.java b/jOOQ/src/main/java/org/jooq/impl/BoolAnd.java index e191404258..fc804777c2 100644 --- a/jOOQ/src/main/java/org/jooq/impl/BoolAnd.java +++ b/jOOQ/src/main/java/org/jooq/impl/BoolAnd.java @@ -148,11 +148,15 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $condition(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/BoolOr.java b/jOOQ/src/main/java/org/jooq/impl/BoolOr.java index 012bfa199d..ba424c5ec8 100644 --- a/jOOQ/src/main/java/org/jooq/impl/BoolOr.java +++ b/jOOQ/src/main/java/org/jooq/impl/BoolOr.java @@ -149,11 +149,15 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $condition(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/Call.java b/jOOQ/src/main/java/org/jooq/impl/Call.java index f734cb4ab7..a5bc6349c5 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Call.java +++ b/jOOQ/src/main/java/org/jooq/impl/Call.java @@ -208,6 +208,10 @@ package org.jooq.impl; + + + + diff --git a/jOOQ/src/main/java/org/jooq/impl/Cardinality.java b/jOOQ/src/main/java/org/jooq/impl/Cardinality.java index a8f0812629..657ad5389b 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Cardinality.java +++ b/jOOQ/src/main/java/org/jooq/impl/Cardinality.java @@ -134,11 +134,15 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $array(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/CaseConditionStepImpl.java b/jOOQ/src/main/java/org/jooq/impl/CaseConditionStepImpl.java index eac23c7b9e..37892514c9 100644 --- a/jOOQ/src/main/java/org/jooq/impl/CaseConditionStepImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/CaseConditionStepImpl.java @@ -63,6 +63,7 @@ import org.jooq.Field; // ... import org.jooq.Record1; import org.jooq.Select; +import org.jooq.impl.QOM.MSelect; import org.jooq.impl.QOM.UNotYetImplemented; /** @@ -228,6 +229,12 @@ final class CaseConditionStepImpl extends AbstractField implements CaseCon + + + + + + ctx.formatSeparator() .visit(K_WHEN).sql(' ').visit(c).sql(' ') .visit(K_THEN).sql(' ').visit(results.get(i)); diff --git a/jOOQ/src/main/java/org/jooq/impl/Cast.java b/jOOQ/src/main/java/org/jooq/impl/Cast.java index 38eda4e301..403e567fba 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Cast.java +++ b/jOOQ/src/main/java/org/jooq/impl/Cast.java @@ -63,6 +63,7 @@ import java.util.function.Predicate; import org.jooq.Context; import org.jooq.DataType; import org.jooq.Field; +import org.jooq.Function1; import org.jooq.Keyword; import org.jooq.LanguageContext; // ... @@ -360,12 +361,16 @@ final class Cast extends AbstractField implements MCast { } @Override - public final MQueryPart replace(org.jooq.Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $field(), $dataType(), Cast::new, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/CatalogImpl.java b/jOOQ/src/main/java/org/jooq/impl/CatalogImpl.java index dece30adf9..71d0914539 100644 --- a/jOOQ/src/main/java/org/jooq/impl/CatalogImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/CatalogImpl.java @@ -137,8 +137,11 @@ public class CatalogImpl extends AbstractNamed implements Catalog { } @Override - public final MQueryPart replace(Function1 replacement) { - return QOM.replace(this, getQualifiedName(), getCommentPart(), CatalogImpl::new, replacement); + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { + return QOM.replace(this, getQualifiedName(), getCommentPart(), CatalogImpl::new, recurse, replacement); } // ------------------------------------------------------------------------ diff --git a/jOOQ/src/main/java/org/jooq/impl/Ceil.java b/jOOQ/src/main/java/org/jooq/impl/Ceil.java index 5acaf416c5..1ad21fd72c 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Ceil.java +++ b/jOOQ/src/main/java/org/jooq/impl/Ceil.java @@ -153,11 +153,15 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $value(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/CharLength.java b/jOOQ/src/main/java/org/jooq/impl/CharLength.java index f678e180da..1d7bf6ed90 100644 --- a/jOOQ/src/main/java/org/jooq/impl/CharLength.java +++ b/jOOQ/src/main/java/org/jooq/impl/CharLength.java @@ -154,11 +154,15 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $string(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/Chr.java b/jOOQ/src/main/java/org/jooq/impl/Chr.java index 6ce3c5f519..5bf42df33b 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Chr.java +++ b/jOOQ/src/main/java/org/jooq/impl/Chr.java @@ -154,11 +154,15 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $number(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/Coerce.java b/jOOQ/src/main/java/org/jooq/impl/Coerce.java index 9897fd46f8..b356cd8dd2 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Coerce.java +++ b/jOOQ/src/main/java/org/jooq/impl/Coerce.java @@ -44,6 +44,7 @@ import org.jooq.Clause; import org.jooq.Context; import org.jooq.DataType; import org.jooq.Field; +import org.jooq.Function1; import org.jooq.Name; import org.jooq.impl.QOM.MCoerce; import org.jooq.impl.QOM.MQueryPart; @@ -130,12 +131,16 @@ final class Coerce extends AbstractField implements MCoerce { } @Override - public final MQueryPart replace(org.jooq.Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $field(), $dataType(), Coerce::new, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/CollatedField.java b/jOOQ/src/main/java/org/jooq/impl/CollatedField.java index 0474eb6845..aa14f7fe84 100644 --- a/jOOQ/src/main/java/org/jooq/impl/CollatedField.java +++ b/jOOQ/src/main/java/org/jooq/impl/CollatedField.java @@ -103,8 +103,11 @@ final class CollatedField extends AbstractField implements MCollated { } @Override - public final MQueryPart replace(Function1 replacement) { - return QOM.replace(this, field, collation, CollatedField::new, replacement); + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { + return QOM.replace(this, field, collation, CollatedField::new, recurse, replacement); } @Override diff --git a/jOOQ/src/main/java/org/jooq/impl/CommentOnImpl.java b/jOOQ/src/main/java/org/jooq/impl/CommentOnImpl.java index 2d0964ae4a..3d6b398030 100644 --- a/jOOQ/src/main/java/org/jooq/impl/CommentOnImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/CommentOnImpl.java @@ -310,7 +310,10 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $table(), @@ -318,6 +321,7 @@ implements $field(), $comment(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/CommonTableExpressionImpl.java b/jOOQ/src/main/java/org/jooq/impl/CommonTableExpressionImpl.java index 0273a154d9..cdeeebd3c2 100644 --- a/jOOQ/src/main/java/org/jooq/impl/CommonTableExpressionImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/CommonTableExpressionImpl.java @@ -204,7 +204,10 @@ final class CommonTableExpressionImpl extends AbstractTable } @Override - public final MQueryPart replace(Function1 replacement) { - return QOM.replace(this, name, query, materialized, CommonTableExpressionImpl::new, replacement); + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { + return QOM.replace(this, name, query, materialized, CommonTableExpressionImpl::new, recurse, replacement); } } diff --git a/jOOQ/src/main/java/org/jooq/impl/ConditionAsField.java b/jOOQ/src/main/java/org/jooq/impl/ConditionAsField.java index 8d197594fc..994af42610 100644 --- a/jOOQ/src/main/java/org/jooq/impl/ConditionAsField.java +++ b/jOOQ/src/main/java/org/jooq/impl/ConditionAsField.java @@ -157,11 +157,15 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $condition(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/ConnectByRoot.java b/jOOQ/src/main/java/org/jooq/impl/ConnectByRoot.java index 8a56763376..99f0a9af32 100644 --- a/jOOQ/src/main/java/org/jooq/impl/ConnectByRoot.java +++ b/jOOQ/src/main/java/org/jooq/impl/ConnectByRoot.java @@ -161,6 +161,10 @@ package org.jooq.impl; + + + + diff --git a/jOOQ/src/main/java/org/jooq/impl/Continue.java b/jOOQ/src/main/java/org/jooq/impl/Continue.java index 871c3d59aa..e0eac43726 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Continue.java +++ b/jOOQ/src/main/java/org/jooq/impl/Continue.java @@ -187,6 +187,9 @@ package org.jooq.impl; + + + diff --git a/jOOQ/src/main/java/org/jooq/impl/ConvertDateTime.java b/jOOQ/src/main/java/org/jooq/impl/ConvertDateTime.java index 7712972863..d34ab551a4 100644 --- a/jOOQ/src/main/java/org/jooq/impl/ConvertDateTime.java +++ b/jOOQ/src/main/java/org/jooq/impl/ConvertDateTime.java @@ -229,6 +229,11 @@ package org.jooq.impl; + + + + + diff --git a/jOOQ/src/main/java/org/jooq/impl/Corr.java b/jOOQ/src/main/java/org/jooq/impl/Corr.java index 7133a84a1c..690cc669ef 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Corr.java +++ b/jOOQ/src/main/java/org/jooq/impl/Corr.java @@ -151,12 +151,16 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $y(), $x(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/Cos.java b/jOOQ/src/main/java/org/jooq/impl/Cos.java index a29746c246..da833da62e 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Cos.java +++ b/jOOQ/src/main/java/org/jooq/impl/Cos.java @@ -135,11 +135,15 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $number(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/Cosh.java b/jOOQ/src/main/java/org/jooq/impl/Cosh.java index 1e1a405160..bcf2d5821d 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Cosh.java +++ b/jOOQ/src/main/java/org/jooq/impl/Cosh.java @@ -162,11 +162,15 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $number(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/Cot.java b/jOOQ/src/main/java/org/jooq/impl/Cot.java index c594bc6dda..785852fff6 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Cot.java +++ b/jOOQ/src/main/java/org/jooq/impl/Cot.java @@ -146,11 +146,15 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $number(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/Coth.java b/jOOQ/src/main/java/org/jooq/impl/Coth.java index 154bc711e2..4053104aec 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Coth.java +++ b/jOOQ/src/main/java/org/jooq/impl/Coth.java @@ -138,11 +138,15 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $number(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/Count.java b/jOOQ/src/main/java/org/jooq/impl/Count.java index c940c4742c..39fec5991c 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Count.java +++ b/jOOQ/src/main/java/org/jooq/impl/Count.java @@ -117,12 +117,16 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $field(), $distinct(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/CountTable.java b/jOOQ/src/main/java/org/jooq/impl/CountTable.java index 2ad599f694..d568890604 100644 --- a/jOOQ/src/main/java/org/jooq/impl/CountTable.java +++ b/jOOQ/src/main/java/org/jooq/impl/CountTable.java @@ -115,12 +115,16 @@ final class CountTable extends AbstractAggregateFunction implements MCo } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $table(), distinct, CountTable::new, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/CovarPop.java b/jOOQ/src/main/java/org/jooq/impl/CovarPop.java index 7cf0e74171..e56aec6bb8 100644 --- a/jOOQ/src/main/java/org/jooq/impl/CovarPop.java +++ b/jOOQ/src/main/java/org/jooq/impl/CovarPop.java @@ -151,12 +151,16 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $y(), $x(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/CovarSamp.java b/jOOQ/src/main/java/org/jooq/impl/CovarSamp.java index 3846f71997..696344fa35 100644 --- a/jOOQ/src/main/java/org/jooq/impl/CovarSamp.java +++ b/jOOQ/src/main/java/org/jooq/impl/CovarSamp.java @@ -151,12 +151,16 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $y(), $x(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/CreateDatabaseImpl.java b/jOOQ/src/main/java/org/jooq/impl/CreateDatabaseImpl.java index 2bf2c14d74..ca1edf0e80 100644 --- a/jOOQ/src/main/java/org/jooq/impl/CreateDatabaseImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/CreateDatabaseImpl.java @@ -147,12 +147,16 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $database(), $ifNotExists(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/CreateDomainImpl.java b/jOOQ/src/main/java/org/jooq/impl/CreateDomainImpl.java index 1a5b048163..0f8a291266 100644 --- a/jOOQ/src/main/java/org/jooq/impl/CreateDomainImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/CreateDomainImpl.java @@ -261,7 +261,10 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $domain(), @@ -270,6 +273,7 @@ implements $default_(), $constraints(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/CreateFunctionImpl.java b/jOOQ/src/main/java/org/jooq/impl/CreateFunctionImpl.java index 4f35f8e7dd..80334f13f8 100644 --- a/jOOQ/src/main/java/org/jooq/impl/CreateFunctionImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/CreateFunctionImpl.java @@ -447,6 +447,10 @@ package org.jooq.impl; + + + + diff --git a/jOOQ/src/main/java/org/jooq/impl/CreateIndexImpl.java b/jOOQ/src/main/java/org/jooq/impl/CreateIndexImpl.java index 6d47a76b15..11c84acc2a 100644 --- a/jOOQ/src/main/java/org/jooq/impl/CreateIndexImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/CreateIndexImpl.java @@ -462,7 +462,10 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $unique(), @@ -474,6 +477,7 @@ implements $where(), $excludeNullKeys(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/CreateProcedureImpl.java b/jOOQ/src/main/java/org/jooq/impl/CreateProcedureImpl.java index d3b4958d42..4a6498a68b 100644 --- a/jOOQ/src/main/java/org/jooq/impl/CreateProcedureImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/CreateProcedureImpl.java @@ -390,6 +390,10 @@ package org.jooq.impl; + + + + diff --git a/jOOQ/src/main/java/org/jooq/impl/CreateSchemaImpl.java b/jOOQ/src/main/java/org/jooq/impl/CreateSchemaImpl.java index f734d7fece..06685b6534 100644 --- a/jOOQ/src/main/java/org/jooq/impl/CreateSchemaImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/CreateSchemaImpl.java @@ -202,12 +202,16 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $schema(), $ifNotExists(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/CreateSequenceImpl.java b/jOOQ/src/main/java/org/jooq/impl/CreateSequenceImpl.java index 8a95bcc850..4d1c3e15d7 100644 --- a/jOOQ/src/main/java/org/jooq/impl/CreateSequenceImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/CreateSequenceImpl.java @@ -440,7 +440,10 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $sequence(), @@ -456,6 +459,7 @@ implements $cache(), $noCache(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/CreateTriggerImpl.java b/jOOQ/src/main/java/org/jooq/impl/CreateTriggerImpl.java index 557fa4aca1..7a29304de4 100644 --- a/jOOQ/src/main/java/org/jooq/impl/CreateTriggerImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/CreateTriggerImpl.java @@ -725,6 +725,10 @@ package org.jooq.impl; + + + + diff --git a/jOOQ/src/main/java/org/jooq/impl/CreateTypeImpl.java b/jOOQ/src/main/java/org/jooq/impl/CreateTypeImpl.java index b677088f5d..4e81e78015 100644 --- a/jOOQ/src/main/java/org/jooq/impl/CreateTypeImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/CreateTypeImpl.java @@ -148,7 +148,10 @@ final class CreateTypeImpl extends AbstractDDLQuery implements } @Override - public final MQueryPart replace(Function1 replacement) { - return QOM.replace(this, type, values, (t, v) -> new CreateTypeImpl(configuration(), t).asEnum(v), replacement); + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { + return QOM.replace(this, type, values, (t, v) -> new CreateTypeImpl(configuration(), t).asEnum(v), recurse, replacement); } } diff --git a/jOOQ/src/main/java/org/jooq/impl/CreateViewImpl.java b/jOOQ/src/main/java/org/jooq/impl/CreateViewImpl.java index 34c9634329..21a1153eaa 100644 --- a/jOOQ/src/main/java/org/jooq/impl/CreateViewImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/CreateViewImpl.java @@ -323,11 +323,14 @@ final class CreateViewImpl extends AbstractDDLQuery implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace(this, view, fields, select, (v, f, s) -> { CreateViewImpl r = new CreateViewImpl<>(configuration(), v, f, ifNotExists, orReplace); r.select = s; return r; - }, replacement); + }, recurse, replacement); } } diff --git a/jOOQ/src/main/java/org/jooq/impl/CumeDist.java b/jOOQ/src/main/java/org/jooq/impl/CumeDist.java index 16fcfb7aa3..acf4afe18e 100644 --- a/jOOQ/src/main/java/org/jooq/impl/CumeDist.java +++ b/jOOQ/src/main/java/org/jooq/impl/CumeDist.java @@ -108,11 +108,15 @@ final class CumeDist extends AbstractWindowFunction implements MCume } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $windowSpecification(), $windowDefinition(), (s, d) -> new RowNumber().$windowSpecification(s).$windowDefinition(d), + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/DataChangeDeltaTable.java b/jOOQ/src/main/java/org/jooq/impl/DataChangeDeltaTable.java index 6b1feffd68..997593018a 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DataChangeDeltaTable.java +++ b/jOOQ/src/main/java/org/jooq/impl/DataChangeDeltaTable.java @@ -210,7 +210,10 @@ final class DataChangeDeltaTable extends AbstractTable impl } @Override - public final MQueryPart replace(Function1 replacement) { - return QOM.replace(this, resultOption, query, DataChangeDeltaTable::new, replacement); + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { + return QOM.replace(this, resultOption, query, DataChangeDeltaTable::new, recurse, replacement); } } diff --git a/jOOQ/src/main/java/org/jooq/impl/DateAdd.java b/jOOQ/src/main/java/org/jooq/impl/DateAdd.java index e483bf45f3..12a742fc39 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DateAdd.java +++ b/jOOQ/src/main/java/org/jooq/impl/DateAdd.java @@ -456,13 +456,17 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $date(), $interval(), $datePart(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/DeclarationImpl.java b/jOOQ/src/main/java/org/jooq/impl/DeclarationImpl.java index 3ff29b5348..7712972863 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DeclarationImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/DeclarationImpl.java @@ -228,6 +228,9 @@ package org.jooq.impl; + + + diff --git a/jOOQ/src/main/java/org/jooq/impl/DefaultAggregateFunction.java b/jOOQ/src/main/java/org/jooq/impl/DefaultAggregateFunction.java index dc7f76d070..565a0c6f9d 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DefaultAggregateFunction.java +++ b/jOOQ/src/main/java/org/jooq/impl/DefaultAggregateFunction.java @@ -40,6 +40,8 @@ package org.jooq.impl; import static org.jooq.impl.Tools.EMPTY_FIELD; +import java.util.function.Predicate; + import org.jooq.DataType; import org.jooq.Field; import org.jooq.Function1; @@ -79,7 +81,10 @@ final class DefaultAggregateFunction extends AbstractAggregateFunction { // ------------------------------------------------------------------------- @Override - public final MQueryPart replace(Function1 replacement) { - return QOM.replace(this, arguments, a -> new DefaultAggregateFunction<>(distinct, getQualifiedName(), getDataType(), a.toArray(EMPTY_FIELD)), replacement); + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { + return QOM.replace(this, arguments, a -> new DefaultAggregateFunction<>(distinct, getQualifiedName(), getDataType(), a.toArray(EMPTY_FIELD)), recurse, replacement); } } diff --git a/jOOQ/src/main/java/org/jooq/impl/Degrees.java b/jOOQ/src/main/java/org/jooq/impl/Degrees.java index 68a3737f22..36aad124bb 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Degrees.java +++ b/jOOQ/src/main/java/org/jooq/impl/Degrees.java @@ -162,11 +162,15 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $radians(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/DenseRank.java b/jOOQ/src/main/java/org/jooq/impl/DenseRank.java index 0206a49d88..f29b5dde48 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DenseRank.java +++ b/jOOQ/src/main/java/org/jooq/impl/DenseRank.java @@ -88,11 +88,15 @@ final class DenseRank extends AbstractWindowFunction implements MRank { } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $windowSpecification(), $windowDefinition(), (s, d) -> new RowNumber().$windowSpecification(s).$windowDefinition(d), + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/DerivedColumnListImpl.java b/jOOQ/src/main/java/org/jooq/impl/DerivedColumnListImpl.java index 9248980823..e3dd5185a0 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DerivedColumnListImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/DerivedColumnListImpl.java @@ -203,7 +203,10 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { - return QOM.replace(this, name, fieldNames, DerivedColumnListImpl::new, replacement); + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { + return QOM.replace(this, name, fieldNames, DerivedColumnListImpl::new, recurse, replacement); } } diff --git a/jOOQ/src/main/java/org/jooq/impl/Digits.java b/jOOQ/src/main/java/org/jooq/impl/Digits.java index 7d79b6f7cd..1c7533280c 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Digits.java +++ b/jOOQ/src/main/java/org/jooq/impl/Digits.java @@ -151,11 +151,15 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $value(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/DropDatabaseImpl.java b/jOOQ/src/main/java/org/jooq/impl/DropDatabaseImpl.java index 430042cfe9..6d0ed1bce5 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DropDatabaseImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/DropDatabaseImpl.java @@ -147,12 +147,16 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $database(), $ifExists(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/DropDomainImpl.java b/jOOQ/src/main/java/org/jooq/impl/DropDomainImpl.java index dfcd9b06c5..e5cc1f3ef0 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DropDomainImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/DropDomainImpl.java @@ -201,13 +201,17 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $domain(), $ifExists(), $cascade(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/DropFunctionImpl.java b/jOOQ/src/main/java/org/jooq/impl/DropFunctionImpl.java index 6b7c3ba98a..826caabe35 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DropFunctionImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/DropFunctionImpl.java @@ -169,6 +169,10 @@ package org.jooq.impl; + + + + diff --git a/jOOQ/src/main/java/org/jooq/impl/DropIndexImpl.java b/jOOQ/src/main/java/org/jooq/impl/DropIndexImpl.java index eff9ffb99a..9e019bc9dc 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DropIndexImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/DropIndexImpl.java @@ -241,7 +241,10 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $index(), @@ -249,6 +252,7 @@ implements $on(), $cascade(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/DropProcedureImpl.java b/jOOQ/src/main/java/org/jooq/impl/DropProcedureImpl.java index 6b7c3ba98a..826caabe35 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DropProcedureImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/DropProcedureImpl.java @@ -169,6 +169,10 @@ package org.jooq.impl; + + + + diff --git a/jOOQ/src/main/java/org/jooq/impl/DropSchemaImpl.java b/jOOQ/src/main/java/org/jooq/impl/DropSchemaImpl.java index 8b6762c4c0..103c6e2c16 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DropSchemaImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/DropSchemaImpl.java @@ -236,13 +236,17 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $schema(), $ifExists(), $cascade(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/DropSequenceImpl.java b/jOOQ/src/main/java/org/jooq/impl/DropSequenceImpl.java index 845f534571..b6a3c75385 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DropSequenceImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/DropSequenceImpl.java @@ -174,12 +174,16 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $sequence(), $ifExists(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/DropTableImpl.java b/jOOQ/src/main/java/org/jooq/impl/DropTableImpl.java index a4bbc7aa4a..29dad88f3e 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DropTableImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/DropTableImpl.java @@ -224,7 +224,10 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $temporary(), @@ -232,6 +235,7 @@ implements $ifExists(), $cascade(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/DropTriggerImpl.java b/jOOQ/src/main/java/org/jooq/impl/DropTriggerImpl.java index 723d3df8d4..068797ad35 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DropTriggerImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/DropTriggerImpl.java @@ -170,6 +170,10 @@ package org.jooq.impl; + + + + diff --git a/jOOQ/src/main/java/org/jooq/impl/DropTypeImpl.java b/jOOQ/src/main/java/org/jooq/impl/DropTypeImpl.java index b0ae3e4ba0..4cec48c68f 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DropTypeImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/DropTypeImpl.java @@ -145,11 +145,14 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace(this, type, t -> { DropTypeImpl r = new DropTypeImpl(configuration(), t, ifExists); r.cascade = cascade; return r; - }, replacement); + }, recurse, replacement); } } diff --git a/jOOQ/src/main/java/org/jooq/impl/DropViewImpl.java b/jOOQ/src/main/java/org/jooq/impl/DropViewImpl.java index f9a0b238bf..a96f89cd51 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DropViewImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/DropViewImpl.java @@ -161,12 +161,16 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $view(), $ifExists(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/Execute.java b/jOOQ/src/main/java/org/jooq/impl/Execute.java index 7a6937b26f..0e86c28b4d 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Execute.java +++ b/jOOQ/src/main/java/org/jooq/impl/Execute.java @@ -188,6 +188,10 @@ package org.jooq.impl; + + + + diff --git a/jOOQ/src/main/java/org/jooq/impl/Exists.java b/jOOQ/src/main/java/org/jooq/impl/Exists.java index 8bd54bfe5f..64b660ba83 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Exists.java +++ b/jOOQ/src/main/java/org/jooq/impl/Exists.java @@ -147,11 +147,15 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $query(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/Exit.java b/jOOQ/src/main/java/org/jooq/impl/Exit.java index 871c3d59aa..e0eac43726 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Exit.java +++ b/jOOQ/src/main/java/org/jooq/impl/Exit.java @@ -187,6 +187,9 @@ package org.jooq.impl; + + + diff --git a/jOOQ/src/main/java/org/jooq/impl/Exp.java b/jOOQ/src/main/java/org/jooq/impl/Exp.java index 3c296355c0..28e5cba4e9 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Exp.java +++ b/jOOQ/src/main/java/org/jooq/impl/Exp.java @@ -146,11 +146,15 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $value(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/Extract.java b/jOOQ/src/main/java/org/jooq/impl/Extract.java index 902fb966b8..d9af9839b7 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Extract.java +++ b/jOOQ/src/main/java/org/jooq/impl/Extract.java @@ -516,7 +516,10 @@ final class Extract extends AbstractField implements MExtract { } @Override - public final MQueryPart replace(Function1 replacement) { - return QOM.replace(this, field, datePart, Extract::new, replacement); + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { + return QOM.replace(this, field, datePart, Extract::new, recurse, replacement); } } diff --git a/jOOQ/src/main/java/org/jooq/impl/FieldAlias.java b/jOOQ/src/main/java/org/jooq/impl/FieldAlias.java index 93d9ed0eda..a4ed88533c 100644 --- a/jOOQ/src/main/java/org/jooq/impl/FieldAlias.java +++ b/jOOQ/src/main/java/org/jooq/impl/FieldAlias.java @@ -126,7 +126,10 @@ final class FieldAlias extends AbstractField implements MFieldAlias { } @Override - public final MQueryPart replace(Function1 replacement) { - return QOM.replace(this, $field(), $alias(), FieldAlias::new, replacement); + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { + return QOM.replace(this, $field(), $alias(), FieldAlias::new, recurse, replacement); } } diff --git a/jOOQ/src/main/java/org/jooq/impl/FieldCondition.java b/jOOQ/src/main/java/org/jooq/impl/FieldCondition.java index fc24f6f2c5..45c788a79c 100644 --- a/jOOQ/src/main/java/org/jooq/impl/FieldCondition.java +++ b/jOOQ/src/main/java/org/jooq/impl/FieldCondition.java @@ -144,11 +144,15 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $field(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/FirstValue.java b/jOOQ/src/main/java/org/jooq/impl/FirstValue.java index 555976e0c5..1661c9a878 100644 --- a/jOOQ/src/main/java/org/jooq/impl/FirstValue.java +++ b/jOOQ/src/main/java/org/jooq/impl/FirstValue.java @@ -106,11 +106,15 @@ final class FirstValue extends AbstractWindowFunction implements MFirstVal } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, field, $windowSpecification(), $windowDefinition(), (f, s, d) -> new FirstValue<>(f).$windowSpecification(s).$windowDefinition(d).$nullTreatment(nullTreatment), + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/Floor.java b/jOOQ/src/main/java/org/jooq/impl/Floor.java index d126b7fcdf..496b54c0b4 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Floor.java +++ b/jOOQ/src/main/java/org/jooq/impl/Floor.java @@ -141,11 +141,15 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $value(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/Function.java b/jOOQ/src/main/java/org/jooq/impl/Function.java index 73741d22c8..7ab2e0c1a2 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Function.java +++ b/jOOQ/src/main/java/org/jooq/impl/Function.java @@ -95,11 +95,15 @@ final class Function extends AbstractField implements MFunction { } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $args(), a -> new Function<>(getQualifiedName(), getDataType(), a.toArray(EMPTY_FIELD)), + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/Function1.java b/jOOQ/src/main/java/org/jooq/impl/Function1.java index 7093d00cf5..0da250bb94 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Function1.java +++ b/jOOQ/src/main/java/org/jooq/impl/Function1.java @@ -87,11 +87,15 @@ final class Function1 extends AbstractField implements MFunction { } @Override - public final MQueryPart replace(org.jooq.Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + org.jooq.Function1 replacement + ) { return QOM.replace( this, argument, a -> new Function1<>(getQualifiedName(), getDataType(), a), + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/Goto.java b/jOOQ/src/main/java/org/jooq/impl/Goto.java index 9bc6ca4dc5..6e5bf052e2 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Goto.java +++ b/jOOQ/src/main/java/org/jooq/impl/Goto.java @@ -160,6 +160,10 @@ package org.jooq.impl; + + + + diff --git a/jOOQ/src/main/java/org/jooq/impl/GrantImpl.java b/jOOQ/src/main/java/org/jooq/impl/GrantImpl.java index caa0b4965a..141721cff3 100644 --- a/jOOQ/src/main/java/org/jooq/impl/GrantImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/GrantImpl.java @@ -255,7 +255,10 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $privileges(), @@ -264,6 +267,7 @@ implements $toPublic(), $withGrantOption(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/JSONArray.java b/jOOQ/src/main/java/org/jooq/impl/JSONArray.java index 0ae6fb063b..0c9b228095 100644 --- a/jOOQ/src/main/java/org/jooq/impl/JSONArray.java +++ b/jOOQ/src/main/java/org/jooq/impl/JSONArray.java @@ -271,7 +271,10 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $type(), @@ -279,6 +282,7 @@ implements $onNull(), $returning(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/JSONEntryImpl.java b/jOOQ/src/main/java/org/jooq/impl/JSONEntryImpl.java index 1380fa8907..d0989aedac 100644 --- a/jOOQ/src/main/java/org/jooq/impl/JSONEntryImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/JSONEntryImpl.java @@ -302,7 +302,10 @@ final class JSONEntryImpl extends AbstractQueryPart implements JSONEntry, } @Override - public final MQueryPart replace(Function1 replacement) { - return QOM.replace(this, key, value, JSONEntryImpl::new, replacement); + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { + return QOM.replace(this, key, value, JSONEntryImpl::new, recurse, replacement); } } diff --git a/jOOQ/src/main/java/org/jooq/impl/JSONObject.java b/jOOQ/src/main/java/org/jooq/impl/JSONObject.java index d4b5c3a515..d295179d29 100644 --- a/jOOQ/src/main/java/org/jooq/impl/JSONObject.java +++ b/jOOQ/src/main/java/org/jooq/impl/JSONObject.java @@ -303,7 +303,10 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $type(), @@ -311,6 +314,7 @@ implements $onNull(), $returning(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/LTrim.java b/jOOQ/src/main/java/org/jooq/impl/LTrim.java index c53fdb496f..1fd87a1799 100644 --- a/jOOQ/src/main/java/org/jooq/impl/LTrim.java +++ b/jOOQ/src/main/java/org/jooq/impl/LTrim.java @@ -186,12 +186,16 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $string(), $characters(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/LabelImpl.java b/jOOQ/src/main/java/org/jooq/impl/LabelImpl.java index 7cc0616fdd..8d84f40758 100644 --- a/jOOQ/src/main/java/org/jooq/impl/LabelImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/LabelImpl.java @@ -104,6 +104,9 @@ import java.util.function.Predicate; + + + diff --git a/jOOQ/src/main/java/org/jooq/impl/LabelledStatement.java b/jOOQ/src/main/java/org/jooq/impl/LabelledStatement.java index 5fc519b780..9a1264a04e 100644 --- a/jOOQ/src/main/java/org/jooq/impl/LabelledStatement.java +++ b/jOOQ/src/main/java/org/jooq/impl/LabelledStatement.java @@ -119,6 +119,9 @@ import java.util.function.Predicate; + + + diff --git a/jOOQ/src/main/java/org/jooq/impl/LastValue.java b/jOOQ/src/main/java/org/jooq/impl/LastValue.java index 932f6c76cc..afdba0ad32 100644 --- a/jOOQ/src/main/java/org/jooq/impl/LastValue.java +++ b/jOOQ/src/main/java/org/jooq/impl/LastValue.java @@ -106,11 +106,15 @@ final class LastValue extends AbstractWindowFunction implements MLastValue } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, field, $windowSpecification(), $windowDefinition(), (f, s, d) -> new FirstValue<>(f).$windowSpecification(s).$windowDefinition(d).$nullTreatment(nullTreatment), + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/LazyCatalog.java b/jOOQ/src/main/java/org/jooq/impl/LazyCatalog.java index b300a1b341..ef57e4e05c 100644 --- a/jOOQ/src/main/java/org/jooq/impl/LazyCatalog.java +++ b/jOOQ/src/main/java/org/jooq/impl/LazyCatalog.java @@ -129,7 +129,10 @@ public final class LazyCatalog extends AbstractNamed implements Catalog { } @Override - public final MQueryPart replace(Function1 replacement) { - return catalog().replace(replacement); + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { + return catalog().replace(recurse, replacement); } } diff --git a/jOOQ/src/main/java/org/jooq/impl/LazySchema.java b/jOOQ/src/main/java/org/jooq/impl/LazySchema.java index 47718db698..c25ffaad93 100644 --- a/jOOQ/src/main/java/org/jooq/impl/LazySchema.java +++ b/jOOQ/src/main/java/org/jooq/impl/LazySchema.java @@ -282,7 +282,10 @@ public final class LazySchema extends AbstractNamed implements Schema { } @Override - public final MQueryPart replace(Function1 replacement) { - return schema().replace(replacement); + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { + return schema().replace(recurse, replacement); } } diff --git a/jOOQ/src/main/java/org/jooq/impl/LazyVal.java b/jOOQ/src/main/java/org/jooq/impl/LazyVal.java index 4f8997030e..7579ede926 100644 --- a/jOOQ/src/main/java/org/jooq/impl/LazyVal.java +++ b/jOOQ/src/main/java/org/jooq/impl/LazyVal.java @@ -170,7 +170,10 @@ final class LazyVal extends AbstractParamX implements MVal { } @Override - public final MQueryPart replace(Function1 replacement) { - return delegate.replace(replacement); + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { + return delegate.replace(recurse, replacement); } } diff --git a/jOOQ/src/main/java/org/jooq/impl/Left.java b/jOOQ/src/main/java/org/jooq/impl/Left.java index a70a6d37b2..76fe888581 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Left.java +++ b/jOOQ/src/main/java/org/jooq/impl/Left.java @@ -155,12 +155,16 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $string(), $length(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/LinkImpl.java b/jOOQ/src/main/java/org/jooq/impl/LinkImpl.java index 5a2fde5876..5fc519b780 100644 --- a/jOOQ/src/main/java/org/jooq/impl/LinkImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/LinkImpl.java @@ -116,6 +116,9 @@ import java.util.function.Predicate; + + + diff --git a/jOOQ/src/main/java/org/jooq/impl/LinkedTable.java b/jOOQ/src/main/java/org/jooq/impl/LinkedTable.java index 9a1264a04e..af45e3fcd3 100644 --- a/jOOQ/src/main/java/org/jooq/impl/LinkedTable.java +++ b/jOOQ/src/main/java/org/jooq/impl/LinkedTable.java @@ -122,6 +122,9 @@ import java.util.function.Predicate; + + + diff --git a/jOOQ/src/main/java/org/jooq/impl/Log.java b/jOOQ/src/main/java/org/jooq/impl/Log.java index 3a36585acd..72bffc55cc 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Log.java +++ b/jOOQ/src/main/java/org/jooq/impl/Log.java @@ -223,12 +223,16 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $value(), $base(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/Log10.java b/jOOQ/src/main/java/org/jooq/impl/Log10.java index a0e9b32761..c66ebeed89 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Log10.java +++ b/jOOQ/src/main/java/org/jooq/impl/Log10.java @@ -162,11 +162,15 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $value(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/Lower.java b/jOOQ/src/main/java/org/jooq/impl/Lower.java index 49afd28af3..a60051d7d2 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Lower.java +++ b/jOOQ/src/main/java/org/jooq/impl/Lower.java @@ -140,11 +140,15 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $string(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/Lpad.java b/jOOQ/src/main/java/org/jooq/impl/Lpad.java index e917676a9c..0b750ef83f 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Lpad.java +++ b/jOOQ/src/main/java/org/jooq/impl/Lpad.java @@ -205,13 +205,17 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $string(), $length(), $character(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/MD5.java b/jOOQ/src/main/java/org/jooq/impl/MD5.java index b799a03d6a..d42441c824 100644 --- a/jOOQ/src/main/java/org/jooq/impl/MD5.java +++ b/jOOQ/src/main/java/org/jooq/impl/MD5.java @@ -164,11 +164,15 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $string(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/Max.java b/jOOQ/src/main/java/org/jooq/impl/Max.java index c18bf94a4f..d6174619a2 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Max.java +++ b/jOOQ/src/main/java/org/jooq/impl/Max.java @@ -118,12 +118,16 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $field(), $distinct(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/Median.java b/jOOQ/src/main/java/org/jooq/impl/Median.java index eebb5e897b..18cd859c42 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Median.java +++ b/jOOQ/src/main/java/org/jooq/impl/Median.java @@ -122,11 +122,15 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $field(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/Min.java b/jOOQ/src/main/java/org/jooq/impl/Min.java index 480d9b9637..b387030ea2 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Min.java +++ b/jOOQ/src/main/java/org/jooq/impl/Min.java @@ -118,12 +118,16 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $field(), $distinct(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/Multiset.java b/jOOQ/src/main/java/org/jooq/impl/Multiset.java index 58b00ea6f5..bdb3abda07 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Multiset.java +++ b/jOOQ/src/main/java/org/jooq/impl/Multiset.java @@ -428,8 +428,11 @@ final class Multiset extends AbstractField> implemen } @Override - public final MQueryPart replace(Function1 replacement) { - return QOM.replace(this, select, Multiset::new, replacement); + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { + return QOM.replace(this, select, Multiset::new, recurse, replacement); } @Override diff --git a/jOOQ/src/main/java/org/jooq/impl/MultisetAgg.java b/jOOQ/src/main/java/org/jooq/impl/MultisetAgg.java index f6771f20ca..aac98ae8d0 100644 --- a/jOOQ/src/main/java/org/jooq/impl/MultisetAgg.java +++ b/jOOQ/src/main/java/org/jooq/impl/MultisetAgg.java @@ -191,7 +191,10 @@ final class MultisetAgg extends AbstractAggregateFunction replacement) { - return QOM.replace(this, distinct, row, MultisetAgg::new, replacement); + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { + return QOM.replace(this, distinct, row, MultisetAgg::new, recurse, replacement); } } diff --git a/jOOQ/src/main/java/org/jooq/impl/NthValue.java b/jOOQ/src/main/java/org/jooq/impl/NthValue.java index 1367a91424..4a8ae501b4 100644 --- a/jOOQ/src/main/java/org/jooq/impl/NthValue.java +++ b/jOOQ/src/main/java/org/jooq/impl/NthValue.java @@ -110,11 +110,15 @@ final class NthValue extends AbstractWindowFunction implements MNthValue replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, field, $windowSpecification(), $windowDefinition(), (f, s, d) -> new FirstValue<>(f).$windowSpecification(s).$windowDefinition(d).$fromFirstOrLast(fromFirstOrLast).$nullTreatment(nullTreatment), + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/Ntile.java b/jOOQ/src/main/java/org/jooq/impl/Ntile.java index 877762d47b..f922bb000e 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Ntile.java +++ b/jOOQ/src/main/java/org/jooq/impl/Ntile.java @@ -98,11 +98,15 @@ final class Ntile extends AbstractWindowFunction implements MNtile { } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, tiles, $windowSpecification(), $windowDefinition(), (t, s, d) -> new Ntile(t).$windowSpecification(s).$windowDefinition(d), + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/Nullif.java b/jOOQ/src/main/java/org/jooq/impl/Nullif.java index a615b8662d..aec6e9519a 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Nullif.java +++ b/jOOQ/src/main/java/org/jooq/impl/Nullif.java @@ -156,12 +156,16 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $value(), $other(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/Nvl.java b/jOOQ/src/main/java/org/jooq/impl/Nvl.java index 13a34df638..f9fbfdcdf4 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Nvl.java +++ b/jOOQ/src/main/java/org/jooq/impl/Nvl.java @@ -197,12 +197,16 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $value(), $defaultValue(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/OctetLength.java b/jOOQ/src/main/java/org/jooq/impl/OctetLength.java index 2a3a82c8f4..de1b0d97e5 100644 --- a/jOOQ/src/main/java/org/jooq/impl/OctetLength.java +++ b/jOOQ/src/main/java/org/jooq/impl/OctetLength.java @@ -156,11 +156,15 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $string(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/Overlay.java b/jOOQ/src/main/java/org/jooq/impl/Overlay.java index 82bb34f51e..dff6845005 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Overlay.java +++ b/jOOQ/src/main/java/org/jooq/impl/Overlay.java @@ -230,7 +230,10 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $in(), @@ -238,6 +241,7 @@ implements $startIndex(), $length(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/PackageImpl.java b/jOOQ/src/main/java/org/jooq/impl/PackageImpl.java index c111d0689d..9b8ffc9266 100644 --- a/jOOQ/src/main/java/org/jooq/impl/PackageImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/PackageImpl.java @@ -109,7 +109,10 @@ public class PackageImpl extends AbstractNamed implements Package { } @Override - public final MQueryPart replace(Function1 replacement) { - return QOM.replace(this, schema, s -> new PackageImpl(getName(), s), replacement); + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { + return QOM.replace(this, schema, s -> new PackageImpl(getName(), s), recurse, replacement); } } diff --git a/jOOQ/src/main/java/org/jooq/impl/PercentRank.java b/jOOQ/src/main/java/org/jooq/impl/PercentRank.java index 9e25554f43..562a2f6986 100644 --- a/jOOQ/src/main/java/org/jooq/impl/PercentRank.java +++ b/jOOQ/src/main/java/org/jooq/impl/PercentRank.java @@ -116,11 +116,15 @@ final class PercentRank extends AbstractWindowFunction implements MP } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $windowSpecification(), $windowDefinition(), (s, d) -> new RowNumber().$windowSpecification(s).$windowDefinition(d), + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/Position.java b/jOOQ/src/main/java/org/jooq/impl/Position.java index 556a90ac54..f1dd1f94b1 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Position.java +++ b/jOOQ/src/main/java/org/jooq/impl/Position.java @@ -248,13 +248,17 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $in(), $search(), $startIndex(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/Prior.java b/jOOQ/src/main/java/org/jooq/impl/Prior.java index 50f88f8f91..e9f45e856c 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Prior.java +++ b/jOOQ/src/main/java/org/jooq/impl/Prior.java @@ -183,6 +183,10 @@ package org.jooq.impl; + + + + diff --git a/jOOQ/src/main/java/org/jooq/impl/Product.java b/jOOQ/src/main/java/org/jooq/impl/Product.java index 61c7755556..eb7ee79746 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Product.java +++ b/jOOQ/src/main/java/org/jooq/impl/Product.java @@ -200,12 +200,16 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $field(), $distinct(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/QOM.java b/jOOQ/src/main/java/org/jooq/impl/QOM.java index fa35209e2c..0b379a23c2 100644 --- a/jOOQ/src/main/java/org/jooq/impl/QOM.java +++ b/jOOQ/src/main/java/org/jooq/impl/QOM.java @@ -138,6 +138,7 @@ import org.jooq.Select; import org.jooq.SortOrder; import org.jooq.Table; import org.jooq.XML; +import org.jooq.impl.QOM.MQueryPart; import org.jooq.tools.reflect.Reflect; import org.jooq.types.DayToSecond; @@ -241,7 +242,15 @@ public final class QOM { } @NotNull - MQueryPart replace(Function1 replacement); + default MQueryPart replace(Function1 replacement) { + return replace(p -> true, replacement); + } + + @NotNull + MQueryPart replace( + Predicate recurse, + Function1 replacement + ); /** * @deprecated - [#12425] - 3.16.0 - The name "contains" conflicts with @@ -2803,11 +2812,15 @@ public final class QOM { }; @Override - default MQueryPart replace(Function1 replacement) { + default MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $arg1(), constructor(), + recurse, replacement ); } @@ -2836,12 +2849,16 @@ public final class QOM { }; @Override - default MQueryPart replace(Function1 replacement) { + default MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $arg1(), $arg2(), constructor(), + recurse, replacement ); } @@ -2872,13 +2889,17 @@ public final class QOM { }; @Override - default MQueryPart replace(Function1 replacement) { + default MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $arg1(), $arg2(), $arg3(), constructor(), + recurse, replacement ); } @@ -2925,8 +2946,11 @@ public final class QOM { } @Override - default MQueryPart replace(Function1 replacement) { - MQueryPart r = $delegate().replace(replacement); + default MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { + MQueryPart r = $delegate().replace(recurse, replacement); return $delegate() == r ? this : r; } @@ -2948,8 +2972,14 @@ public final class QOM { } @Override - default MQueryPart replace(Function1 replacement) { - return replacement.apply(this); + default MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { + if (recurse.test(this)) + return replacement.apply(this); + else + return this; } @Override @@ -2973,7 +3003,12 @@ public final class QOM { // ------------------------------------------------------------------------- @SuppressWarnings("unchecked") - static final Q replace(Q q, Function1 replacement) { + static final Q replace( + Q q, + Predicate recurse, + Function1 replacement + ) { + // TODO: Support also arrays, sets, etc. if (q instanceof List) { List l = (List) q; @@ -2981,7 +3016,7 @@ public final class QOM { for (int i = 0; i < l.size(); i++) { Object o = l.get(i); - Object x = replace(o, replacement); + Object x = replace(o, recurse, replacement); if (o != x) { @@ -2999,7 +3034,11 @@ public final class QOM { return r != null ? (Q) r : q; } - return q instanceof MQueryPart ? (Q) ((MQueryPart) q).replace(replacement) : q; + + + return q instanceof MQueryPart && recurse.test((MQueryPart) q) + ? (Q) ((MQueryPart) q).replace(recurse, replacement) + : q; } static final boolean test(Predicate predicate, T value) { @@ -3038,12 +3077,13 @@ public final class QOM { QR wrapper, Q[] q, Function1 wrap, + Predicate recurse, Function1 replacement ) { Q[] r = (Q[]) Array.newInstance(q.getClass().getComponentType(), q.length); for (int i = 0; i < r.length; i++) - r[i] = replace(q[i], replacement); + r[i] = replace(q[i], recurse, replacement); wrapIfReplaced: { for (int i = 0; i < r.length; i++) { @@ -3054,7 +3094,7 @@ public final class QOM { } } - return replaceUntilStable(wrapper, replacement); + return replaceUntilStable(wrapper, recurse, replacement); } @@ -3063,14 +3103,15 @@ public final class QOM { QR wrapper, Q1 q1, Function1 wrap, + Predicate recurse, Function1 replacement ) { - Q1 r1 = replace(q1, replacement); + Q1 r1 = replace(q1, recurse, replacement); if (r1 != q1) wrapper = wrap.apply(r1); - return replaceUntilStable(wrapper, replacement); + return replaceUntilStable(wrapper, recurse, replacement); } static final QR replace( @@ -3078,15 +3119,16 @@ public final class QOM { Q1 q1, Q2 q2, Function2 wrap, + Predicate recurse, Function1 replacement ) { - Q1 r1 = replace(q1, replacement); - Q2 r2 = replace(q2, replacement); + Q1 r1 = replace(q1, recurse, replacement); + Q2 r2 = replace(q2, recurse, replacement); if (r1 != q1 || r2 != q2) wrapper = wrap.apply(r1, r2); - return replaceUntilStable(wrapper, replacement); + return replaceUntilStable(wrapper, recurse, replacement); } static final QR replace( @@ -3095,16 +3137,17 @@ public final class QOM { Q2 q2, Q3 q3, Function3 wrap, + Predicate recurse, Function1 replacement ) { - Q1 r1 = replace(q1, replacement); - Q2 r2 = replace(q2, replacement); - Q3 r3 = replace(q3, replacement); + Q1 r1 = replace(q1, recurse, replacement); + Q2 r2 = replace(q2, recurse, replacement); + Q3 r3 = replace(q3, recurse, replacement); if (r1 != q1 || r2 != q2 || r3 != q3) wrapper = wrap.apply(r1, r2, r3); - return replaceUntilStable(wrapper, replacement); + return replaceUntilStable(wrapper, recurse, replacement); } static final QR replace( @@ -3114,17 +3157,18 @@ public final class QOM { Q3 q3, Q4 q4, Function4 wrap, + Predicate recurse, Function1 replacement ) { - Q1 r1 = replace(q1, replacement); - Q2 r2 = replace(q2, replacement); - Q3 r3 = replace(q3, replacement); - Q4 r4 = replace(q4, replacement); + Q1 r1 = replace(q1, recurse, replacement); + Q2 r2 = replace(q2, recurse, replacement); + Q3 r3 = replace(q3, recurse, replacement); + Q4 r4 = replace(q4, recurse, replacement); if (r1 != q1 || r2 != q2 || r3 != q3 || r4 != q4) wrapper = wrap.apply(r1, r2, r3, r4); - return replaceUntilStable(wrapper, replacement); + return replaceUntilStable(wrapper, recurse, replacement); } static final QR replace( @@ -3135,18 +3179,19 @@ public final class QOM { Q4 q4, Q5 q5, Function5 wrap, + Predicate recurse, Function1 replacement ) { - Q1 r1 = replace(q1, replacement); - Q2 r2 = replace(q2, replacement); - Q3 r3 = replace(q3, replacement); - Q4 r4 = replace(q4, replacement); - Q5 r5 = replace(q5, replacement); + Q1 r1 = replace(q1, recurse, replacement); + Q2 r2 = replace(q2, recurse, replacement); + Q3 r3 = replace(q3, recurse, replacement); + Q4 r4 = replace(q4, recurse, replacement); + Q5 r5 = replace(q5, recurse, replacement); if (r1 != q1 || r2 != q2 || r3 != q3 || r4 != q4 || r5 != q5) wrapper = wrap.apply(r1, r2, r3, r4, r5); - return replaceUntilStable(wrapper, replacement); + return replaceUntilStable(wrapper, recurse, replacement); } static final QR replace( @@ -3158,19 +3203,20 @@ public final class QOM { Q5 q5, Q6 q6, Function6 wrap, + Predicate recurse, Function1 replacement ) { - Q1 r1 = replace(q1, replacement); - Q2 r2 = replace(q2, replacement); - Q3 r3 = replace(q3, replacement); - Q4 r4 = replace(q4, replacement); - Q5 r5 = replace(q5, replacement); - Q6 r6 = replace(q6, replacement); + Q1 r1 = replace(q1, recurse, replacement); + Q2 r2 = replace(q2, recurse, replacement); + Q3 r3 = replace(q3, recurse, replacement); + Q4 r4 = replace(q4, recurse, replacement); + Q5 r5 = replace(q5, recurse, replacement); + Q6 r6 = replace(q6, recurse, replacement); if (r1 != q1 || r2 != q2 || r3 != q3 || r4 != q4 || r5 != q5 || r6 != q6) wrapper = wrap.apply(r1, r2, r3, r4, r5, r6); - return replaceUntilStable(wrapper, replacement); + return replaceUntilStable(wrapper, recurse, replacement); } static final QR replace( @@ -3183,20 +3229,21 @@ public final class QOM { Q6 q6, Q7 q7, Function7 wrap, + Predicate recurse, Function1 replacement ) { - Q1 r1 = replace(q1, replacement); - Q2 r2 = replace(q2, replacement); - Q3 r3 = replace(q3, replacement); - Q4 r4 = replace(q4, replacement); - Q5 r5 = replace(q5, replacement); - Q6 r6 = replace(q6, replacement); - Q7 r7 = replace(q7, replacement); + Q1 r1 = replace(q1, recurse, replacement); + Q2 r2 = replace(q2, recurse, replacement); + Q3 r3 = replace(q3, recurse, replacement); + Q4 r4 = replace(q4, recurse, replacement); + Q5 r5 = replace(q5, recurse, replacement); + Q6 r6 = replace(q6, recurse, replacement); + Q7 r7 = replace(q7, recurse, replacement); if (r1 != q1 || r2 != q2 || r3 != q3 || r4 != q4 || r5 != q5 || r6 != q6 || r7 != q7) wrapper = wrap.apply(r1, r2, r3, r4, r5, r6, r7); - return replaceUntilStable(wrapper, replacement); + return replaceUntilStable(wrapper, recurse, replacement); } static final QR replace( @@ -3210,21 +3257,22 @@ public final class QOM { Q7 q7, Q8 q8, Function8 wrap, + Predicate recurse, Function1 replacement ) { - Q1 r1 = replace(q1, replacement); - Q2 r2 = replace(q2, replacement); - Q3 r3 = replace(q3, replacement); - Q4 r4 = replace(q4, replacement); - Q5 r5 = replace(q5, replacement); - Q6 r6 = replace(q6, replacement); - Q7 r7 = replace(q7, replacement); - Q8 r8 = replace(q8, replacement); + Q1 r1 = replace(q1, recurse, replacement); + Q2 r2 = replace(q2, recurse, replacement); + Q3 r3 = replace(q3, recurse, replacement); + Q4 r4 = replace(q4, recurse, replacement); + Q5 r5 = replace(q5, recurse, replacement); + Q6 r6 = replace(q6, recurse, replacement); + Q7 r7 = replace(q7, recurse, replacement); + Q8 r8 = replace(q8, recurse, replacement); if (r1 != q1 || r2 != q2 || r3 != q3 || r4 != q4 || r5 != q5 || r6 != q6 || r7 != q7 || r8 != q8) wrapper = wrap.apply(r1, r2, r3, r4, r5, r6, r7, r8); - return replaceUntilStable(wrapper, replacement); + return replaceUntilStable(wrapper, recurse, replacement); } static final QR replace( @@ -3239,22 +3287,23 @@ public final class QOM { Q8 q8, Q9 q9, Function9 wrap, + Predicate recurse, Function1 replacement ) { - Q1 r1 = replace(q1, replacement); - Q2 r2 = replace(q2, replacement); - Q3 r3 = replace(q3, replacement); - Q4 r4 = replace(q4, replacement); - Q5 r5 = replace(q5, replacement); - Q6 r6 = replace(q6, replacement); - Q7 r7 = replace(q7, replacement); - Q8 r8 = replace(q8, replacement); - Q9 r9 = replace(q9, replacement); + Q1 r1 = replace(q1, recurse, replacement); + Q2 r2 = replace(q2, recurse, replacement); + Q3 r3 = replace(q3, recurse, replacement); + Q4 r4 = replace(q4, recurse, replacement); + Q5 r5 = replace(q5, recurse, replacement); + Q6 r6 = replace(q6, recurse, replacement); + Q7 r7 = replace(q7, recurse, replacement); + Q8 r8 = replace(q8, recurse, replacement); + Q9 r9 = replace(q9, recurse, replacement); if (r1 != q1 || r2 != q2 || r3 != q3 || r4 != q4 || r5 != q5 || r6 != q6 || r7 != q7 || r8 != q8 || r9 != q9) wrapper = wrap.apply(r1, r2, r3, r4, r5, r6, r7, r8, r9); - return replaceUntilStable(wrapper, replacement); + return replaceUntilStable(wrapper, recurse, replacement); } static final QR replace( @@ -3270,23 +3319,24 @@ public final class QOM { Q9 q9, Q10 q10, Function10 wrap, + Predicate recurse, Function1 replacement ) { - Q1 r1 = replace(q1, replacement); - Q2 r2 = replace(q2, replacement); - Q3 r3 = replace(q3, replacement); - Q4 r4 = replace(q4, replacement); - Q5 r5 = replace(q5, replacement); - Q6 r6 = replace(q6, replacement); - Q7 r7 = replace(q7, replacement); - Q8 r8 = replace(q8, replacement); - Q9 r9 = replace(q9, replacement); - Q10 r10 = replace(q10, replacement); + Q1 r1 = replace(q1, recurse, replacement); + Q2 r2 = replace(q2, recurse, replacement); + Q3 r3 = replace(q3, recurse, replacement); + Q4 r4 = replace(q4, recurse, replacement); + Q5 r5 = replace(q5, recurse, replacement); + Q6 r6 = replace(q6, recurse, replacement); + Q7 r7 = replace(q7, recurse, replacement); + Q8 r8 = replace(q8, recurse, replacement); + Q9 r9 = replace(q9, recurse, replacement); + Q10 r10 = replace(q10, recurse, replacement); if (r1 != q1 || r2 != q2 || r3 != q3 || r4 != q4 || r5 != q5 || r6 != q6 || r7 != q7 || r8 != q8 || r9 != q9 || r10 != q10) wrapper = wrap.apply(r1, r2, r3, r4, r5, r6, r7, r8, r9, r10); - return replaceUntilStable(wrapper, replacement); + return replaceUntilStable(wrapper, recurse, replacement); } static final QR replace( @@ -3303,24 +3353,25 @@ public final class QOM { Q10 q10, Q11 q11, Function11 wrap, + Predicate recurse, Function1 replacement ) { - Q1 r1 = replace(q1, replacement); - Q2 r2 = replace(q2, replacement); - Q3 r3 = replace(q3, replacement); - Q4 r4 = replace(q4, replacement); - Q5 r5 = replace(q5, replacement); - Q6 r6 = replace(q6, replacement); - Q7 r7 = replace(q7, replacement); - Q8 r8 = replace(q8, replacement); - Q9 r9 = replace(q9, replacement); - Q10 r10 = replace(q10, replacement); - Q11 r11 = replace(q11, replacement); + Q1 r1 = replace(q1, recurse, replacement); + Q2 r2 = replace(q2, recurse, replacement); + Q3 r3 = replace(q3, recurse, replacement); + Q4 r4 = replace(q4, recurse, replacement); + Q5 r5 = replace(q5, recurse, replacement); + Q6 r6 = replace(q6, recurse, replacement); + Q7 r7 = replace(q7, recurse, replacement); + Q8 r8 = replace(q8, recurse, replacement); + Q9 r9 = replace(q9, recurse, replacement); + Q10 r10 = replace(q10, recurse, replacement); + Q11 r11 = replace(q11, recurse, replacement); if (r1 != q1 || r2 != q2 || r3 != q3 || r4 != q4 || r5 != q5 || r6 != q6 || r7 != q7 || r8 != q8 || r9 != q9 || r10 != q10 || r11 != q11) wrapper = wrap.apply(r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11); - return replaceUntilStable(wrapper, replacement); + return replaceUntilStable(wrapper, recurse, replacement); } static final QR replace( @@ -3338,25 +3389,26 @@ public final class QOM { Q11 q11, Q12 q12, Function12 wrap, + Predicate recurse, Function1 replacement ) { - Q1 r1 = replace(q1, replacement); - Q2 r2 = replace(q2, replacement); - Q3 r3 = replace(q3, replacement); - Q4 r4 = replace(q4, replacement); - Q5 r5 = replace(q5, replacement); - Q6 r6 = replace(q6, replacement); - Q7 r7 = replace(q7, replacement); - Q8 r8 = replace(q8, replacement); - Q9 r9 = replace(q9, replacement); - Q10 r10 = replace(q10, replacement); - Q11 r11 = replace(q11, replacement); - Q12 r12 = replace(q12, replacement); + Q1 r1 = replace(q1, recurse, replacement); + Q2 r2 = replace(q2, recurse, replacement); + Q3 r3 = replace(q3, recurse, replacement); + Q4 r4 = replace(q4, recurse, replacement); + Q5 r5 = replace(q5, recurse, replacement); + Q6 r6 = replace(q6, recurse, replacement); + Q7 r7 = replace(q7, recurse, replacement); + Q8 r8 = replace(q8, recurse, replacement); + Q9 r9 = replace(q9, recurse, replacement); + Q10 r10 = replace(q10, recurse, replacement); + Q11 r11 = replace(q11, recurse, replacement); + Q12 r12 = replace(q12, recurse, replacement); if (r1 != q1 || r2 != q2 || r3 != q3 || r4 != q4 || r5 != q5 || r6 != q6 || r7 != q7 || r8 != q8 || r9 != q9 || r10 != q10 || r11 != q11 || r12 != q12) wrapper = wrap.apply(r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12); - return replaceUntilStable(wrapper, replacement); + return replaceUntilStable(wrapper, recurse, replacement); } static final QR replace( @@ -3375,26 +3427,27 @@ public final class QOM { Q12 q12, Q13 q13, Function13 wrap, + Predicate recurse, Function1 replacement ) { - Q1 r1 = replace(q1, replacement); - Q2 r2 = replace(q2, replacement); - Q3 r3 = replace(q3, replacement); - Q4 r4 = replace(q4, replacement); - Q5 r5 = replace(q5, replacement); - Q6 r6 = replace(q6, replacement); - Q7 r7 = replace(q7, replacement); - Q8 r8 = replace(q8, replacement); - Q9 r9 = replace(q9, replacement); - Q10 r10 = replace(q10, replacement); - Q11 r11 = replace(q11, replacement); - Q12 r12 = replace(q12, replacement); - Q13 r13 = replace(q13, replacement); + Q1 r1 = replace(q1, recurse, replacement); + Q2 r2 = replace(q2, recurse, replacement); + Q3 r3 = replace(q3, recurse, replacement); + Q4 r4 = replace(q4, recurse, replacement); + Q5 r5 = replace(q5, recurse, replacement); + Q6 r6 = replace(q6, recurse, replacement); + Q7 r7 = replace(q7, recurse, replacement); + Q8 r8 = replace(q8, recurse, replacement); + Q9 r9 = replace(q9, recurse, replacement); + Q10 r10 = replace(q10, recurse, replacement); + Q11 r11 = replace(q11, recurse, replacement); + Q12 r12 = replace(q12, recurse, replacement); + Q13 r13 = replace(q13, recurse, replacement); if (r1 != q1 || r2 != q2 || r3 != q3 || r4 != q4 || r5 != q5 || r6 != q6 || r7 != q7 || r8 != q8 || r9 != q9 || r10 != q10 || r11 != q11 || r12 != q12 || r13 != q13) wrapper = wrap.apply(r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13); - return replaceUntilStable(wrapper, replacement); + return replaceUntilStable(wrapper, recurse, replacement); } static final QR replace( @@ -3414,27 +3467,28 @@ public final class QOM { Q13 q13, Q14 q14, Function14 wrap, + Predicate recurse, Function1 replacement ) { - Q1 r1 = replace(q1, replacement); - Q2 r2 = replace(q2, replacement); - Q3 r3 = replace(q3, replacement); - Q4 r4 = replace(q4, replacement); - Q5 r5 = replace(q5, replacement); - Q6 r6 = replace(q6, replacement); - Q7 r7 = replace(q7, replacement); - Q8 r8 = replace(q8, replacement); - Q9 r9 = replace(q9, replacement); - Q10 r10 = replace(q10, replacement); - Q11 r11 = replace(q11, replacement); - Q12 r12 = replace(q12, replacement); - Q13 r13 = replace(q13, replacement); - Q14 r14 = replace(q14, replacement); + Q1 r1 = replace(q1, recurse, replacement); + Q2 r2 = replace(q2, recurse, replacement); + Q3 r3 = replace(q3, recurse, replacement); + Q4 r4 = replace(q4, recurse, replacement); + Q5 r5 = replace(q5, recurse, replacement); + Q6 r6 = replace(q6, recurse, replacement); + Q7 r7 = replace(q7, recurse, replacement); + Q8 r8 = replace(q8, recurse, replacement); + Q9 r9 = replace(q9, recurse, replacement); + Q10 r10 = replace(q10, recurse, replacement); + Q11 r11 = replace(q11, recurse, replacement); + Q12 r12 = replace(q12, recurse, replacement); + Q13 r13 = replace(q13, recurse, replacement); + Q14 r14 = replace(q14, recurse, replacement); if (r1 != q1 || r2 != q2 || r3 != q3 || r4 != q4 || r5 != q5 || r6 != q6 || r7 != q7 || r8 != q8 || r9 != q9 || r10 != q10 || r11 != q11 || r12 != q12 || r13 != q13 || r14 != q14) wrapper = wrap.apply(r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14); - return replaceUntilStable(wrapper, replacement); + return replaceUntilStable(wrapper, recurse, replacement); } static final QR replace( @@ -3455,28 +3509,29 @@ public final class QOM { Q14 q14, Q15 q15, Function15 wrap, + Predicate recurse, Function1 replacement ) { - Q1 r1 = replace(q1, replacement); - Q2 r2 = replace(q2, replacement); - Q3 r3 = replace(q3, replacement); - Q4 r4 = replace(q4, replacement); - Q5 r5 = replace(q5, replacement); - Q6 r6 = replace(q6, replacement); - Q7 r7 = replace(q7, replacement); - Q8 r8 = replace(q8, replacement); - Q9 r9 = replace(q9, replacement); - Q10 r10 = replace(q10, replacement); - Q11 r11 = replace(q11, replacement); - Q12 r12 = replace(q12, replacement); - Q13 r13 = replace(q13, replacement); - Q14 r14 = replace(q14, replacement); - Q15 r15 = replace(q15, replacement); + Q1 r1 = replace(q1, recurse, replacement); + Q2 r2 = replace(q2, recurse, replacement); + Q3 r3 = replace(q3, recurse, replacement); + Q4 r4 = replace(q4, recurse, replacement); + Q5 r5 = replace(q5, recurse, replacement); + Q6 r6 = replace(q6, recurse, replacement); + Q7 r7 = replace(q7, recurse, replacement); + Q8 r8 = replace(q8, recurse, replacement); + Q9 r9 = replace(q9, recurse, replacement); + Q10 r10 = replace(q10, recurse, replacement); + Q11 r11 = replace(q11, recurse, replacement); + Q12 r12 = replace(q12, recurse, replacement); + Q13 r13 = replace(q13, recurse, replacement); + Q14 r14 = replace(q14, recurse, replacement); + Q15 r15 = replace(q15, recurse, replacement); if (r1 != q1 || r2 != q2 || r3 != q3 || r4 != q4 || r5 != q5 || r6 != q6 || r7 != q7 || r8 != q8 || r9 != q9 || r10 != q10 || r11 != q11 || r12 != q12 || r13 != q13 || r14 != q14 || r15 != q15) wrapper = wrap.apply(r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15); - return replaceUntilStable(wrapper, replacement); + return replaceUntilStable(wrapper, recurse, replacement); } static final QR replace( @@ -3498,29 +3553,30 @@ public final class QOM { Q15 q15, Q16 q16, Function16 wrap, + Predicate recurse, Function1 replacement ) { - Q1 r1 = replace(q1, replacement); - Q2 r2 = replace(q2, replacement); - Q3 r3 = replace(q3, replacement); - Q4 r4 = replace(q4, replacement); - Q5 r5 = replace(q5, replacement); - Q6 r6 = replace(q6, replacement); - Q7 r7 = replace(q7, replacement); - Q8 r8 = replace(q8, replacement); - Q9 r9 = replace(q9, replacement); - Q10 r10 = replace(q10, replacement); - Q11 r11 = replace(q11, replacement); - Q12 r12 = replace(q12, replacement); - Q13 r13 = replace(q13, replacement); - Q14 r14 = replace(q14, replacement); - Q15 r15 = replace(q15, replacement); - Q16 r16 = replace(q16, replacement); + Q1 r1 = replace(q1, recurse, replacement); + Q2 r2 = replace(q2, recurse, replacement); + Q3 r3 = replace(q3, recurse, replacement); + Q4 r4 = replace(q4, recurse, replacement); + Q5 r5 = replace(q5, recurse, replacement); + Q6 r6 = replace(q6, recurse, replacement); + Q7 r7 = replace(q7, recurse, replacement); + Q8 r8 = replace(q8, recurse, replacement); + Q9 r9 = replace(q9, recurse, replacement); + Q10 r10 = replace(q10, recurse, replacement); + Q11 r11 = replace(q11, recurse, replacement); + Q12 r12 = replace(q12, recurse, replacement); + Q13 r13 = replace(q13, recurse, replacement); + Q14 r14 = replace(q14, recurse, replacement); + Q15 r15 = replace(q15, recurse, replacement); + Q16 r16 = replace(q16, recurse, replacement); if (r1 != q1 || r2 != q2 || r3 != q3 || r4 != q4 || r5 != q5 || r6 != q6 || r7 != q7 || r8 != q8 || r9 != q9 || r10 != q10 || r11 != q11 || r12 != q12 || r13 != q13 || r14 != q14 || r15 != q15 || r16 != q16) wrapper = wrap.apply(r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16); - return replaceUntilStable(wrapper, replacement); + return replaceUntilStable(wrapper, recurse, replacement); } static final QR replace( @@ -3543,30 +3599,31 @@ public final class QOM { Q16 q16, Q17 q17, Function17 wrap, + Predicate recurse, Function1 replacement ) { - Q1 r1 = replace(q1, replacement); - Q2 r2 = replace(q2, replacement); - Q3 r3 = replace(q3, replacement); - Q4 r4 = replace(q4, replacement); - Q5 r5 = replace(q5, replacement); - Q6 r6 = replace(q6, replacement); - Q7 r7 = replace(q7, replacement); - Q8 r8 = replace(q8, replacement); - Q9 r9 = replace(q9, replacement); - Q10 r10 = replace(q10, replacement); - Q11 r11 = replace(q11, replacement); - Q12 r12 = replace(q12, replacement); - Q13 r13 = replace(q13, replacement); - Q14 r14 = replace(q14, replacement); - Q15 r15 = replace(q15, replacement); - Q16 r16 = replace(q16, replacement); - Q17 r17 = replace(q17, replacement); + Q1 r1 = replace(q1, recurse, replacement); + Q2 r2 = replace(q2, recurse, replacement); + Q3 r3 = replace(q3, recurse, replacement); + Q4 r4 = replace(q4, recurse, replacement); + Q5 r5 = replace(q5, recurse, replacement); + Q6 r6 = replace(q6, recurse, replacement); + Q7 r7 = replace(q7, recurse, replacement); + Q8 r8 = replace(q8, recurse, replacement); + Q9 r9 = replace(q9, recurse, replacement); + Q10 r10 = replace(q10, recurse, replacement); + Q11 r11 = replace(q11, recurse, replacement); + Q12 r12 = replace(q12, recurse, replacement); + Q13 r13 = replace(q13, recurse, replacement); + Q14 r14 = replace(q14, recurse, replacement); + Q15 r15 = replace(q15, recurse, replacement); + Q16 r16 = replace(q16, recurse, replacement); + Q17 r17 = replace(q17, recurse, replacement); if (r1 != q1 || r2 != q2 || r3 != q3 || r4 != q4 || r5 != q5 || r6 != q6 || r7 != q7 || r8 != q8 || r9 != q9 || r10 != q10 || r11 != q11 || r12 != q12 || r13 != q13 || r14 != q14 || r15 != q15 || r16 != q16 || r17 != q17) wrapper = wrap.apply(r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17); - return replaceUntilStable(wrapper, replacement); + return replaceUntilStable(wrapper, recurse, replacement); } static final QR replace( @@ -3590,31 +3647,32 @@ public final class QOM { Q17 q17, Q18 q18, Function18 wrap, + Predicate recurse, Function1 replacement ) { - Q1 r1 = replace(q1, replacement); - Q2 r2 = replace(q2, replacement); - Q3 r3 = replace(q3, replacement); - Q4 r4 = replace(q4, replacement); - Q5 r5 = replace(q5, replacement); - Q6 r6 = replace(q6, replacement); - Q7 r7 = replace(q7, replacement); - Q8 r8 = replace(q8, replacement); - Q9 r9 = replace(q9, replacement); - Q10 r10 = replace(q10, replacement); - Q11 r11 = replace(q11, replacement); - Q12 r12 = replace(q12, replacement); - Q13 r13 = replace(q13, replacement); - Q14 r14 = replace(q14, replacement); - Q15 r15 = replace(q15, replacement); - Q16 r16 = replace(q16, replacement); - Q17 r17 = replace(q17, replacement); - Q18 r18 = replace(q18, replacement); + Q1 r1 = replace(q1, recurse, replacement); + Q2 r2 = replace(q2, recurse, replacement); + Q3 r3 = replace(q3, recurse, replacement); + Q4 r4 = replace(q4, recurse, replacement); + Q5 r5 = replace(q5, recurse, replacement); + Q6 r6 = replace(q6, recurse, replacement); + Q7 r7 = replace(q7, recurse, replacement); + Q8 r8 = replace(q8, recurse, replacement); + Q9 r9 = replace(q9, recurse, replacement); + Q10 r10 = replace(q10, recurse, replacement); + Q11 r11 = replace(q11, recurse, replacement); + Q12 r12 = replace(q12, recurse, replacement); + Q13 r13 = replace(q13, recurse, replacement); + Q14 r14 = replace(q14, recurse, replacement); + Q15 r15 = replace(q15, recurse, replacement); + Q16 r16 = replace(q16, recurse, replacement); + Q17 r17 = replace(q17, recurse, replacement); + Q18 r18 = replace(q18, recurse, replacement); if (r1 != q1 || r2 != q2 || r3 != q3 || r4 != q4 || r5 != q5 || r6 != q6 || r7 != q7 || r8 != q8 || r9 != q9 || r10 != q10 || r11 != q11 || r12 != q12 || r13 != q13 || r14 != q14 || r15 != q15 || r16 != q16 || r17 != q17 || r18 != q18) wrapper = wrap.apply(r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18); - return replaceUntilStable(wrapper, replacement); + return replaceUntilStable(wrapper, recurse, replacement); } static final QR replace( @@ -3639,32 +3697,33 @@ public final class QOM { Q18 q18, Q19 q19, Function19 wrap, + Predicate recurse, Function1 replacement ) { - Q1 r1 = replace(q1, replacement); - Q2 r2 = replace(q2, replacement); - Q3 r3 = replace(q3, replacement); - Q4 r4 = replace(q4, replacement); - Q5 r5 = replace(q5, replacement); - Q6 r6 = replace(q6, replacement); - Q7 r7 = replace(q7, replacement); - Q8 r8 = replace(q8, replacement); - Q9 r9 = replace(q9, replacement); - Q10 r10 = replace(q10, replacement); - Q11 r11 = replace(q11, replacement); - Q12 r12 = replace(q12, replacement); - Q13 r13 = replace(q13, replacement); - Q14 r14 = replace(q14, replacement); - Q15 r15 = replace(q15, replacement); - Q16 r16 = replace(q16, replacement); - Q17 r17 = replace(q17, replacement); - Q18 r18 = replace(q18, replacement); - Q19 r19 = replace(q19, replacement); + Q1 r1 = replace(q1, recurse, replacement); + Q2 r2 = replace(q2, recurse, replacement); + Q3 r3 = replace(q3, recurse, replacement); + Q4 r4 = replace(q4, recurse, replacement); + Q5 r5 = replace(q5, recurse, replacement); + Q6 r6 = replace(q6, recurse, replacement); + Q7 r7 = replace(q7, recurse, replacement); + Q8 r8 = replace(q8, recurse, replacement); + Q9 r9 = replace(q9, recurse, replacement); + Q10 r10 = replace(q10, recurse, replacement); + Q11 r11 = replace(q11, recurse, replacement); + Q12 r12 = replace(q12, recurse, replacement); + Q13 r13 = replace(q13, recurse, replacement); + Q14 r14 = replace(q14, recurse, replacement); + Q15 r15 = replace(q15, recurse, replacement); + Q16 r16 = replace(q16, recurse, replacement); + Q17 r17 = replace(q17, recurse, replacement); + Q18 r18 = replace(q18, recurse, replacement); + Q19 r19 = replace(q19, recurse, replacement); if (r1 != q1 || r2 != q2 || r3 != q3 || r4 != q4 || r5 != q5 || r6 != q6 || r7 != q7 || r8 != q8 || r9 != q9 || r10 != q10 || r11 != q11 || r12 != q12 || r13 != q13 || r14 != q14 || r15 != q15 || r16 != q16 || r17 != q17 || r18 != q18 || r19 != q19) wrapper = wrap.apply(r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19); - return replaceUntilStable(wrapper, replacement); + return replaceUntilStable(wrapper, recurse, replacement); } static final QR replace( @@ -3690,33 +3749,34 @@ public final class QOM { Q19 q19, Q20 q20, Function20 wrap, + Predicate recurse, Function1 replacement ) { - Q1 r1 = replace(q1, replacement); - Q2 r2 = replace(q2, replacement); - Q3 r3 = replace(q3, replacement); - Q4 r4 = replace(q4, replacement); - Q5 r5 = replace(q5, replacement); - Q6 r6 = replace(q6, replacement); - Q7 r7 = replace(q7, replacement); - Q8 r8 = replace(q8, replacement); - Q9 r9 = replace(q9, replacement); - Q10 r10 = replace(q10, replacement); - Q11 r11 = replace(q11, replacement); - Q12 r12 = replace(q12, replacement); - Q13 r13 = replace(q13, replacement); - Q14 r14 = replace(q14, replacement); - Q15 r15 = replace(q15, replacement); - Q16 r16 = replace(q16, replacement); - Q17 r17 = replace(q17, replacement); - Q18 r18 = replace(q18, replacement); - Q19 r19 = replace(q19, replacement); - Q20 r20 = replace(q20, replacement); + Q1 r1 = replace(q1, recurse, replacement); + Q2 r2 = replace(q2, recurse, replacement); + Q3 r3 = replace(q3, recurse, replacement); + Q4 r4 = replace(q4, recurse, replacement); + Q5 r5 = replace(q5, recurse, replacement); + Q6 r6 = replace(q6, recurse, replacement); + Q7 r7 = replace(q7, recurse, replacement); + Q8 r8 = replace(q8, recurse, replacement); + Q9 r9 = replace(q9, recurse, replacement); + Q10 r10 = replace(q10, recurse, replacement); + Q11 r11 = replace(q11, recurse, replacement); + Q12 r12 = replace(q12, recurse, replacement); + Q13 r13 = replace(q13, recurse, replacement); + Q14 r14 = replace(q14, recurse, replacement); + Q15 r15 = replace(q15, recurse, replacement); + Q16 r16 = replace(q16, recurse, replacement); + Q17 r17 = replace(q17, recurse, replacement); + Q18 r18 = replace(q18, recurse, replacement); + Q19 r19 = replace(q19, recurse, replacement); + Q20 r20 = replace(q20, recurse, replacement); if (r1 != q1 || r2 != q2 || r3 != q3 || r4 != q4 || r5 != q5 || r6 != q6 || r7 != q7 || r8 != q8 || r9 != q9 || r10 != q10 || r11 != q11 || r12 != q12 || r13 != q13 || r14 != q14 || r15 != q15 || r16 != q16 || r17 != q17 || r18 != q18 || r19 != q19 || r20 != q20) wrapper = wrap.apply(r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20); - return replaceUntilStable(wrapper, replacement); + return replaceUntilStable(wrapper, recurse, replacement); } static final QR replace( @@ -3743,34 +3803,35 @@ public final class QOM { Q20 q20, Q21 q21, Function21 wrap, + Predicate recurse, Function1 replacement ) { - Q1 r1 = replace(q1, replacement); - Q2 r2 = replace(q2, replacement); - Q3 r3 = replace(q3, replacement); - Q4 r4 = replace(q4, replacement); - Q5 r5 = replace(q5, replacement); - Q6 r6 = replace(q6, replacement); - Q7 r7 = replace(q7, replacement); - Q8 r8 = replace(q8, replacement); - Q9 r9 = replace(q9, replacement); - Q10 r10 = replace(q10, replacement); - Q11 r11 = replace(q11, replacement); - Q12 r12 = replace(q12, replacement); - Q13 r13 = replace(q13, replacement); - Q14 r14 = replace(q14, replacement); - Q15 r15 = replace(q15, replacement); - Q16 r16 = replace(q16, replacement); - Q17 r17 = replace(q17, replacement); - Q18 r18 = replace(q18, replacement); - Q19 r19 = replace(q19, replacement); - Q20 r20 = replace(q20, replacement); - Q21 r21 = replace(q21, replacement); + Q1 r1 = replace(q1, recurse, replacement); + Q2 r2 = replace(q2, recurse, replacement); + Q3 r3 = replace(q3, recurse, replacement); + Q4 r4 = replace(q4, recurse, replacement); + Q5 r5 = replace(q5, recurse, replacement); + Q6 r6 = replace(q6, recurse, replacement); + Q7 r7 = replace(q7, recurse, replacement); + Q8 r8 = replace(q8, recurse, replacement); + Q9 r9 = replace(q9, recurse, replacement); + Q10 r10 = replace(q10, recurse, replacement); + Q11 r11 = replace(q11, recurse, replacement); + Q12 r12 = replace(q12, recurse, replacement); + Q13 r13 = replace(q13, recurse, replacement); + Q14 r14 = replace(q14, recurse, replacement); + Q15 r15 = replace(q15, recurse, replacement); + Q16 r16 = replace(q16, recurse, replacement); + Q17 r17 = replace(q17, recurse, replacement); + Q18 r18 = replace(q18, recurse, replacement); + Q19 r19 = replace(q19, recurse, replacement); + Q20 r20 = replace(q20, recurse, replacement); + Q21 r21 = replace(q21, recurse, replacement); if (r1 != q1 || r2 != q2 || r3 != q3 || r4 != q4 || r5 != q5 || r6 != q6 || r7 != q7 || r8 != q8 || r9 != q9 || r10 != q10 || r11 != q11 || r12 != q12 || r13 != q13 || r14 != q14 || r15 != q15 || r16 != q16 || r17 != q17 || r18 != q18 || r19 != q19 || r20 != q20 || r21 != q21) wrapper = wrap.apply(r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20, r21); - return replaceUntilStable(wrapper, replacement); + return replaceUntilStable(wrapper, recurse, replacement); } static final QR replace( @@ -3798,55 +3859,53 @@ public final class QOM { Q21 q21, Q22 q22, Function22 wrap, + Predicate recurse, Function1 replacement ) { - Q1 r1 = replace(q1, replacement); - Q2 r2 = replace(q2, replacement); - Q3 r3 = replace(q3, replacement); - Q4 r4 = replace(q4, replacement); - Q5 r5 = replace(q5, replacement); - Q6 r6 = replace(q6, replacement); - Q7 r7 = replace(q7, replacement); - Q8 r8 = replace(q8, replacement); - Q9 r9 = replace(q9, replacement); - Q10 r10 = replace(q10, replacement); - Q11 r11 = replace(q11, replacement); - Q12 r12 = replace(q12, replacement); - Q13 r13 = replace(q13, replacement); - Q14 r14 = replace(q14, replacement); - Q15 r15 = replace(q15, replacement); - Q16 r16 = replace(q16, replacement); - Q17 r17 = replace(q17, replacement); - Q18 r18 = replace(q18, replacement); - Q19 r19 = replace(q19, replacement); - Q20 r20 = replace(q20, replacement); - Q21 r21 = replace(q21, replacement); - Q22 r22 = replace(q22, replacement); + Q1 r1 = replace(q1, recurse, replacement); + Q2 r2 = replace(q2, recurse, replacement); + Q3 r3 = replace(q3, recurse, replacement); + Q4 r4 = replace(q4, recurse, replacement); + Q5 r5 = replace(q5, recurse, replacement); + Q6 r6 = replace(q6, recurse, replacement); + Q7 r7 = replace(q7, recurse, replacement); + Q8 r8 = replace(q8, recurse, replacement); + Q9 r9 = replace(q9, recurse, replacement); + Q10 r10 = replace(q10, recurse, replacement); + Q11 r11 = replace(q11, recurse, replacement); + Q12 r12 = replace(q12, recurse, replacement); + Q13 r13 = replace(q13, recurse, replacement); + Q14 r14 = replace(q14, recurse, replacement); + Q15 r15 = replace(q15, recurse, replacement); + Q16 r16 = replace(q16, recurse, replacement); + Q17 r17 = replace(q17, recurse, replacement); + Q18 r18 = replace(q18, recurse, replacement); + Q19 r19 = replace(q19, recurse, replacement); + Q20 r20 = replace(q20, recurse, replacement); + Q21 r21 = replace(q21, recurse, replacement); + Q22 r22 = replace(q22, recurse, replacement); if (r1 != q1 || r2 != q2 || r3 != q3 || r4 != q4 || r5 != q5 || r6 != q6 || r7 != q7 || r8 != q8 || r9 != q9 || r10 != q10 || r11 != q11 || r12 != q12 || r13 != q13 || r14 != q14 || r15 != q15 || r16 != q16 || r17 != q17 || r18 != q18 || r19 != q19 || r20 != q20 || r21 != q21 || r22 != q22) wrapper = wrap.apply(r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20, r21, r22); - return replaceUntilStable(wrapper, replacement); + return replaceUntilStable(wrapper, recurse, replacement); } private static QR replaceUntilStable( QR wrapper, + Predicate recurse, Function1 replacement ) { QR q = wrapper; QR r = wrapper; do { - r = (QR) replacement.apply(q); + if (recurse.test(q)) + r = (QR) replacement.apply(q); } - while (r != null && r != q && (q = (QR) r.replace(replacement)) != null); + while (r != null && r != q && (q = (QR) r.replace(recurse, replacement)) != null); return r; } - - private static final T println(T t) { - System.out.println("Replace: " + t); - return t; - } } diff --git a/jOOQ/src/main/java/org/jooq/impl/QualifiedAsteriskImpl.java b/jOOQ/src/main/java/org/jooq/impl/QualifiedAsteriskImpl.java index 2731fdbe6f..84cadbbd1c 100644 --- a/jOOQ/src/main/java/org/jooq/impl/QualifiedAsteriskImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/QualifiedAsteriskImpl.java @@ -149,7 +149,10 @@ final class QualifiedAsteriskImpl extends AbstractQueryPart implements Qualified } @Override - public final MQueryPart replace(Function1 replacement) { - return QOM.replace(this, table, fields, QualifiedAsteriskImpl::new, replacement); + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { + return QOM.replace(this, table, fields, QualifiedAsteriskImpl::new, recurse, replacement); } } diff --git a/jOOQ/src/main/java/org/jooq/impl/QueriesImpl.java b/jOOQ/src/main/java/org/jooq/impl/QueriesImpl.java index c857390634..498f388f9f 100644 --- a/jOOQ/src/main/java/org/jooq/impl/QueriesImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/QueriesImpl.java @@ -171,8 +171,11 @@ final class QueriesImpl extends AbstractAttachableQueryPart implements Queries { } @Override - public final MQueryPart replace(Function1 replacement) { - return QOM.replace(this, queries, q -> new QueriesImpl(configuration(), q), replacement); + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { + return QOM.replace(this, queries, q -> new QueriesImpl(configuration(), q), recurse, replacement); } @Override diff --git a/jOOQ/src/main/java/org/jooq/impl/QueryPartCollectionView.java b/jOOQ/src/main/java/org/jooq/impl/QueryPartCollectionView.java index 225067350c..899d8c3c6f 100644 --- a/jOOQ/src/main/java/org/jooq/impl/QueryPartCollectionView.java +++ b/jOOQ/src/main/java/org/jooq/impl/QueryPartCollectionView.java @@ -353,13 +353,16 @@ class QueryPartCollectionView extends AbstractQueryPart imp } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace(this, wrapped, l -> { QueryPartList r = new QueryPartList<>(l); if (qualify != null) r = r.qualify(qualify); return r.map(mapper).separator(separator); - }, replacement); + }, recurse, replacement); } // ------------------------------------------------------------------------- diff --git a/jOOQ/src/main/java/org/jooq/impl/RTrim.java b/jOOQ/src/main/java/org/jooq/impl/RTrim.java index 31f4d3b756..09e7d69b42 100644 --- a/jOOQ/src/main/java/org/jooq/impl/RTrim.java +++ b/jOOQ/src/main/java/org/jooq/impl/RTrim.java @@ -186,12 +186,16 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $string(), $characters(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/Radians.java b/jOOQ/src/main/java/org/jooq/impl/Radians.java index 12227574a4..b1afa7c6ce 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Radians.java +++ b/jOOQ/src/main/java/org/jooq/impl/Radians.java @@ -151,11 +151,15 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $degrees(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/Rank.java b/jOOQ/src/main/java/org/jooq/impl/Rank.java index e12bcde98d..77607a71c9 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Rank.java +++ b/jOOQ/src/main/java/org/jooq/impl/Rank.java @@ -88,11 +88,15 @@ final class Rank extends AbstractWindowFunction implements MRank { } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $windowSpecification(), $windowDefinition(), (s, d) -> new RowNumber().$windowSpecification(s).$windowDefinition(d), + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/RatioToReport.java b/jOOQ/src/main/java/org/jooq/impl/RatioToReport.java index 1a2660fc9e..d6b1e9d150 100644 --- a/jOOQ/src/main/java/org/jooq/impl/RatioToReport.java +++ b/jOOQ/src/main/java/org/jooq/impl/RatioToReport.java @@ -135,7 +135,10 @@ final class RatioToReport extends AbstractAggregateFunction implemen } @Override - public final MQueryPart replace(Function1 replacement) { - return QOM.replace(this, field, RatioToReport::new, replacement); + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { + return QOM.replace(this, field, RatioToReport::new, recurse, replacement); } } diff --git a/jOOQ/src/main/java/org/jooq/impl/RegexpLike.java b/jOOQ/src/main/java/org/jooq/impl/RegexpLike.java index a1ea973759..c0eb7b9472 100644 --- a/jOOQ/src/main/java/org/jooq/impl/RegexpLike.java +++ b/jOOQ/src/main/java/org/jooq/impl/RegexpLike.java @@ -164,7 +164,10 @@ final class RegexpLike extends AbstractCondition implements MRegexpLike { } @Override - public final MQueryPart replace(Function1 replacement) { - return QOM.replace(this, search, pattern, RegexpLike::new, replacement); + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { + return QOM.replace(this, search, pattern, RegexpLike::new, recurse, replacement); } } diff --git a/jOOQ/src/main/java/org/jooq/impl/RegrAvgx.java b/jOOQ/src/main/java/org/jooq/impl/RegrAvgx.java index 410f74bb78..aaf08d9236 100644 --- a/jOOQ/src/main/java/org/jooq/impl/RegrAvgx.java +++ b/jOOQ/src/main/java/org/jooq/impl/RegrAvgx.java @@ -161,12 +161,16 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $y(), $x(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/RegrAvgy.java b/jOOQ/src/main/java/org/jooq/impl/RegrAvgy.java index 090ab5fd60..62022cd26b 100644 --- a/jOOQ/src/main/java/org/jooq/impl/RegrAvgy.java +++ b/jOOQ/src/main/java/org/jooq/impl/RegrAvgy.java @@ -161,12 +161,16 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $y(), $x(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/RegrCount.java b/jOOQ/src/main/java/org/jooq/impl/RegrCount.java index 72baf483f5..4db469e533 100644 --- a/jOOQ/src/main/java/org/jooq/impl/RegrCount.java +++ b/jOOQ/src/main/java/org/jooq/impl/RegrCount.java @@ -147,12 +147,16 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $y(), $x(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/RegrIntercept.java b/jOOQ/src/main/java/org/jooq/impl/RegrIntercept.java index b094434a7e..922d7964a0 100644 --- a/jOOQ/src/main/java/org/jooq/impl/RegrIntercept.java +++ b/jOOQ/src/main/java/org/jooq/impl/RegrIntercept.java @@ -151,12 +151,16 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $y(), $x(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/RegrR2.java b/jOOQ/src/main/java/org/jooq/impl/RegrR2.java index 149db0dc87..257782d157 100644 --- a/jOOQ/src/main/java/org/jooq/impl/RegrR2.java +++ b/jOOQ/src/main/java/org/jooq/impl/RegrR2.java @@ -155,12 +155,16 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $y(), $x(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/RegrSlope.java b/jOOQ/src/main/java/org/jooq/impl/RegrSlope.java index 68ffadedc5..fb38c5f731 100644 --- a/jOOQ/src/main/java/org/jooq/impl/RegrSlope.java +++ b/jOOQ/src/main/java/org/jooq/impl/RegrSlope.java @@ -151,12 +151,16 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $y(), $x(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/RegrSxx.java b/jOOQ/src/main/java/org/jooq/impl/RegrSxx.java index d561296061..def54bde43 100644 --- a/jOOQ/src/main/java/org/jooq/impl/RegrSxx.java +++ b/jOOQ/src/main/java/org/jooq/impl/RegrSxx.java @@ -161,12 +161,16 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $y(), $x(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/RegrSxy.java b/jOOQ/src/main/java/org/jooq/impl/RegrSxy.java index 80bd4ba4bb..44a379308f 100644 --- a/jOOQ/src/main/java/org/jooq/impl/RegrSxy.java +++ b/jOOQ/src/main/java/org/jooq/impl/RegrSxy.java @@ -165,12 +165,16 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $y(), $x(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/RegrSyy.java b/jOOQ/src/main/java/org/jooq/impl/RegrSyy.java index b45f8150d8..c1b626a44b 100644 --- a/jOOQ/src/main/java/org/jooq/impl/RegrSyy.java +++ b/jOOQ/src/main/java/org/jooq/impl/RegrSyy.java @@ -161,12 +161,16 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $y(), $x(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/Repeat.java b/jOOQ/src/main/java/org/jooq/impl/Repeat.java index cfade9db40..5854fe4bf6 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Repeat.java +++ b/jOOQ/src/main/java/org/jooq/impl/Repeat.java @@ -176,12 +176,16 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $string(), $count(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/Replace.java b/jOOQ/src/main/java/org/jooq/impl/Replace.java index 21ab3d3d1f..8a60270cfd 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Replace.java +++ b/jOOQ/src/main/java/org/jooq/impl/Replace.java @@ -227,13 +227,17 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $string(), $search(), $replace(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/Return.java b/jOOQ/src/main/java/org/jooq/impl/Return.java index 55aca93bbb..5db11dec28 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Return.java +++ b/jOOQ/src/main/java/org/jooq/impl/Return.java @@ -195,6 +195,10 @@ package org.jooq.impl; + + + + diff --git a/jOOQ/src/main/java/org/jooq/impl/Reverse.java b/jOOQ/src/main/java/org/jooq/impl/Reverse.java index 70ad60e3c5..8b5f4f9538 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Reverse.java +++ b/jOOQ/src/main/java/org/jooq/impl/Reverse.java @@ -140,11 +140,15 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $string(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/RevokeImpl.java b/jOOQ/src/main/java/org/jooq/impl/RevokeImpl.java index 56e8d55394..ccbf10a6b2 100644 --- a/jOOQ/src/main/java/org/jooq/impl/RevokeImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/RevokeImpl.java @@ -253,7 +253,10 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $privileges(), @@ -262,6 +265,7 @@ implements $from(), $fromPublic(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/Right.java b/jOOQ/src/main/java/org/jooq/impl/Right.java index 4fed471148..706a919db3 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Right.java +++ b/jOOQ/src/main/java/org/jooq/impl/Right.java @@ -158,12 +158,16 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $string(), $length(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/RoleImpl.java b/jOOQ/src/main/java/org/jooq/impl/RoleImpl.java index 142ad7fb1d..140e138d14 100644 --- a/jOOQ/src/main/java/org/jooq/impl/RoleImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/RoleImpl.java @@ -96,7 +96,10 @@ final class RoleImpl extends AbstractNamed implements Role { } @Override - public final MQueryPart replace(Function1 replacement) { - return QOM.replace(this, $name(), RoleImpl::new, replacement); + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { + return QOM.replace(this, $name(), RoleImpl::new, recurse, replacement); } } diff --git a/jOOQ/src/main/java/org/jooq/impl/Round.java b/jOOQ/src/main/java/org/jooq/impl/Round.java index 936dea05dd..a0e6804ddb 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Round.java +++ b/jOOQ/src/main/java/org/jooq/impl/Round.java @@ -225,12 +225,16 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $value(), $decimals(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/RowField.java b/jOOQ/src/main/java/org/jooq/impl/RowField.java index cc4b60e1fe..3959137e74 100644 --- a/jOOQ/src/main/java/org/jooq/impl/RowField.java +++ b/jOOQ/src/main/java/org/jooq/impl/RowField.java @@ -299,7 +299,10 @@ final class RowField extends AbstractField< } @Override - public final MQueryPart replace(Function1 replacement) { - return QOM.replace(this, row, RowField::new, replacement); + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { + return QOM.replace(this, row, RowField::new, recurse, replacement); } } diff --git a/jOOQ/src/main/java/org/jooq/impl/RowNumber.java b/jOOQ/src/main/java/org/jooq/impl/RowNumber.java index c9395878f9..b4d75e9f5f 100644 --- a/jOOQ/src/main/java/org/jooq/impl/RowNumber.java +++ b/jOOQ/src/main/java/org/jooq/impl/RowNumber.java @@ -95,11 +95,15 @@ final class RowNumber extends AbstractWindowFunction implements MRowNum } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $windowSpecification(), $windowDefinition(), (s, d) -> new RowNumber().$windowSpecification(s).$windowDefinition(d), + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/RowsFrom.java b/jOOQ/src/main/java/org/jooq/impl/RowsFrom.java index 2729d37ddd..2b2284a455 100644 --- a/jOOQ/src/main/java/org/jooq/impl/RowsFrom.java +++ b/jOOQ/src/main/java/org/jooq/impl/RowsFrom.java @@ -103,11 +103,15 @@ final class RowsFrom extends AbstractTable implements MRowsFrom { } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, tables.toArray(EMPTY_TABLE), RowsFrom::new, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/Rpad.java b/jOOQ/src/main/java/org/jooq/impl/Rpad.java index 98882721f7..e01a4fbfdc 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Rpad.java +++ b/jOOQ/src/main/java/org/jooq/impl/Rpad.java @@ -205,13 +205,17 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $string(), $length(), $character(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/SchemaImpl.java b/jOOQ/src/main/java/org/jooq/impl/SchemaImpl.java index 6b1243f2c4..79b41d0686 100644 --- a/jOOQ/src/main/java/org/jooq/impl/SchemaImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/SchemaImpl.java @@ -360,8 +360,11 @@ public class SchemaImpl extends AbstractNamed implements Schema { } @Override - public final MQueryPart replace(Function1 replacement) { - return QOM.replace(this, getQualifiedName(), getCatalog(), getCommentPart(), SchemaImpl::new, replacement); + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { + return QOM.replace(this, getQualifiedName(), getCatalog(), getCommentPart(), SchemaImpl::new, recurse, replacement); } // ------------------------------------------------------------------------ diff --git a/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java b/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java index 154946ab73..1b79c241b7 100644 --- a/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java @@ -4594,7 +4594,10 @@ final class SelectQueryImpl extends AbstractResultQuery imp } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $with(), @@ -4619,6 +4622,7 @@ final class SelectQueryImpl extends AbstractResultQuery imp r.orderBy.addAll(o); return r; }, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/SetCatalog.java b/jOOQ/src/main/java/org/jooq/impl/SetCatalog.java index 099483a548..6db95b5dfc 100644 --- a/jOOQ/src/main/java/org/jooq/impl/SetCatalog.java +++ b/jOOQ/src/main/java/org/jooq/impl/SetCatalog.java @@ -147,11 +147,15 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $catalog(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/SetCommand.java b/jOOQ/src/main/java/org/jooq/impl/SetCommand.java index 6564c9cc52..af564ac4a4 100644 --- a/jOOQ/src/main/java/org/jooq/impl/SetCommand.java +++ b/jOOQ/src/main/java/org/jooq/impl/SetCommand.java @@ -148,13 +148,17 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $name(), $value(), $local(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/SetSchema.java b/jOOQ/src/main/java/org/jooq/impl/SetSchema.java index 95d3993639..5eeba11fc2 100644 --- a/jOOQ/src/main/java/org/jooq/impl/SetSchema.java +++ b/jOOQ/src/main/java/org/jooq/impl/SetSchema.java @@ -152,11 +152,15 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $schema(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/Sign.java b/jOOQ/src/main/java/org/jooq/impl/Sign.java index 7489e65feb..5627433442 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Sign.java +++ b/jOOQ/src/main/java/org/jooq/impl/Sign.java @@ -146,11 +146,15 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $number(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/Signal.java b/jOOQ/src/main/java/org/jooq/impl/Signal.java index 2b92363aed..e13afc7859 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Signal.java +++ b/jOOQ/src/main/java/org/jooq/impl/Signal.java @@ -257,6 +257,10 @@ package org.jooq.impl; + + + + diff --git a/jOOQ/src/main/java/org/jooq/impl/Sin.java b/jOOQ/src/main/java/org/jooq/impl/Sin.java index 4b4ea82739..3c18f0b7a7 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Sin.java +++ b/jOOQ/src/main/java/org/jooq/impl/Sin.java @@ -135,11 +135,15 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $number(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/Sinh.java b/jOOQ/src/main/java/org/jooq/impl/Sinh.java index cc55db4e52..a2adf8d4de 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Sinh.java +++ b/jOOQ/src/main/java/org/jooq/impl/Sinh.java @@ -159,11 +159,15 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $number(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/SortFieldImpl.java b/jOOQ/src/main/java/org/jooq/impl/SortFieldImpl.java index f08b958133..066657cc61 100644 --- a/jOOQ/src/main/java/org/jooq/impl/SortFieldImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/SortFieldImpl.java @@ -226,7 +226,10 @@ final class SortFieldImpl extends AbstractQueryPart implements SortField, } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, field, order, nullOrdering, @@ -235,6 +238,7 @@ final class SortFieldImpl extends AbstractQueryPart implements SortField, r.nullOrdering = n; return r; }, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/Space.java b/jOOQ/src/main/java/org/jooq/impl/Space.java index 231cd95c48..045f9f5e11 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Space.java +++ b/jOOQ/src/main/java/org/jooq/impl/Space.java @@ -158,11 +158,15 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $count(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/SplitPart.java b/jOOQ/src/main/java/org/jooq/impl/SplitPart.java index 718484cb35..a660133e37 100644 --- a/jOOQ/src/main/java/org/jooq/impl/SplitPart.java +++ b/jOOQ/src/main/java/org/jooq/impl/SplitPart.java @@ -239,13 +239,17 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $string(), $delimiter(), $n(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/Sqrt.java b/jOOQ/src/main/java/org/jooq/impl/Sqrt.java index cad5012733..4a90654b08 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Sqrt.java +++ b/jOOQ/src/main/java/org/jooq/impl/Sqrt.java @@ -154,11 +154,15 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $value(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/Square.java b/jOOQ/src/main/java/org/jooq/impl/Square.java index bf209fdfca..9e8f2f3e1e 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Square.java +++ b/jOOQ/src/main/java/org/jooq/impl/Square.java @@ -172,11 +172,15 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $value(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/StddevPop.java b/jOOQ/src/main/java/org/jooq/impl/StddevPop.java index 9ce688f0da..8cd5c21a38 100644 --- a/jOOQ/src/main/java/org/jooq/impl/StddevPop.java +++ b/jOOQ/src/main/java/org/jooq/impl/StddevPop.java @@ -136,11 +136,15 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $field(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/StddevSamp.java b/jOOQ/src/main/java/org/jooq/impl/StddevSamp.java index d59bc5b1a2..91c3980d50 100644 --- a/jOOQ/src/main/java/org/jooq/impl/StddevSamp.java +++ b/jOOQ/src/main/java/org/jooq/impl/StddevSamp.java @@ -136,11 +136,15 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $field(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/Substring.java b/jOOQ/src/main/java/org/jooq/impl/Substring.java index dd2bec4802..9003b3255e 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Substring.java +++ b/jOOQ/src/main/java/org/jooq/impl/Substring.java @@ -232,13 +232,17 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $string(), $startingPosition(), $length(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/SubstringIndex.java b/jOOQ/src/main/java/org/jooq/impl/SubstringIndex.java index 435cc5ea5c..67d4e1bd63 100644 --- a/jOOQ/src/main/java/org/jooq/impl/SubstringIndex.java +++ b/jOOQ/src/main/java/org/jooq/impl/SubstringIndex.java @@ -178,13 +178,17 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $string(), $delimiter(), $n(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/Sum.java b/jOOQ/src/main/java/org/jooq/impl/Sum.java index bca1d835f3..2a2604ea1c 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Sum.java +++ b/jOOQ/src/main/java/org/jooq/impl/Sum.java @@ -119,12 +119,16 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $field(), $distinct(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/SysConnectByPath.java b/jOOQ/src/main/java/org/jooq/impl/SysConnectByPath.java index cbcf8eed67..8ded9b75d5 100644 --- a/jOOQ/src/main/java/org/jooq/impl/SysConnectByPath.java +++ b/jOOQ/src/main/java/org/jooq/impl/SysConnectByPath.java @@ -181,6 +181,10 @@ package org.jooq.impl; + + + + diff --git a/jOOQ/src/main/java/org/jooq/impl/TableAlias.java b/jOOQ/src/main/java/org/jooq/impl/TableAlias.java index d7241dd045..56318de87b 100644 --- a/jOOQ/src/main/java/org/jooq/impl/TableAlias.java +++ b/jOOQ/src/main/java/org/jooq/impl/TableAlias.java @@ -201,8 +201,11 @@ final class TableAlias extends AbstractTable implements MTa } @Override - public final MQueryPart replace(Function1 replacement) { - return QOM.replace(this, $table(), $alias(), (t, n) -> new TableAlias<>((Table) t, (Name) n, alias.fieldAliases, alias.wrapInParentheses), replacement); + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { + return QOM.replace(this, $table(), $alias(), (t, n) -> new TableAlias<>((Table) t, (Name) n, alias.fieldAliases, alias.wrapInParentheses), recurse, replacement); } // ------------------------------------------------------------------------ diff --git a/jOOQ/src/main/java/org/jooq/impl/TableImpl.java b/jOOQ/src/main/java/org/jooq/impl/TableImpl.java index 07fafd9586..9e190631a8 100644 --- a/jOOQ/src/main/java/org/jooq/impl/TableImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/TableImpl.java @@ -450,8 +450,11 @@ public class TableImpl extends AbstractTable implements Sco } @Override - public final MQueryPart replace(Function1 replacement) { - return QOM.replace(this, getSchema(), s -> new TableImpl<>(getQualifiedName(), s), replacement); + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { + return QOM.replace(this, getSchema(), s -> new TableImpl<>(getQualifiedName(), s), recurse, replacement); } // ------------------------------------------------------------------------ diff --git a/jOOQ/src/main/java/org/jooq/impl/Tan.java b/jOOQ/src/main/java/org/jooq/impl/Tan.java index bd6f5bad40..e9f7b85e7b 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Tan.java +++ b/jOOQ/src/main/java/org/jooq/impl/Tan.java @@ -135,11 +135,15 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $number(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/Tanh.java b/jOOQ/src/main/java/org/jooq/impl/Tanh.java index 91d9bfdb91..4e43672fbd 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Tanh.java +++ b/jOOQ/src/main/java/org/jooq/impl/Tanh.java @@ -159,11 +159,15 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $number(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/ToChar.java b/jOOQ/src/main/java/org/jooq/impl/ToChar.java index fceeaf9111..1f32142be8 100644 --- a/jOOQ/src/main/java/org/jooq/impl/ToChar.java +++ b/jOOQ/src/main/java/org/jooq/impl/ToChar.java @@ -180,12 +180,16 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $value(), $formatMask(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/ToDate.java b/jOOQ/src/main/java/org/jooq/impl/ToDate.java index f20d80c1b0..801dc06293 100644 --- a/jOOQ/src/main/java/org/jooq/impl/ToDate.java +++ b/jOOQ/src/main/java/org/jooq/impl/ToDate.java @@ -165,12 +165,16 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $value(), $formatMask(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/ToHex.java b/jOOQ/src/main/java/org/jooq/impl/ToHex.java index a3bdd1daa0..0c3e6447d5 100644 --- a/jOOQ/src/main/java/org/jooq/impl/ToHex.java +++ b/jOOQ/src/main/java/org/jooq/impl/ToHex.java @@ -154,11 +154,15 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $value(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/ToTimestamp.java b/jOOQ/src/main/java/org/jooq/impl/ToTimestamp.java index 8920e97c75..e1006df4b4 100644 --- a/jOOQ/src/main/java/org/jooq/impl/ToTimestamp.java +++ b/jOOQ/src/main/java/org/jooq/impl/ToTimestamp.java @@ -165,12 +165,16 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $value(), $formatMask(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/Translate.java b/jOOQ/src/main/java/org/jooq/impl/Translate.java index b462ddd02d..1286539295 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Translate.java +++ b/jOOQ/src/main/java/org/jooq/impl/Translate.java @@ -173,13 +173,17 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $string(), $from(), $to(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/Trim.java b/jOOQ/src/main/java/org/jooq/impl/Trim.java index 4f4243aa92..8de9b7f088 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Trim.java +++ b/jOOQ/src/main/java/org/jooq/impl/Trim.java @@ -192,12 +192,16 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $string(), $characters(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/Trunc.java b/jOOQ/src/main/java/org/jooq/impl/Trunc.java index 61e3772294..5caa9432c0 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Trunc.java +++ b/jOOQ/src/main/java/org/jooq/impl/Trunc.java @@ -209,12 +209,16 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $value(), $decimals(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/TruncateImpl.java b/jOOQ/src/main/java/org/jooq/impl/TruncateImpl.java index 4d677dd65f..b27d410ddd 100644 --- a/jOOQ/src/main/java/org/jooq/impl/TruncateImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/TruncateImpl.java @@ -236,13 +236,17 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $table(), $restartIdentity(), $cascade(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/Unique.java b/jOOQ/src/main/java/org/jooq/impl/Unique.java index a6874d1b5e..e9e2fa5622 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Unique.java +++ b/jOOQ/src/main/java/org/jooq/impl/Unique.java @@ -153,11 +153,15 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $query(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/Upper.java b/jOOQ/src/main/java/org/jooq/impl/Upper.java index 7204af686c..b99a524720 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Upper.java +++ b/jOOQ/src/main/java/org/jooq/impl/Upper.java @@ -140,11 +140,15 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $string(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/UserImpl.java b/jOOQ/src/main/java/org/jooq/impl/UserImpl.java index 73fc732645..046e534465 100644 --- a/jOOQ/src/main/java/org/jooq/impl/UserImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/UserImpl.java @@ -92,7 +92,10 @@ final class UserImpl extends AbstractNamed implements User { } @Override - public final MQueryPart replace(Function1 replacement) { - return QOM.replace(this, $name(), RoleImpl::new, replacement); + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { + return QOM.replace(this, $name(), RoleImpl::new, recurse, replacement); } } diff --git a/jOOQ/src/main/java/org/jooq/impl/VarPop.java b/jOOQ/src/main/java/org/jooq/impl/VarPop.java index 01f8777e6d..440a72edf0 100644 --- a/jOOQ/src/main/java/org/jooq/impl/VarPop.java +++ b/jOOQ/src/main/java/org/jooq/impl/VarPop.java @@ -147,11 +147,15 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $field(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/VarSamp.java b/jOOQ/src/main/java/org/jooq/impl/VarSamp.java index 5103a681bf..30c92fe162 100644 --- a/jOOQ/src/main/java/org/jooq/impl/VarSamp.java +++ b/jOOQ/src/main/java/org/jooq/impl/VarSamp.java @@ -135,11 +135,15 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $field(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/VariableImpl.java b/jOOQ/src/main/java/org/jooq/impl/VariableImpl.java index 57cde14628..bdcbdba8fd 100644 --- a/jOOQ/src/main/java/org/jooq/impl/VariableImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/VariableImpl.java @@ -151,6 +151,9 @@ package org.jooq.impl; + + + diff --git a/jOOQ/src/main/java/org/jooq/impl/WidthBucket.java b/jOOQ/src/main/java/org/jooq/impl/WidthBucket.java index 6cf9b047d4..c9c7ad4d9e 100644 --- a/jOOQ/src/main/java/org/jooq/impl/WidthBucket.java +++ b/jOOQ/src/main/java/org/jooq/impl/WidthBucket.java @@ -195,7 +195,10 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $field(), @@ -203,6 +206,7 @@ implements $high(), $buckets(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/WindowDefinitionImpl.java b/jOOQ/src/main/java/org/jooq/impl/WindowDefinitionImpl.java index 16c7544fda..dd0e6c2054 100644 --- a/jOOQ/src/main/java/org/jooq/impl/WindowDefinitionImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/WindowDefinitionImpl.java @@ -328,7 +328,10 @@ final class WindowDefinitionImpl extends AbstractQueryPart implements WindowDefi } @Override - public final MQueryPart replace(Function1 replacement) { - return QOM.replace(this, name, window, WindowDefinitionImpl::new, replacement); + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { + return QOM.replace(this, name, window, WindowDefinitionImpl::new, recurse, replacement); } } diff --git a/jOOQ/src/main/java/org/jooq/impl/WindowSpecificationImpl.java b/jOOQ/src/main/java/org/jooq/impl/WindowSpecificationImpl.java index d9e085e97d..8244063bb3 100644 --- a/jOOQ/src/main/java/org/jooq/impl/WindowSpecificationImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/WindowSpecificationImpl.java @@ -740,7 +740,10 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $windowDefinition(), $partitionBy(), $orderBy(), @@ -753,6 +756,7 @@ implements r.exclude = exclude; return r; }, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/WithImpl.java b/jOOQ/src/main/java/org/jooq/impl/WithImpl.java index c1841dff96..8d91fc34d5 100644 --- a/jOOQ/src/main/java/org/jooq/impl/WithImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/WithImpl.java @@ -1195,7 +1195,10 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { - return QOM.replace(this, ctes, recursive, (c, r) -> new WithImpl(configuration, r).with(c), replacement); + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { + return QOM.replace(this, ctes, recursive, (c, r) -> new WithImpl(configuration, r).with(c), recurse, replacement); } } diff --git a/jOOQ/src/main/java/org/jooq/impl/XMLAttributesImpl.java b/jOOQ/src/main/java/org/jooq/impl/XMLAttributesImpl.java index 24e0c56529..07474752bf 100644 --- a/jOOQ/src/main/java/org/jooq/impl/XMLAttributesImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/XMLAttributesImpl.java @@ -114,7 +114,10 @@ final class XMLAttributesImpl extends AbstractQueryPart implements XMLAttributes } @Override - public final MQueryPart replace(Function1 replacement) { - return QOM.replace(this, $attributes(), XMLAttributesImpl::new, replacement); + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { + return QOM.replace(this, $attributes(), XMLAttributesImpl::new, recurse, replacement); } } diff --git a/jOOQ/src/main/java/org/jooq/impl/XMLComment.java b/jOOQ/src/main/java/org/jooq/impl/XMLComment.java index f828d6f0e5..08fa72e670 100644 --- a/jOOQ/src/main/java/org/jooq/impl/XMLComment.java +++ b/jOOQ/src/main/java/org/jooq/impl/XMLComment.java @@ -133,11 +133,15 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $comment(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/XMLElement.java b/jOOQ/src/main/java/org/jooq/impl/XMLElement.java index 9213ed7d1a..c1a3390a4d 100644 --- a/jOOQ/src/main/java/org/jooq/impl/XMLElement.java +++ b/jOOQ/src/main/java/org/jooq/impl/XMLElement.java @@ -192,7 +192,10 @@ final class XMLElement extends AbstractField implements MXmlelement { } @Override - public final MQueryPart replace(Function1 replacement) { - return QOM.replace(this, $elementName(), $attributes(), $content(), XMLElement::new, replacement); + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { + return QOM.replace(this, $elementName(), $attributes(), $content(), XMLElement::new, recurse, replacement); } } diff --git a/jOOQ/src/main/java/org/jooq/impl/XMLExists.java b/jOOQ/src/main/java/org/jooq/impl/XMLExists.java index aabfbb3377..fd446840de 100644 --- a/jOOQ/src/main/java/org/jooq/impl/XMLExists.java +++ b/jOOQ/src/main/java/org/jooq/impl/XMLExists.java @@ -151,7 +151,10 @@ final class XMLExists extends AbstractCondition implements XMLExistsPassingStep, } @Override - public final MQueryPart replace(Function1 replacement) { - return QOM.replace(this, xpath, passing, (x, p) -> new XMLExists(x, passing, passingMechanism), replacement); + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { + return QOM.replace(this, xpath, passing, (x, p) -> new XMLExists(x, passing, passingMechanism), recurse, replacement); } } diff --git a/jOOQ/src/main/java/org/jooq/impl/XMLForest.java b/jOOQ/src/main/java/org/jooq/impl/XMLForest.java index 10564b3979..ba58c35aae 100644 --- a/jOOQ/src/main/java/org/jooq/impl/XMLForest.java +++ b/jOOQ/src/main/java/org/jooq/impl/XMLForest.java @@ -137,11 +137,15 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $fields(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/XMLParse.java b/jOOQ/src/main/java/org/jooq/impl/XMLParse.java index 9da15a1988..259780d28a 100644 --- a/jOOQ/src/main/java/org/jooq/impl/XMLParse.java +++ b/jOOQ/src/main/java/org/jooq/impl/XMLParse.java @@ -149,7 +149,10 @@ final class XMLParse extends AbstractField implements MXmlparse { } @Override - public final MQueryPart replace(Function1 replacement) { - return QOM.replace(this, content, c -> new XMLParse(c, documentOrContent), replacement); + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { + return QOM.replace(this, content, c -> new XMLParse(c, documentOrContent), recurse, replacement); } } diff --git a/jOOQ/src/main/java/org/jooq/impl/XMLQuery.java b/jOOQ/src/main/java/org/jooq/impl/XMLQuery.java index bec1e0c7da..3eb73b1497 100644 --- a/jOOQ/src/main/java/org/jooq/impl/XMLQuery.java +++ b/jOOQ/src/main/java/org/jooq/impl/XMLQuery.java @@ -183,7 +183,10 @@ final class XMLQuery extends AbstractField implements XMLQueryPassingStep, } @Override - public final MQueryPart replace(Function1 replacement) { - return QOM.replace(this, xpath, passing, (x, p) -> new XMLQuery(x, passing, passingMechanism), replacement); + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { + return QOM.replace(this, xpath, passing, (x, p) -> new XMLQuery(x, passing, passingMechanism), recurse, replacement); } } diff --git a/jOOQ/src/main/java/org/jooq/impl/Xmlconcat.java b/jOOQ/src/main/java/org/jooq/impl/Xmlconcat.java index f40fa693e6..10ef1b05e3 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Xmlconcat.java +++ b/jOOQ/src/main/java/org/jooq/impl/Xmlconcat.java @@ -135,11 +135,15 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $args(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/Xmldocument.java b/jOOQ/src/main/java/org/jooq/impl/Xmldocument.java index 672b7e22cc..723d3df8d4 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Xmldocument.java +++ b/jOOQ/src/main/java/org/jooq/impl/Xmldocument.java @@ -166,6 +166,10 @@ package org.jooq.impl; + + + + diff --git a/jOOQ/src/main/java/org/jooq/impl/Xmlpi.java b/jOOQ/src/main/java/org/jooq/impl/Xmlpi.java index 2d48656dbe..e698431eed 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Xmlpi.java +++ b/jOOQ/src/main/java/org/jooq/impl/Xmlpi.java @@ -167,12 +167,16 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $target(), $content(), constructor()::apply, + recurse, replacement ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/Xmlserialize.java b/jOOQ/src/main/java/org/jooq/impl/Xmlserialize.java index dce6c5345c..5d4dc237a9 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Xmlserialize.java +++ b/jOOQ/src/main/java/org/jooq/impl/Xmlserialize.java @@ -177,13 +177,17 @@ implements } @Override - public final MQueryPart replace(Function1 replacement) { + public final MQueryPart replace( + Predicate recurse, + Function1 replacement + ) { return QOM.replace( this, $content(), $value(), $type(), constructor()::apply, + recurse, replacement ); }