You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@causeway.apache.org by da...@apache.org on 2024/09/27 08:40:09 UTC

(causeway) branch CAUSEWAY-3703 updated: CAUSEWAY-3703: cleans up javadoc and method names a little

This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch CAUSEWAY-3703
in repository https://gitbox.apache.org/repos/asf/causeway.git


The following commit(s) were added to refs/heads/CAUSEWAY-3703 by this push:
     new 66a7efefae CAUSEWAY-3703: cleans up javadoc and method names a little
66a7efefae is described below

commit 66a7efefaeeec8a60a23f6bcea4468776bf78c35
Author: Dan Haywood <da...@haywood-associates.co.uk>
AuthorDate: Fri Sep 27 09:39:44 2024 +0100

    CAUSEWAY-3703: cleans up javadoc and method names a little
---
 .../persistence/querydsl/applib/query/DslQuery.java        |  6 +++---
 .../querydsl/applib/services/repo/QueryDslRepository.java  |  6 ++++--
 .../{DslExpressions.java => DetachedQueryFactory.java}     |  5 +++--
 .../querydsl/applib/services/support/QueryDslSupport.java  |  2 +-
 .../persistence/querydsl/applib/util/CaseSensitivity.java  |  1 +
 .../applib/util/{QueryDslUtil.java => DslExpressions.java} | 13 +++++++------
 .../applib/util/{WildcardRegexUtil.java => Wildcards.java} | 14 +++++++++-----
 .../util/WildcardRegexUtil_toAnsiSqlWildcard_Test.java     |  3 +--
 .../util/WildcardRegexUtil_wildcardToRegex_Test.java       |  3 +--
 .../querydsl/jdo/CausewayModulePersistenceQueryDslJdo.java |  4 ++--
 ...DslExpressionsJdo.java => DetachedQueryFactoryJdo.java} |  4 ++--
 .../querydsl/jpa/CausewayModulePersistenceQueryDslJpa.java |  4 ++--
 ...DslExpressionsJpa.java => DetachedQueryFactoryJpa.java} |  4 ++--
 .../metamodel/facets/AutoCompleteGeneratedDslQuery.java    | 10 +++++-----
 14 files changed, 43 insertions(+), 36 deletions(-)

diff --git a/persistence/querydsl/applib/src/main/java/org/apache/causeway/persistence/querydsl/applib/query/DslQuery.java b/persistence/querydsl/applib/src/main/java/org/apache/causeway/persistence/querydsl/applib/query/DslQuery.java
index 679b339c1e..4c4694cca9 100644
--- a/persistence/querydsl/applib/src/main/java/org/apache/causeway/persistence/querydsl/applib/query/DslQuery.java
+++ b/persistence/querydsl/applib/src/main/java/org/apache/causeway/persistence/querydsl/applib/query/DslQuery.java
@@ -19,7 +19,7 @@
  */
 package org.apache.causeway.persistence.querydsl.applib.query;
 
-import org.apache.causeway.persistence.querydsl.applib.services.support.DslExpressions;
+import org.apache.causeway.persistence.querydsl.applib.services.support.DetachedQueryFactory;
 import org.apache.causeway.persistence.querydsl.applib.services.support.QueryDslSupport;
 
 import com.querydsl.core.FetchableQuery;
@@ -37,14 +37,14 @@ import com.querydsl.core.types.Path;
  *
  * <p>
  *  Typically is built up using {@link QueryDslSupport} (in which case will be attached to a persistence context and
- *  can be fetched immediately if desired), or else using {@link DslExpressions} (in which case will <i>not</i> be
+ *  can be fetched immediately if desired), or else using {@link DetachedQueryFactory} (in which case will <i>not</i> be
  *  attached, but can be used to build up other queries, eg as a subquery).
  * </p>
  *
  * @param <T>
  *
  * @see QueryDslSupport
- * @see DslExpressions
+ * @see DetachedQueryFactory
  */
 public interface DslQuery<T> extends FetchableQuery<T, DslQuery<T>>, Query<DslQuery<T>>, ExtendedSubQuery<T> {
 
diff --git a/persistence/querydsl/applib/src/main/java/org/apache/causeway/persistence/querydsl/applib/services/repo/QueryDslRepository.java b/persistence/querydsl/applib/src/main/java/org/apache/causeway/persistence/querydsl/applib/services/repo/QueryDslRepository.java
index ca69dc4b81..5a2dd0dcba 100644
--- a/persistence/querydsl/applib/src/main/java/org/apache/causeway/persistence/querydsl/applib/services/repo/QueryDslRepository.java
+++ b/persistence/querydsl/applib/src/main/java/org/apache/causeway/persistence/querydsl/applib/services/repo/QueryDslRepository.java
@@ -34,6 +34,7 @@ import javax.inject.Inject;
 import com.querydsl.core.BooleanBuilder;
 import com.querydsl.core.NonUniqueResultException;
 import com.querydsl.core.types.Expression;
+import com.querydsl.core.types.Order;
 import com.querydsl.core.types.OrderSpecifier;
 import com.querydsl.core.types.Predicate;
 import com.querydsl.core.types.Projections;
@@ -45,7 +46,7 @@ import lombok.experimental.SuperBuilder;
 import org.apache.causeway.applib.exceptions.RecoverableException;
 import org.apache.causeway.applib.services.repository.RepositoryService;
 import org.apache.causeway.persistence.querydsl.applib.services.support.QueryDslSupport;
-import org.apache.causeway.persistence.querydsl.applib.util.QueryDslUtil;
+import org.apache.causeway.persistence.querydsl.applib.util.DslExpressions;
 
 import org.springframework.lang.Nullable;
 
@@ -64,6 +65,7 @@ import org.springframework.lang.Nullable;
 @NoArgsConstructor
 public abstract class QueryDslRepository<T extends Comparable, Q extends EntityPathBase<T>> {
 
+    public static final OrderSpecifier<Comparable> ID_ORDER_SPECIFIER = new OrderSpecifier<>(Order.ASC, DslExpressions.constant("id"));
     @Inject protected QueryDslSupport queryDslSupport;
     @Inject protected RepositoryService repositoryService;
 
@@ -101,7 +103,7 @@ public abstract class QueryDslRepository<T extends Comparable, Q extends EntityP
      * @return a list of OrderSpecifiers
      */
     protected List<OrderSpecifier<? extends Comparable>> getDefaultOrders() {
-        return newList(QueryDslUtil.ID_ORDER_SPECIFIER);
+        return newList(ID_ORDER_SPECIFIER);
     }
 
     private OrderSpecifier<? extends Comparable>[] getDefaultOrder() {
diff --git a/persistence/querydsl/applib/src/main/java/org/apache/causeway/persistence/querydsl/applib/services/support/DslExpressions.java b/persistence/querydsl/applib/src/main/java/org/apache/causeway/persistence/querydsl/applib/services/support/DetachedQueryFactory.java
similarity index 92%
rename from persistence/querydsl/applib/src/main/java/org/apache/causeway/persistence/querydsl/applib/services/support/DslExpressions.java
rename to persistence/querydsl/applib/src/main/java/org/apache/causeway/persistence/querydsl/applib/services/support/DetachedQueryFactory.java
index 76cd6777b2..3b9185d2de 100644
--- a/persistence/querydsl/applib/src/main/java/org/apache/causeway/persistence/querydsl/applib/services/support/DslExpressions.java
+++ b/persistence/querydsl/applib/src/main/java/org/apache/causeway/persistence/querydsl/applib/services/support/DetachedQueryFactory.java
@@ -27,12 +27,13 @@ import com.querydsl.core.types.dsl.Expressions;
 import org.apache.causeway.persistence.querydsl.applib.query.DslQuery;
 
 /**
- * Factory for detached query expressions, most commonly used in subqueries.
+ * Factory for detached query expressions.  These are most commonly used in subqueries; they cannot be fetched directly
+ * because they are not attached to any persistence context.
  *
  * @see QueryDslSupport
  * @see <a href="https://chatgpt.com/share/66f522fd-a9cc-8010-9659-731f9a6182da">ChatGPT transcript on attached vs detached queries</a>.
  */
-public interface DslExpressions {
+public interface DetachedQueryFactory {
 
     <T> DslQuery<T> select(Expression<T> expr);
 
diff --git a/persistence/querydsl/applib/src/main/java/org/apache/causeway/persistence/querydsl/applib/services/support/QueryDslSupport.java b/persistence/querydsl/applib/src/main/java/org/apache/causeway/persistence/querydsl/applib/services/support/QueryDslSupport.java
index 26616fa247..229bfb3f60 100644
--- a/persistence/querydsl/applib/src/main/java/org/apache/causeway/persistence/querydsl/applib/services/support/QueryDslSupport.java
+++ b/persistence/querydsl/applib/src/main/java/org/apache/causeway/persistence/querydsl/applib/services/support/QueryDslSupport.java
@@ -31,7 +31,7 @@ import com.querydsl.core.types.Expression;
  * Factory for attached query expressions, executable directly (using for example {@link DslQuery#fetch()},
  * {@link DslQuery#fetchOne()}, {@link DslQuery#fetchFirst()} etc).
  *
- * @see DslExpressions
+ * @see DetachedQueryFactory
  * @see <a href="https://chatgpt.com/share/66f522fd-a9cc-8010-9659-731f9a6182da">ChatGPT transcript on attached vs detached queries</a>.
  */
 public interface QueryDslSupport extends QueryFactory<DslQuery<?>> {
diff --git a/persistence/querydsl/applib/src/main/java/org/apache/causeway/persistence/querydsl/applib/util/CaseSensitivity.java b/persistence/querydsl/applib/src/main/java/org/apache/causeway/persistence/querydsl/applib/util/CaseSensitivity.java
index c5ffce2877..4ecaa5d744 100644
--- a/persistence/querydsl/applib/src/main/java/org/apache/causeway/persistence/querydsl/applib/util/CaseSensitivity.java
+++ b/persistence/querydsl/applib/src/main/java/org/apache/causeway/persistence/querydsl/applib/util/CaseSensitivity.java
@@ -20,6 +20,7 @@
 package org.apache.causeway.persistence.querydsl.applib.util;
 
 public enum CaseSensitivity {
+
     INSENSITIVE,
     SENSITIVE;
 
diff --git a/persistence/querydsl/applib/src/main/java/org/apache/causeway/persistence/querydsl/applib/util/QueryDslUtil.java b/persistence/querydsl/applib/src/main/java/org/apache/causeway/persistence/querydsl/applib/util/DslExpressions.java
similarity index 95%
rename from persistence/querydsl/applib/src/main/java/org/apache/causeway/persistence/querydsl/applib/util/QueryDslUtil.java
rename to persistence/querydsl/applib/src/main/java/org/apache/causeway/persistence/querydsl/applib/util/DslExpressions.java
index 6be05204fc..e9956bba77 100644
--- a/persistence/querydsl/applib/src/main/java/org/apache/causeway/persistence/querydsl/applib/util/QueryDslUtil.java
+++ b/persistence/querydsl/applib/src/main/java/org/apache/causeway/persistence/querydsl/applib/util/DslExpressions.java
@@ -28,8 +28,6 @@ import java.util.regex.Pattern;
 import com.querydsl.core.types.Expression;
 import com.querydsl.core.types.ExpressionUtils;
 import com.querydsl.core.types.Ops;
-import com.querydsl.core.types.Order;
-import com.querydsl.core.types.OrderSpecifier;
 import com.querydsl.core.types.Path;
 import com.querydsl.core.types.Predicate;
 import com.querydsl.core.types.dsl.BooleanExpression;
@@ -39,13 +37,15 @@ import com.querydsl.core.types.dsl.StringPath;
 
 import lombok.experimental.UtilityClass;
 
+/**
+ * Static factory methods for various types of {@link Expression}s (in particular, {@link BooleanOperation}s and
+ * {@link Predicate}s).
+ */
 @UtilityClass
-public class QueryDslUtil {
+public class DslExpressions {
 
     public final static Pattern REGEX_PATTERN = Pattern.compile("\\(\\?i\\)"); // Pattern to recognize #wildcardToCaseInsensitiveRegex conversion
 
-    public static final OrderSpecifier<Comparable> ID_ORDER_SPECIFIER = new OrderSpecifier<>(Order.ASC, constant("id"));
-
     /**
      * Creates {@link BooleanOperation} where the arguments use the operator 'startsWith'.
      * Equivalent to SQL clause '<argument>.startsWith(<path>)'.
@@ -72,7 +72,7 @@ public class QueryDslUtil {
             final StringPath stringPath,
             final String searchPhrase,
             final CaseSensitivity caseSensitivity) {
-        return search(stringPath, WildcardRegexUtil.toAnsiSqlWildcard(searchPhrase), caseSensitivity);
+        return search(stringPath, Wildcards.toAnsiSqlWildcard(searchPhrase), caseSensitivity);
     }
 
     public static BooleanExpression search(
@@ -94,6 +94,7 @@ public class QueryDslUtil {
         return Expressions.constant(argument);
     }
 
+
     public static Predicate and(List<? extends Predicate> predicates) {
         return and(predicates.toArray(new Predicate[0]));
     }
diff --git a/persistence/querydsl/applib/src/main/java/org/apache/causeway/persistence/querydsl/applib/util/WildcardRegexUtil.java b/persistence/querydsl/applib/src/main/java/org/apache/causeway/persistence/querydsl/applib/util/Wildcards.java
similarity index 83%
rename from persistence/querydsl/applib/src/main/java/org/apache/causeway/persistence/querydsl/applib/util/WildcardRegexUtil.java
rename to persistence/querydsl/applib/src/main/java/org/apache/causeway/persistence/querydsl/applib/util/Wildcards.java
index f74f7962f8..a413ce1424 100644
--- a/persistence/querydsl/applib/src/main/java/org/apache/causeway/persistence/querydsl/applib/util/WildcardRegexUtil.java
+++ b/persistence/querydsl/applib/src/main/java/org/apache/causeway/persistence/querydsl/applib/util/Wildcards.java
@@ -27,12 +27,16 @@ import java.util.regex.Pattern;
 
 import org.springframework.lang.Nullable;
 
+/**
+ * Utility methods to convert between UI &quot;wildcards&quot; (meaning &quot;*&quot; and &quot;?&quot;), ANSI SQL
+ * wildcards (&quot;%&quot; and &quot;_&quot;) and Regex (&quot;.*&quot; and &quot;.&quot;).
+ */
 @UtilityClass
-public class WildcardRegexUtil {
+public class Wildcards {
 
     public final static Pattern REGEX_PATTERN = Pattern.compile("\\(\\?i\\)"); // Pattern to recognize #wildcardToCaseInsensitiveRegex conversion
 
-    public static String toAnsiSqlWildcard(final String search) {
+    public String toAnsiSqlWildcard(final String search) {
         if (REGEX_PATTERN.matcher(search).find()) {
             // Don't replace anything when regex is given
             return search;
@@ -44,7 +48,7 @@ public class WildcardRegexUtil {
         return result;
     }
 
-    public static String wildcardToRegex(
+    public String wildcardToRegex(
             @Nullable final String searchPattern,
             final CaseSensitivity caseSensitivity
     ) {
@@ -59,7 +63,7 @@ public class WildcardRegexUtil {
         }
     }
 
-    private static String withWildcards(@Nullable String searchPattern) {
+    private String withWildcards(@Nullable String searchPattern) {
         if(searchPattern == null || searchPattern.isEmpty()) {
             return "*";
         }
@@ -68,7 +72,7 @@ public class WildcardRegexUtil {
                 : "*" + searchPattern + "*";
     }
 
-    private static String wildToRegex(@NonNull String pattern) {
+    private String wildToRegex(@NonNull String pattern) {
         return pattern.replace("*", ".*").replace("?", ".");
     }
 
diff --git a/persistence/querydsl/applib/src/test/java/org/apache/causeway/persistence/querydsl/applib/util/WildcardRegexUtil_toAnsiSqlWildcard_Test.java b/persistence/querydsl/applib/src/test/java/org/apache/causeway/persistence/querydsl/applib/util/WildcardRegexUtil_toAnsiSqlWildcard_Test.java
index 955446f035..563e3c8b2b 100644
--- a/persistence/querydsl/applib/src/test/java/org/apache/causeway/persistence/querydsl/applib/util/WildcardRegexUtil_toAnsiSqlWildcard_Test.java
+++ b/persistence/querydsl/applib/src/test/java/org/apache/causeway/persistence/querydsl/applib/util/WildcardRegexUtil_toAnsiSqlWildcard_Test.java
@@ -1,6 +1,5 @@
 package org.apache.causeway.persistence.querydsl.applib.util;
 
-import lombok.Getter;
 import lombok.RequiredArgsConstructor;
 
 import org.junit.jupiter.params.ParameterizedTest;
@@ -28,7 +27,7 @@ public class WildcardRegexUtil_toAnsiSqlWildcard_Test {
     @ParameterizedTest
     @EnumSource(Scenario.class)
     public void should_replace_wildcards(Scenario scenario) {
-        String result = WildcardRegexUtil.toAnsiSqlWildcard(scenario.input);
+        String result = Wildcards.toAnsiSqlWildcard(scenario.input);
         assertThat(result).isEqualTo(scenario.expected);
     }
 }
diff --git a/persistence/querydsl/applib/src/test/java/org/apache/causeway/persistence/querydsl/applib/util/WildcardRegexUtil_wildcardToRegex_Test.java b/persistence/querydsl/applib/src/test/java/org/apache/causeway/persistence/querydsl/applib/util/WildcardRegexUtil_wildcardToRegex_Test.java
index fe1d857d3d..91411d6d39 100644
--- a/persistence/querydsl/applib/src/test/java/org/apache/causeway/persistence/querydsl/applib/util/WildcardRegexUtil_wildcardToRegex_Test.java
+++ b/persistence/querydsl/applib/src/test/java/org/apache/causeway/persistence/querydsl/applib/util/WildcardRegexUtil_wildcardToRegex_Test.java
@@ -7,7 +7,6 @@ import static org.apache.causeway.persistence.querydsl.applib.util.CaseSensitivi
 
 import static org.assertj.core.api.Assertions.assertThat;
 
-import lombok.Getter;
 import lombok.RequiredArgsConstructor;
 
 public class WildcardRegexUtil_wildcardToRegex_Test {
@@ -33,7 +32,7 @@ public class WildcardRegexUtil_wildcardToRegex_Test {
     @ParameterizedTest
     @EnumSource(Scenario.class)
     public void should_convert_wildcard_to_regex(Scenario scenario) {
-        String result = WildcardRegexUtil.wildcardToRegex(scenario.input, scenario.caseSensitivity);
+        String result = Wildcards.wildcardToRegex(scenario.input, scenario.caseSensitivity);
         assertThat(result).isEqualTo(scenario.expected);
     }
 }
diff --git a/persistence/querydsl/jdo/src/main/java/org/apache/causeway/persistence/querydsl/jdo/CausewayModulePersistenceQueryDslJdo.java b/persistence/querydsl/jdo/src/main/java/org/apache/causeway/persistence/querydsl/jdo/CausewayModulePersistenceQueryDslJdo.java
index f20ad79b17..884e0351e6 100644
--- a/persistence/querydsl/jdo/src/main/java/org/apache/causeway/persistence/querydsl/jdo/CausewayModulePersistenceQueryDslJdo.java
+++ b/persistence/querydsl/jdo/src/main/java/org/apache/causeway/persistence/querydsl/jdo/CausewayModulePersistenceQueryDslJdo.java
@@ -18,7 +18,7 @@
  */
 package org.apache.causeway.persistence.querydsl.jdo;
 
-import org.apache.causeway.persistence.querydsl.jdo.services.support.DslExpressionsJdo;
+import org.apache.causeway.persistence.querydsl.jdo.services.support.DetachedQueryFactoryJdo;
 
 import org.apache.causeway.persistence.querydsl.jdo.services.support.QueryDslSupportJdo;
 
@@ -33,7 +33,7 @@ import org.apache.causeway.persistence.querydsl.integration.CausewayModulePersis
 @Configuration
 @Import({
         // services
-        DslExpressionsJdo.class,
+        DetachedQueryFactoryJdo.class,
         QueryDslSupportJdo.class,
 
         // modules
diff --git a/persistence/querydsl/jdo/src/main/java/org/apache/causeway/persistence/querydsl/jdo/services/support/DslExpressionsJdo.java b/persistence/querydsl/jdo/src/main/java/org/apache/causeway/persistence/querydsl/jdo/services/support/DetachedQueryFactoryJdo.java
similarity index 93%
rename from persistence/querydsl/jdo/src/main/java/org/apache/causeway/persistence/querydsl/jdo/services/support/DslExpressionsJdo.java
rename to persistence/querydsl/jdo/src/main/java/org/apache/causeway/persistence/querydsl/jdo/services/support/DetachedQueryFactoryJdo.java
index 22d2573b74..678b76f57c 100644
--- a/persistence/querydsl/jdo/src/main/java/org/apache/causeway/persistence/querydsl/jdo/services/support/DslExpressionsJdo.java
+++ b/persistence/querydsl/jdo/src/main/java/org/apache/causeway/persistence/querydsl/jdo/services/support/DetachedQueryFactoryJdo.java
@@ -21,7 +21,7 @@ package org.apache.causeway.persistence.querydsl.jdo.services.support;
 
 import org.apache.causeway.persistence.querydsl.applib.query.DslQuery;
 
-import org.apache.causeway.persistence.querydsl.applib.services.support.DslExpressions;
+import org.apache.causeway.persistence.querydsl.applib.services.support.DetachedQueryFactory;
 
 import org.apache.causeway.persistence.querydsl.jdo.query.DslQueryJdo;
 
@@ -32,7 +32,7 @@ import com.querydsl.core.types.Expression;
 import com.querydsl.jdo.JDOQuery;
 
 @Service
-public class DslExpressionsJdo implements DslExpressions {
+public class DetachedQueryFactoryJdo implements DetachedQueryFactory {
 
     @Override
     public <T> DslQuery<T> select(Expression<T> expr) {
diff --git a/persistence/querydsl/jpa/src/main/java/org/apache/causeway/persistence/querydsl/jpa/CausewayModulePersistenceQueryDslJpa.java b/persistence/querydsl/jpa/src/main/java/org/apache/causeway/persistence/querydsl/jpa/CausewayModulePersistenceQueryDslJpa.java
index 5474e8e41a..cb9d8710f4 100644
--- a/persistence/querydsl/jpa/src/main/java/org/apache/causeway/persistence/querydsl/jpa/CausewayModulePersistenceQueryDslJpa.java
+++ b/persistence/querydsl/jpa/src/main/java/org/apache/causeway/persistence/querydsl/jpa/CausewayModulePersistenceQueryDslJpa.java
@@ -21,7 +21,7 @@ package org.apache.causeway.persistence.querydsl.jpa;
 import org.apache.causeway.persistence.jpa.applib.CausewayModulePersistenceJpaApplib;
 import org.apache.causeway.persistence.querydsl.integration.CausewayModulePersistenceQueryDslIntegration;
 
-import org.apache.causeway.persistence.querydsl.jpa.services.query.DslExpressionsJpa;
+import org.apache.causeway.persistence.querydsl.jpa.services.query.DetachedQueryFactoryJpa;
 
 import org.apache.causeway.persistence.querydsl.jpa.services.support.QueryDslSupportJpa;
 
@@ -34,7 +34,7 @@ import org.springframework.context.annotation.Import;
 @Configuration
 @Import({
         // services
-        DslExpressionsJpa.class,
+        DetachedQueryFactoryJpa.class,
         QueryDslSupportJpa.class,
 
         // modules
diff --git a/persistence/querydsl/jpa/src/main/java/org/apache/causeway/persistence/querydsl/jpa/services/query/DslExpressionsJpa.java b/persistence/querydsl/jpa/src/main/java/org/apache/causeway/persistence/querydsl/jpa/services/query/DetachedQueryFactoryJpa.java
similarity index 94%
rename from persistence/querydsl/jpa/src/main/java/org/apache/causeway/persistence/querydsl/jpa/services/query/DslExpressionsJpa.java
rename to persistence/querydsl/jpa/src/main/java/org/apache/causeway/persistence/querydsl/jpa/services/query/DetachedQueryFactoryJpa.java
index 5e0b01f081..d992f4d037 100644
--- a/persistence/querydsl/jpa/src/main/java/org/apache/causeway/persistence/querydsl/jpa/services/query/DslExpressionsJpa.java
+++ b/persistence/querydsl/jpa/src/main/java/org/apache/causeway/persistence/querydsl/jpa/services/query/DetachedQueryFactoryJpa.java
@@ -20,7 +20,7 @@
 package org.apache.causeway.persistence.querydsl.jpa.services.query;
 
 import org.apache.causeway.persistence.querydsl.applib.query.DslQuery;
-import org.apache.causeway.persistence.querydsl.applib.services.support.DslExpressions;
+import org.apache.causeway.persistence.querydsl.applib.services.support.DetachedQueryFactory;
 
 import org.apache.causeway.persistence.querydsl.jpa.services.support.DslQueryJpa;
 
@@ -31,7 +31,7 @@ import com.querydsl.core.types.Expression;
 import com.querydsl.jpa.impl.JPAQuery;
 
 @Service
-public class DslExpressionsJpa implements DslExpressions {
+public class DetachedQueryFactoryJpa implements DetachedQueryFactory {
 
     @Override
     public <T> DslQuery<T> select(Expression<T> expr) {
diff --git a/persistence/querydsl/metamodel/src/main/java/org/apache/causeway/persistence/querydsl/metamodel/facets/AutoCompleteGeneratedDslQuery.java b/persistence/querydsl/metamodel/src/main/java/org/apache/causeway/persistence/querydsl/metamodel/facets/AutoCompleteGeneratedDslQuery.java
index cc6b28ad01..19ff8062fc 100644
--- a/persistence/querydsl/metamodel/src/main/java/org/apache/causeway/persistence/querydsl/metamodel/facets/AutoCompleteGeneratedDslQuery.java
+++ b/persistence/querydsl/metamodel/src/main/java/org/apache/causeway/persistence/querydsl/metamodel/facets/AutoCompleteGeneratedDslQuery.java
@@ -46,8 +46,8 @@ import org.apache.causeway.commons.internal.reflection._Annotations;
 import org.apache.causeway.persistence.querydsl.applib.query.DslQuery;
 import org.apache.causeway.persistence.querydsl.applib.services.support.QueryDslSupport;
 import org.apache.causeway.persistence.querydsl.applib.util.CaseSensitivity;
-import org.apache.causeway.persistence.querydsl.applib.util.QueryDslUtil;
-import org.apache.causeway.persistence.querydsl.applib.util.WildcardRegexUtil;
+import org.apache.causeway.persistence.querydsl.applib.util.DslExpressions;
+import org.apache.causeway.persistence.querydsl.applib.util.Wildcards;
 
 
 /**
@@ -106,7 +106,7 @@ public class AutoCompleteGeneratedDslQuery {
             }
         }
 
-        return executeQuery(WildcardRegexUtil.toAnsiSqlWildcard(searchPhrase), predicate);
+        return executeQuery(Wildcards.toAnsiSqlWildcard(searchPhrase), predicate);
     }
 
     /**
@@ -143,14 +143,14 @@ public class AutoCompleteGeneratedDslQuery {
 
                 // Only string type fields are supported
                 val stringPath = entityPath.getString(field.getName());
-                val searchReplaced = WildcardRegexUtil.toAnsiSqlWildcard(searchPhrase);
+                val searchReplaced = Wildcards.toAnsiSqlWildcard(searchPhrase);
 
                 boolean ignoreCase = _Annotations.synthesize(field, Property.class)
                         .map(Property::queryDslAutoComplete)
                         .filter(Property.QueryDslAutoCompletePolicy::isIncluded)
                         .map(Property.QueryDslAutoCompletePolicy::isIgnoreCase)
                         .orElse(true);
-                val expr = QueryDslUtil.search(stringPath, searchReplaced, CaseSensitivity.of(ignoreCase));
+                val expr = DslExpressions.search(stringPath, searchReplaced, CaseSensitivity.of(ignoreCase));
                 where.or(expr);
 
                 // Build order by clause