From 15fc42b9797c5c7ceaf9ca078aa4b400cc2aa3eb Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Tue, 26 Apr 2022 14:28:27 +0200 Subject: [PATCH] [jOOQ/jOOQ#13486] Replace internal ConstantSortField by noField() --- .../java/org/jooq/impl/AbstractField.java | 12 ++- .../java/org/jooq/impl/ConstantSortField.java | 89 ------------------- 2 files changed, 5 insertions(+), 96 deletions(-) delete mode 100644 jOOQ/src/main/java/org/jooq/impl/ConstantSortField.java diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractField.java b/jOOQ/src/main/java/org/jooq/impl/AbstractField.java index 0c1d26621a..3bed9c2e85 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractField.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractField.java @@ -299,7 +299,7 @@ abstract class AbstractField extends AbstractTypedNamed implements Field sort(SortOrder order) { - return new SortFieldImpl<>(this, order); + return this instanceof NoField ? (NoField) this : new SortFieldImpl<>(this, order); } @Override @@ -337,13 +337,11 @@ abstract class AbstractField extends AbstractTypedNamed implements Field SortField sort(Map sortMap) { - return sortMap == null || sortMap.isEmpty() ? sortConstant() : DSL.case_(this).mapValues(sortMap).asc(); - } - @SuppressWarnings({ "unchecked", "rawtypes" }) - private final SortField sortConstant() { - return new SortFieldImpl<>(new ConstantSortField<>((Field) this), SortOrder.DEFAULT); + public final SortField sort(Map sortMap) { + return sortMap == null || sortMap.isEmpty() + ? DSL.noField((Field) this).sortDefault() + : DSL.case_(this).mapValues(sortMap).asc(); } diff --git a/jOOQ/src/main/java/org/jooq/impl/ConstantSortField.java b/jOOQ/src/main/java/org/jooq/impl/ConstantSortField.java deleted file mode 100644 index 4ba09d9e67..0000000000 --- a/jOOQ/src/main/java/org/jooq/impl/ConstantSortField.java +++ /dev/null @@ -1,89 +0,0 @@ -/* - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Other licenses: - * ----------------------------------------------------------------------------- - * Commercial licenses for this work are available. These replace the above - * ASL 2.0 and offer limited warranties, support, maintenance, and commercial - * database integrations. - * - * For more information, please visit: http://www.jooq.org/licenses - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - */ -package org.jooq.impl; - -import static org.jooq.impl.DSL.one; -import static org.jooq.impl.DSL.select; -import static org.jooq.impl.Keywords.K_NULL; -import static org.jooq.impl.Keywords.K_SELECT; - -import org.jooq.Context; -import org.jooq.Field; - -/** - * @author Lukas Eder - */ -final class ConstantSortField extends CustomField { - - ConstantSortField(Field field) { - super(field.getUnqualifiedName(), field.getDataType()); - } - - @Override - public void accept(Context ctx) { - switch (ctx.family()) { - - - - - - - - - - - - - - - - - - case DERBY: - case HSQLDB: - case POSTGRES: - case YUGABYTEDB: - ctx.sql('(').visit(select(one())).sql(')'); - break; - - default: - ctx.visit(DSL.NULL().sortDefault()); - break; - } - } -}