package org.example;
import java.io.File;
import java.util.HashMap;
import org.gradle.api.*;
import org.gradle.api.file.*;
import org.gradle.api.tasks.TaskAction;
public class ProcessTemplatesNoAnnotations extends DefaultTask {
private TemplateEngineType templateEngine;
private FileCollection sourceFiles;
private TemplateData templateData;
private File outputDir;
public TemplateEngineType getTemplateEngine() {
return this.templateEngine;
}
public FileCollection getSourceFiles() {
return this.sourceFiles;
}
public TemplateData getTemplateData() {
return this.templateData;
}
public File getOutputDir() { return this.outputDir; }
public void setTemplateEngine(TemplateEngineType type) { this.templateEngine = type; }
public void setSourceFiles(FileCollection files) { this.sourceFiles = files; }
public void setTemplateData(TemplateData model) { this.templateData = model; }
public void setOutputDir(File dir) { this.outputDir = dir; }
@TaskAction
public void processTemplates() {
// ...
getProject().copy(new Action<CopySpec>() {
public void execute(CopySpec spec) {
spec.into(outputDir).
from(sourceFiles).
expand(new HashMap<String, String>(templateData.getVariables()));
}
});
}
}