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

com.nbsaas.codegen.command.CodeBaseCommand Maven / Gradle / Ivy

package com.nbsaas.codegen.command;

import freemarker.cache.ClassTemplateLoader;
import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;
import org.apache.commons.chain.Command;
import org.apache.commons.chain.Context;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;

public abstract class CodeBaseCommand implements Command {

    protected Configuration getConfiguration(Context context) {
        Class codeDir=(Class) context.get("codeDir");
        ClassTemplateLoader ctl = new ClassTemplateLoader(codeDir, "/"+codeDir.getName().replace(codeDir.getSimpleName(),"").replace(".","/"));
        Configuration config = new Configuration(Configuration.DEFAULT_INCOMPATIBLE_IMPROVEMENTS);
        config.setTemplateLoader(ctl);
        return config;
    }

    protected void handle(Context context, Configuration config, String templateInfo, String pathUrl, String label) throws IOException, TemplateException {
        Template template = config.getTemplate(templateInfo+".ftl");

        Class entity = (Class) context.get("entity");

        String base=(String) context.get("base")+pathUrl;

        String path = base.replaceAll("\\.", "/");
        System.out.println(path);

        String b=entity.getResource("/").getFile();

        b=b.replace("/target/classes", "/src/main/java")+path;
        File actiondir=new File(b);
        if (!actiondir.exists()) {
            actiondir.mkdirs();
        }
        File daodirfile = new File(b, entity.getSimpleName() +label+ ".java");

        FileWriter writer = new FileWriter(daodirfile);

        template.process(context, writer);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy