[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])
This commit is contained in:
Lukas Eder 2021-09-30 11:52:28 +02:00
parent 2d98150483
commit 32c87800fe
217 changed files with 1403 additions and 536 deletions

View File

@ -134,11 +134,15 @@ implements
}
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(
this,
$number(),
constructor()::apply,
recurse,
replacement
);
}

View File

@ -171,17 +171,6 @@ abstract class AbstractCondition extends AbstractQueryPart implements Condition
return or(notExists(select));
}
static final Condition unwrapNot(Condition c, BiFunction<? super Condition, ? super Boolean, ? extends Condition> function) {
boolean not = false;
while (c instanceof Not) {
c = ((Not) c).condition;
not = !not;
}
return function.apply(c, not);
}
// -------------------------------------------------------------------------

View File

@ -185,11 +185,15 @@ abstract class AbstractLeadLag<T> extends AbstractWindowFunction<T> {
}
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> 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
);
}

View File

@ -440,8 +440,11 @@ abstract class AbstractRow<R extends Record> extends AbstractQueryPart implement
}
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
return QOM.replace(this, fields(), Tools::row0, replacement);
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(this, fields(), Tools::row0, recurse, replacement);
}
}

View File

@ -150,11 +150,15 @@ implements
}
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(
this,
$number(),
constructor()::apply,
recurse,
replacement
);
}

View File

@ -209,13 +209,17 @@ implements
}
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(
this,
$database(),
$ifExists(),
$renameTo(),
constructor()::apply,
recurse,
replacement
);
}

View File

@ -528,7 +528,10 @@ implements
}
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(
this,
$domain(),
@ -546,6 +549,7 @@ implements
$cascade(),
$renameConstraintTo(),
constructor()::apply,
recurse,
replacement
);
}

View File

@ -298,7 +298,10 @@ implements
}
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(
this,
$index(),
@ -306,6 +309,7 @@ implements
$on(),
$renameTo(),
constructor()::apply,
recurse,
replacement
);
}

View File

@ -231,13 +231,17 @@ implements
}
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(
this,
$schema(),
$ifExists(),
$renameTo(),
constructor()::apply,
recurse,
replacement
);
}

View File

@ -612,7 +612,10 @@ implements
}
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(
this,
$sequence(),
@ -630,6 +633,7 @@ implements
$cache(),
$noCache(),
constructor()::apply,
recurse,
replacement
);
}

View File

@ -272,7 +272,10 @@ implements
}
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(
this,
$type(),
@ -282,6 +285,7 @@ implements
$renameValue(),
$renameValueTo(),
constructor()::apply,
recurse,
replacement
);
}

View File

@ -315,7 +315,10 @@ implements
}
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(
this,
$view(),
@ -323,6 +326,7 @@ implements
$comment(),
$renameTo(),
constructor()::apply,
recurse,
replacement
);
}

View File

@ -157,11 +157,15 @@ implements
}
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(
this,
$field(),
constructor()::apply,
recurse,
replacement
);
}

View File

@ -133,7 +133,10 @@ final class Array<T> extends AbstractField<T[]> implements MArray<T> {
}
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
return QOM.replace(this, fields, f -> new Array<>(asList((Field<T>[]) f.fields)), replacement);
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(this, fields, f -> new Array<>(asList((Field<T>[]) f.fields)), recurse, replacement);
}
}

View File

@ -173,12 +173,16 @@ implements
}
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(
this,
$array(),
$index(),
constructor()::apply,
recurse,
replacement
);
}

View File

@ -116,7 +116,10 @@ final class ArraySelect<T> extends AbstractField<T[]> implements MArrayQuery<T>
}
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
return QOM.replace(this, select, ArraySelect::new, replacement);
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(this, select, ArraySelect::new, recurse, replacement);
}
}

View File

@ -144,11 +144,15 @@ implements
}
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(
this,
$string(),
constructor()::apply,
recurse,
replacement
);
}

View File

