From e4e6b6fc256698a710b60caf0e796c9334651cd9 Mon Sep 17 00:00:00 2001 From: Johan Maasing Date: Wed, 19 Mar 2025 21:31:32 +0100 Subject: [PATCH] Support several templates --- .../java/nu/zoom/tapir/TargetGenerator.java | 30 +++++++++++++------ 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/parser/src/main/java/nu/zoom/tapir/TargetGenerator.java b/parser/src/main/java/nu/zoom/tapir/TargetGenerator.java index 4dbc1f6..c4031c3 100644 --- a/parser/src/main/java/nu/zoom/tapir/TargetGenerator.java +++ b/parser/src/main/java/nu/zoom/tapir/TargetGenerator.java @@ -61,18 +61,30 @@ public class TargetGenerator { cfg.setWrapUncheckedExceptions(true); cfg.setFallbackOnNullLoopVariable(false); Template temp = cfg.getTemplate(ENDPOINTS_TEMPLATE_NAME); - try (var outputFile = Files.newBufferedWriter( - outputPath.resolve("endpoints.scala"), - StandardOpenOption.CREATE, - StandardOpenOption.TRUNCATE_EXISTING - )) { - HashMap templateData = new HashMap<>(); - templateData.put("endpoints", endpoints); - templateData.put("datatypes", dataTypes); - temp.process(templateData, outputFile); + List templates = Files + .list(this.templatePath) + .filter(Files::isRegularFile) + .filter(f -> f.getFileName().toString().endsWith(".ftl")) + .toList() ; + for (Path template : templates) { + try (var outputFile = Files.newBufferedWriter( + outputName(template), + StandardOpenOption.CREATE, + StandardOpenOption.TRUNCATE_EXISTING + )) { + HashMap templateData = new HashMap<>(); + templateData.put("endpoints", endpoints); + templateData.put("datatypes", dataTypes); + temp.process(templateData, outputFile); + } } } catch (TemplateException | IOException ex) { throw new TargetGeneratorException(ex); } } + + private Path outputName(Path templatePath) { + String name = templatePath.getFileName().toString().replace(".ftl", ".scala") ; + return this.outputPath.resolve(name) ; + } }