diff --git a/qqq-middleware-api/src/main/java/com/kingsrook/qqq/api/middleware/executors/ApiAwareTableCountExecutor.java b/qqq-middleware-api/src/main/java/com/kingsrook/qqq/api/middleware/executors/ApiAwareTableCountExecutor.java
index 3c8c1346..99ed5c07 100644
--- a/qqq-middleware-api/src/main/java/com/kingsrook/qqq/api/middleware/executors/ApiAwareTableCountExecutor.java
+++ b/qqq-middleware-api/src/main/java/com/kingsrook/qqq/api/middleware/executors/ApiAwareTableCountExecutor.java
@@ -29,6 +29,7 @@ import java.util.Objects;
import com.kingsrook.qqq.api.actions.ApiImplementation;
import com.kingsrook.qqq.api.actions.GetTableApiFieldsAction;
import com.kingsrook.qqq.api.model.metadata.ApiOperation;
+import com.kingsrook.qqq.api.utils.ApiQueryFilterUtils;
import com.kingsrook.qqq.backend.core.actions.permissions.PermissionsHelper;
import com.kingsrook.qqq.backend.core.actions.permissions.TablePermissionSubType;
import com.kingsrook.qqq.backend.core.actions.tables.CountAction;
@@ -81,12 +82,12 @@ public class ApiAwareTableCountExecutor extends TableCountExecutor implements Ap
// take care of managing criteria, which may not be in this version, etc //
///////////////////////////////////////////////////////////////////////////
QQueryFilter filter = Objects.requireNonNullElseGet(input.getFilter(), () -> new QQueryFilter());
- QueryExecutorUtils.manageCriteriaFields(filter, tableApiFields, badRequestMessages, apiName, countInput);
+ ApiQueryFilterUtils.manageCriteriaFields(filter, tableApiFields, badRequestMessages, apiName, countInput);
//////////////////////////////////////////
// no more badRequest checks below here //
//////////////////////////////////////////
- QueryExecutorUtils.throwIfBadRequestMessages(badRequestMessages);
+ ApiQueryFilterUtils.throwIfBadRequestMessages(badRequestMessages);
//
CountAction countAction = new CountAction();
diff --git a/qqq-middleware-api/src/main/java/com/kingsrook/qqq/api/middleware/executors/ApiAwareTableQueryExecutor.java b/qqq-middleware-api/src/main/java/com/kingsrook/qqq/api/middleware/executors/ApiAwareTableQueryExecutor.java
index b02473ee..909bbc34 100644
--- a/qqq-middleware-api/src/main/java/com/kingsrook/qqq/api/middleware/executors/ApiAwareTableQueryExecutor.java
+++ b/qqq-middleware-api/src/main/java/com/kingsrook/qqq/api/middleware/executors/ApiAwareTableQueryExecutor.java
@@ -33,6 +33,7 @@ import com.kingsrook.qqq.api.model.actions.ApiFieldCustomValueMapper;
import com.kingsrook.qqq.api.model.metadata.ApiOperation;
import com.kingsrook.qqq.api.model.metadata.fields.ApiFieldMetaData;
import com.kingsrook.qqq.api.model.metadata.fields.ApiFieldMetaDataContainer;
+import com.kingsrook.qqq.api.utils.ApiQueryFilterUtils;
import com.kingsrook.qqq.backend.core.actions.customizers.QCodeLoader;
import com.kingsrook.qqq.backend.core.actions.permissions.PermissionsHelper;
import com.kingsrook.qqq.backend.core.actions.permissions.TablePermissionSubType;
@@ -105,12 +106,12 @@ public class ApiAwareTableQueryExecutor extends TableQueryExecutor implements Ap
// take care of managing order-by fields and criteria, which may not be in this version, etc //
///////////////////////////////////////////////////////////////////////////////////////////////
manageOrderByFields(filter, tableApiFields, badRequestMessages, apiName, queryInput);
- QueryExecutorUtils.manageCriteriaFields(filter, tableApiFields, badRequestMessages, apiName, queryInput);
+ ApiQueryFilterUtils.manageCriteriaFields(filter, tableApiFields, badRequestMessages, apiName, queryInput);
//////////////////////////////////////////
// no more badRequest checks below here //
//////////////////////////////////////////
- QueryExecutorUtils.throwIfBadRequestMessages(badRequestMessages);
+ ApiQueryFilterUtils.throwIfBadRequestMessages(badRequestMessages);
///////////////////////
// execute the query //
diff --git a/qqq-middleware-api/src/main/java/com/kingsrook/qqq/api/middleware/executors/QueryExecutorUtils.java b/qqq-middleware-api/src/main/java/com/kingsrook/qqq/api/utils/ApiQueryFilterUtils.java
similarity index 90%
rename from qqq-middleware-api/src/main/java/com/kingsrook/qqq/api/middleware/executors/QueryExecutorUtils.java
rename to qqq-middleware-api/src/main/java/com/kingsrook/qqq/api/utils/ApiQueryFilterUtils.java
index aa7e07b3..89528eab 100644
--- a/qqq-middleware-api/src/main/java/com/kingsrook/qqq/api/middleware/executors/QueryExecutorUtils.java
+++ b/qqq-middleware-api/src/main/java/com/kingsrook/qqq/api/utils/ApiQueryFilterUtils.java
@@ -19,7 +19,7 @@
* along with this program. If not, see .
*/
-package com.kingsrook.qqq.api.middleware.executors;
+package com.kingsrook.qqq.api.utils;
import java.util.List;
@@ -39,15 +39,15 @@ import com.kingsrook.qqq.backend.core.utils.StringUtils;
/*******************************************************************************
- ** shared code for query & count executors
+ ** Utilities for working with Query Filters in the API (e.g., versioned field fun)
*******************************************************************************/
-public class QueryExecutorUtils
+public class ApiQueryFilterUtils
{
/***************************************************************************
**
***************************************************************************/
- static void manageCriteriaFields(QQueryFilter filter, Map tableApiFields, List badRequestMessages, String apiName, QueryOrCountInputInterface input)
+ public static void manageCriteriaFields(QQueryFilter filter, Map tableApiFields, List badRequestMessages, String apiName, QueryOrCountInputInterface input)
{
for(QFilterCriteria criteria : CollectionUtils.nonNullList(filter.getCriteria()))
{
@@ -85,7 +85,7 @@ public class QueryExecutorUtils
/***************************************************************************
*
***************************************************************************/
- static void throwIfBadRequestMessages(List badRequestMessages) throws QBadRequestException
+ public static void throwIfBadRequestMessages(List badRequestMessages) throws QBadRequestException
{
if(!badRequestMessages.isEmpty())
{