From 43c8cb3e6388a93f1ee8932a63da652babf6f90c Mon Sep 17 00:00:00 2001 From: bingo Date: Fri, 27 Sep 2024 16:18:29 +0800 Subject: [PATCH] No message --- .../query/sql/SqlQueryDeveloperKits.java | 23 +++++++++++++++---- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/corant-modules/corant-modules-query/corant-modules-query-sql/src/main/java/org/corant/modules/query/sql/SqlQueryDeveloperKits.java b/corant-modules/corant-modules-query/corant-modules-query-sql/src/main/java/org/corant/modules/query/sql/SqlQueryDeveloperKits.java index 59374f383..f8b48168e 100644 --- a/corant-modules/corant-modules-query/corant-modules-query-sql/src/main/java/org/corant/modules/query/sql/SqlQueryDeveloperKits.java +++ b/corant-modules/corant-modules-query/corant-modules-query-sql/src/main/java/org/corant/modules/query/sql/SqlQueryDeveloperKits.java @@ -174,6 +174,7 @@ public static class FreemarkerQueryScriptValidator { protected Set skipQueryQualifier = new HashSet<>(); protected Predicate queryNameSkipper = Functions.emptyPredicate(false); protected Predicate queryNameFilter = Functions.emptyPredicate(true); + protected Predicate queryFileFilter = Functions.emptyPredicate(true); protected Map directiveStacksReplacements = new LinkedHashMap<>(); protected Consumer validatingInfoHandler = System.out::println; protected BiConsumer> validationErrorHandler = @@ -302,8 +303,17 @@ public FreemarkerQueryScriptValidator putSpecVarReplacement(String string, Strin return this; } + public FreemarkerQueryScriptValidator queryFileFilter(Predicate queryFileFilter) { + if (queryFileFilter != null) { + this.queryFileFilter = queryFileFilter; + } else { + this.queryFileFilter = Functions.emptyPredicate(true); + } + return this; + } + public FreemarkerQueryScriptValidator queryNameFilter(Predicate queryNameFilter) { - if (this.queryNameFilter != null) { + if (queryNameFilter != null) { this.queryNameFilter = queryNameFilter; } else { this.queryNameFilter = Functions.emptyPredicate(true); @@ -312,7 +322,7 @@ public FreemarkerQueryScriptValidator queryNameFilter(Predicate queryNam } public FreemarkerQueryScriptValidator queryNameSkipper(Predicate queryNameSkipper) { - if (this.queryNameSkipper != null) { + if (queryNameSkipper != null) { this.queryNameSkipper = queryNameSkipper; } else { this.queryNameSkipper = Functions.emptyPredicate(false); @@ -373,9 +383,11 @@ public void validate() { Map> errorMaps = new LinkedHashMap<>(); Map> queryFieldNames = new LinkedHashMap<>(); Set validatedQueries = new HashSet<>(); - int size = service.getQueries().size(); + List queries = service.getQueries().stream() + .filter(q -> queryFileFilter.test(q.getMappingFilePath())).toList(); + int size = queries.size(); validatingInfoHandler.accept(format("Validating %s queries", size)); - for (Query query : service.getQueries()) { + for (Query query : queries) { if (!validatedQueries.contains(query.getVersionedName())) { validateQuery(errorMaps, queryFieldNames, query, validatedQueries, size); } @@ -411,7 +423,8 @@ public void validateQuery(Map> errorMaps, final String queryName = query.getVersionedName(); if (query.getScript().getType() != ScriptType.FM || resolveQueryType(query) != QueryType.SQL || skipQueryQualifier.contains(query.getQualifier()) || queryNameSkipper.test(queryName) - || !queryNameFilter.test(queryName)) { + || !queryNameFilter.test(queryName) + || !queryFileFilter.test(query.getMappingFilePath())) { validatedQueries.add(queryName); validatingInfoHandler .accept(format("[SKIP]: %s, [%s/%s]", queryName, validatedQueries.size(), total));