@ -146,11 +146,15 @@ implements
}
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(
this,
$number(),
constructor()::apply,
recurse,
replacement
);
}

View File

@ -177,6 +177,9 @@ package org.jooq.impl;

View File

@ -136,7 +136,10 @@ final class AsteriskImpl extends AbstractQueryPart implements Asterisk, MAsteris
}
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
return QOM.replace(this, fields, AsteriskImpl::new, replacement);
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(this, fields, AsteriskImpl::new, recurse, replacement);
}
}

View File

@ -141,11 +141,15 @@ implements
}
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(
this,
$number(),
constructor()::apply,
recurse,
replacement
);
}

View File

@ -158,12 +158,16 @@ implements
}
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(
this,
$x(),
$y(),
constructor()::apply,
recurse,
replacement
);
}

View File

@ -119,12 +119,16 @@ implements
}
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(
this,
$field(),
$distinct(),
constructor()::apply,
recurse,
replacement
);
}

View File

@ -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<T> extends AbstractCondition implements BetweenAndS
// -------------------------------------------------------------------------
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(
this,
field,
@ -202,6 +206,7 @@ final class BetweenCondition<T> extends AbstractCondition implements BetweenAndS
: symmetric
? Field::betweenSymmetric
: Field::between,
recurse,
replacement
);
}

View File

@ -302,11 +302,15 @@ implements
}
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(
this,
$value(),
constructor()::apply,
recurse,
replacement
);
}

View File

@ -481,11 +481,15 @@ implements
}
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(
this,
$number(),
constructor()::apply,
recurse,
replacement
);
}

View File

@ -165,11 +165,15 @@ implements
}
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(
this,
$string(),
constructor()::apply,
recurse,
replacement
);
}

View File

@ -302,11 +302,15 @@ implements
}
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(
this,
$value(),
constructor()::apply,
recurse,
replacement
);
}

View File

@ -307,11 +307,15 @@ implements
}
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(
this,
$value(),
constructor()::apply,
recurse,
replacement
);
}

View File

@ -612,7 +612,10 @@ final class BlockImpl extends AbstractRowCountQuery implements Block, MBlock {
}
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
return QOM.replace(this, statements, s -> new BlockImpl(configuration(), statements, alwaysWrapInBeginEnd), replacement);
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(this, statements, s -> new BlockImpl(configuration(), statements, alwaysWrapInBeginEnd), recurse, replacement);
}
}

View File

@ -148,11 +148,15 @@ implements
}
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(
this,
$condition(),
constructor()::apply,
recurse,
replacement
);
}

View File

@ -149,11 +149,15 @@ implements
}
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(
this,
$condition(),
constructor()::apply,
recurse,
replacement
);
}

View File

@ -208,6 +208,10 @@ package org.jooq.impl;

View File

@ -134,11 +134,15 @@ implements
}
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(
this,
$array(),
constructor()::apply,
recurse,
replacement
);
}

View File

@ -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<T> extends AbstractField<T> implements CaseCon
ctx.formatSeparator()
.visit(K_WHEN).sql(' ').visit(c).sql(' ')
.visit(K_THEN).sql(' ').visit(results.get(i));

View File

@ -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<T> extends AbstractField<T> implements MCast<T> {
}
@Override
public final MQueryPart replace(org.jooq.Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(
this,
$field(),
$dataType(),
Cast::new,
recurse,
replacement
);
}

View File

@ -137,8 +137,11 @@ public class CatalogImpl extends AbstractNamed implements Catalog {
}
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
return QOM.replace(this, getQualifiedName(), getCommentPart(), CatalogImpl::new, replacement);
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(this, getQualifiedName(), getCommentPart(), CatalogImpl::new, recurse, replacement);
}
// ------------------------------------------------------------------------

View File

@ -153,11 +153,15 @@ implements
}
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(
this,
$value(),
constructor()::apply,
recurse,
replacement
);
}

View File

@ -154,11 +154,15 @@ implements
}
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(
this,
$string(),
constructor()::apply,
recurse,
replacement
);
}

View File

@ -154,11 +154,15 @@ implements
}
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(
this,
$number(),
constructor()::apply,
recurse,
replacement
);
}

View File

@ -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<T> extends AbstractField<T> implements MCoerce<T> {
}
@Override
public final MQueryPart replace(org.jooq.Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(
this,
$field(),
$dataType(),
Coerce::new,
recurse,
replacement
);
}

View File

@ -103,8 +103,11 @@ final class CollatedField extends AbstractField<String> implements MCollated {
}
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
return QOM.replace(this, field, collation, CollatedField::new, replacement);
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(this, field, collation, CollatedField::new, recurse, replacement);
}
@Override

View File

@ -310,7 +310,10 @@ implements
}
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(
this,
$table(),
@ -318,6 +321,7 @@ implements
$field(),
$comment(),
constructor()::apply,
recurse,
replacement
);
}

View File

@ -204,7 +204,10 @@ final class CommonTableExpressionImpl<R extends Record> extends AbstractTable<R>
}
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
return QOM.replace(this, name, query, materialized, CommonTableExpressionImpl::new, replacement);
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(this, name, query, materialized, CommonTableExpressionImpl::new, recurse, replacement);
}
}

View File

@ -157,11 +157,15 @@ implements
}
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(
this,
$condition(),
constructor()::apply,
recurse,
replacement
);
}

View File

@ -161,6 +161,10 @@ package org.jooq.impl;

View File

@ -187,6 +187,9 @@ package org.jooq.impl;

View File

@ -229,6 +229,11 @@ package org.jooq.impl;

View File

@ -151,12 +151,16 @@ implements
}
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(
this,
$y(),
$x(),
constructor()::apply,
recurse,
replacement
);
}

View File

@ -135,11 +135,15 @@ implements
}
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(
this,
$number(),
constructor()::apply,
recurse,
replacement
);
}

View File

@ -162,11 +162,15 @@ implements
}
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(
this,
$number(),
constructor()::apply,
recurse,
replacement
);
}

View File

@ -146,11 +146,15 @@ implements
}
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(
this,
$number(),
constructor()::apply,
recurse,
replacement
);
}

View File

@ -138,11 +138,15 @@ implements
}
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(
this,
$number(),
constructor()::apply,
recurse,
replacement
);
}

View File

@ -117,12 +117,16 @@ implements
}
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(
this,
$field(),
$distinct(),
constructor()::apply,
recurse,
replacement
);
}

View File

@ -115,12 +115,16 @@ final class CountTable extends AbstractAggregateFunction<Integer> implements MCo
}
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(
this,
$table(),
distinct,
CountTable::new,
recurse,
replacement
);
}

View File

@ -151,12 +151,16 @@ implements
}
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(
this,
$y(),
$x(),
constructor()::apply,
recurse,
replacement
);
}

View File

@ -151,12 +151,16 @@ implements
}
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(
this,
$y(),
$x(),
constructor()::apply,
recurse,
replacement
);
}

View File

@ -147,12 +147,16 @@ implements
}
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(
this,
$database(),
$ifNotExists(),
constructor()::apply,
recurse,
replacement
);
}

View File

@ -261,7 +261,10 @@ implements
}
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(
this,
$domain(),
@ -270,6 +273,7 @@ implements
$default_(),
$constraints(),
constructor()::apply,
recurse,
replacement
);
}

View File

@ -447,6 +447,10 @@ package org.jooq.impl;

View File

@ -462,7 +462,10 @@ implements
}
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(
this,
$unique(),
@ -474,6 +477,7 @@ implements
$where(),
$excludeNullKeys(),
constructor()::apply,
recurse,
replacement
);
}

View File

@ -390,6 +390,10 @@ package org.jooq.impl;

View File

@ -202,12 +202,16 @@ implements
}
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(
this,
$schema(),
$ifNotExists(),
constructor()::apply,
recurse,
replacement
);
}

View File

@ -440,7 +440,10 @@ implements
}
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(
this,
$sequence(),
@ -456,6 +459,7 @@ implements
$cache(),
$noCache(),
constructor()::apply,
recurse,
replacement
);
}

View File

@ -725,6 +725,10 @@ package org.jooq.impl;

View File

@ -148,7 +148,10 @@ final class CreateTypeImpl extends AbstractDDLQuery implements
}
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
return QOM.replace(this, type, values, (t, v) -> new CreateTypeImpl(configuration(), t).asEnum(v), replacement);
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(this, type, values, (t, v) -> new CreateTypeImpl(configuration(), t).asEnum(v), recurse, replacement);
}
}

View File

@ -323,11 +323,14 @@ final class CreateViewImpl<R extends Record> extends AbstractDDLQuery implements
}
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(this, view, fields, select, (v, f, s) -> {
CreateViewImpl<Record> r = new CreateViewImpl<>(configuration(), v, f, ifNotExists, orReplace);
r.select = s;
return r;
}, replacement);
}, recurse, replacement);
}
}

View File

@ -108,11 +108,15 @@ final class CumeDist extends AbstractWindowFunction<BigDecimal> implements MCume
}
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(
this,
$windowSpecification(), $windowDefinition(),
(s, d) -> new RowNumber().$windowSpecification(s).$windowDefinition(d),
recurse,
replacement
);
}

View File

@ -210,7 +210,10 @@ final class DataChangeDeltaTable<R extends Record> extends AbstractTable<R> impl
}
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
return QOM.replace(this, resultOption, query, DataChangeDeltaTable::new, replacement);
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(this, resultOption, query, DataChangeDeltaTable::new, recurse, replacement);
}
}

View File

@ -456,13 +456,17 @@ implements
}
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(
this,
$date(),
$interval(),
$datePart(),
constructor()::apply,
recurse,
replacement
);
}

View File

@ -228,6 +228,9 @@ package org.jooq.impl;

View File

@ -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<T> extends AbstractAggregateFunction<T> {
// -------------------------------------------------------------------------
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
return QOM.replace(this, arguments, a -> new DefaultAggregateFunction<>(distinct, getQualifiedName(), getDataType(), a.toArray(EMPTY_FIELD)), replacement);
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(this, arguments, a -> new DefaultAggregateFunction<>(distinct, getQualifiedName(), getDataType(), a.toArray(EMPTY_FIELD)), recurse, replacement);
}
}

View File

@ -162,11 +162,15 @@ implements
}
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(
this,
$radians(),
constructor()::apply,
recurse,
replacement
);
}

View File

@ -88,11 +88,15 @@ final class DenseRank extends AbstractWindowFunction<Integer> implements MRank {
}
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(
this,
$windowSpecification(), $windowDefinition(),
(s, d) -> new RowNumber().$windowSpecification(s).$windowDefinition(d),
recurse,
replacement
);
}

View File

@ -203,7 +203,10 @@ implements
}
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
return QOM.replace(this, name, fieldNames, DerivedColumnListImpl::new, replacement);
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(this, name, fieldNames, DerivedColumnListImpl::new, recurse, replacement);
}
}

View File

@ -151,11 +151,15 @@ implements
}
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(
this,
$value(),
constructor()::apply,
recurse,
replacement
);
}

View File

@ -147,12 +147,16 @@ implements
}
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(
this,
$database(),
$ifExists(),
constructor()::apply,
recurse,
replacement
);
}

View File

@ -201,13 +201,17 @@ implements
}
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(
this,
$domain(),
$ifExists(),
$cascade(),
constructor()::apply,
recurse,
replacement
);
}

View File

@ -169,6 +169,10 @@ package org.jooq.impl;

View File

@ -241,7 +241,10 @@ implements
}
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(
this,
$index(),
@ -249,6 +252,7 @@ implements
$on(),
$cascade(),
constructor()::apply,
recurse,
replacement
);
}

View File

@ -169,6 +169,10 @@ package org.jooq.impl;

View File

@ -236,13 +236,17 @@ implements
}
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(
this,
$schema(),
$ifExists(),
$cascade(),
constructor()::apply,
recurse,
replacement
);
}

View File

@ -174,12 +174,16 @@ implements
}
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(
this,
$sequence(),
$ifExists(),
constructor()::apply,
recurse,
replacement
);
}

View File

@ -224,7 +224,10 @@ implements
}
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(
this,
$temporary(),
@ -232,6 +235,7 @@ implements
$ifExists(),
$cascade(),
constructor()::apply,
recurse,
replacement
);
}

View File

@ -170,6 +170,10 @@ package org.jooq.impl;

View File

@ -145,11 +145,14 @@ implements
}
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(this, type, t -> {
DropTypeImpl r = new DropTypeImpl(configuration(), t, ifExists);
r.cascade = cascade;
return r;
}, replacement);
}, recurse, replacement);
}
}

View File

@ -161,12 +161,16 @@ implements
}
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(
this,
$view(),
$ifExists(),
constructor()::apply,
recurse,
replacement
);
}

View File

@ -188,6 +188,10 @@ package org.jooq.impl;

View File

@ -147,11 +147,15 @@ implements
}
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(
this,
$query(),
constructor()::apply,
recurse,
replacement
);
}

View File

@ -187,6 +187,9 @@ package org.jooq.impl;

View File

@ -146,11 +146,15 @@ implements
}
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(
this,
$value(),
constructor()::apply,
recurse,
replacement
);
}

View File

@ -516,7 +516,10 @@ final class Extract extends AbstractField<Integer> implements MExtract {
}
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
return QOM.replace(this, field, datePart, Extract::new, replacement);
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(this, field, datePart, Extract::new, recurse, replacement);
}
}

View File

@ -126,7 +126,10 @@ final class FieldAlias<T> extends AbstractField<T> implements MFieldAlias<T> {
}
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
return QOM.replace(this, $field(), $alias(), FieldAlias::new, replacement);
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(this, $field(), $alias(), FieldAlias::new, recurse, replacement);
}
}

View File

@ -144,11 +144,15 @@ implements
}
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(
this,
$field(),
constructor()::apply,
recurse,
replacement
);
}

View File

@ -106,11 +106,15 @@ final class FirstValue<T> extends AbstractWindowFunction<T> implements MFirstVal
}
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(
this,
field, $windowSpecification(), $windowDefinition(),
(f, s, d) -> new FirstValue<>(f).$windowSpecification(s).$windowDefinition(d).$nullTreatment(nullTreatment),
recurse,
replacement
);
}

View File

@ -141,11 +141,15 @@ implements
}
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(
this,
$value(),
constructor()::apply,
recurse,
replacement
);
}

View File

@ -95,11 +95,15 @@ final class Function<T> extends AbstractField<T> implements MFunction<T> {
}
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(
this,
$args(),
a -> new Function<>(getQualifiedName(), getDataType(), a.toArray(EMPTY_FIELD)),
recurse,
replacement
);
}

View File

@ -87,11 +87,15 @@ final class Function1<T> extends AbstractField<T> implements MFunction<T> {
}
@Override
public final MQueryPart replace(org.jooq.Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
org.jooq.Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(
this,
argument,
a -> new Function1<>(getQualifiedName(), getDataType(), a),
recurse,
replacement
);
}

View File

@ -160,6 +160,10 @@ package org.jooq.impl;

View File

@ -255,7 +255,10 @@ implements
}
@Override
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
public final MQueryPart replace(
Predicate<? super MQueryPart> recurse,
Function1<? super MQueryPart, ? extends MQueryPart> replacement
) {
return QOM.replace(
this,
$privileges(),
@ -264,6 +267,7 @@ implements
$toPublic(),
$withGrantOption(),
constructor()::apply,
recurse,
replacement
);
}

Some files were not shown because too many files have changed in this diff Show More