All Downloads are FREE. Search and download functionalities are using the official Maven repository.

htmlcompiler.templates.Mustache Maven / Gradle / Ivy

package htmlcompiler.templates;

import htmlcompiler.error.TemplateParseException;
import org.apache.maven.project.MavenProject;
import org.trimou.engine.MustacheEngine;
import org.trimou.engine.MustacheEngineBuilder;

import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;

public class Mustache implements TemplateEngine {

    private final MustacheEngine engine;
    private final Map model;
    public Mustache(final MavenProject project) {
        this.engine = MustacheEngineBuilder.newBuilder().build();
        this.model = applyMavenProjectContext(applyEnvironmentContext(new HashMap<>()), project);
    }
    @Override
    public String processTemplate(File file) throws IOException, TemplateParseException {
        return engine.compileMustache(Files.readString(file.toPath())).render(model);
    }

    private static Map applyMavenProjectContext(final Map context, final MavenProject project) {
        for (final Entry entry : project.getProperties().entrySet()) {
            context.put(entry.getKey().toString(), entry.getValue());
        }
        return context;
    }
    private static Map applyEnvironmentContext(final Map context) {
        for (final Entry entry : System.getenv().entrySet()) {
            context.put(entry.getKey(), entry.getValue());
        }
        return context;
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy