From e152fcc2ec2adfc7635647f1570210af375166e7 Mon Sep 17 00:00:00 2001 From: Robert Pospisil Date: Tue, 27 Jun 2023 15:24:43 +0200 Subject: [PATCH] #14906: add option to filter full paths --- .../java/org/openapitools/codegen/DefaultGenerator.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultGenerator.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultGenerator.java index dce032a025e4..fb3e9a8be77c 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultGenerator.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultGenerator.java @@ -605,14 +605,20 @@ void generateApis(List files, List allOperations, List> paths = processPaths(this.openAPI.getPaths()); Set apisToGenerate = null; String apiNames = GlobalSettings.getProperty(CodegenConstants.APIS); if (apiNames != null && !apiNames.isEmpty()) { apisToGenerate = new HashSet<>(Arrays.asList(apiNames.split(","))); + //first filter full paths + Set fullPathsToGenerate = apisToGenerate.stream().filter(s->s.contains("/")).collect(Collectors.toSet()); + Set filteredPathsKeysToRemove = this.openAPI.getPaths().keySet().stream().filter(k->!fullPathsToGenerate.contains(k)).collect(Collectors.toSet()); + filteredPathsKeysToRemove.forEach(p->this.openAPI.getPaths().remove(p)); + apisToGenerate = apisToGenerate.stream().filter(s->!s.contains("/")).collect(Collectors.toSet()); } + Map> paths = processPaths(this.openAPI.getPaths()); if (apisToGenerate != null && !apisToGenerate.isEmpty()) { Map> updatedPaths = new TreeMap<>(); + //second we filter for basename for (String m : paths.keySet()) { if (apisToGenerate.contains(m)) { updatedPaths.put(m, paths.get(m));