/**
*
*/
package org.minnal.generator.core;
import java.io.File;
import org.apache.velocity.Template;
import org.apache.velocity.VelocityContext;
import org.javalite.common.Inflector;
/**
* @author ganeshs
*
*/
public class ApplicationGenerator extends AbstractTemplateGenerator {
private boolean enableJpa;
private static Template createApplicationConfigTemplate = engine.getTemplate("META-INF/templates/create_application_configuration.vm");
private static Template createApplicationTemplate = engine.getTemplate("META-INF/templates/create_application.vm");
/**
* @param baseDir
*/
public ApplicationGenerator(File baseDir, boolean enableJpa) {
super(baseDir);
this.enableJpa = enableJpa;
addGenerator(new ApplicationConfigGenerator(baseDir, true));
}
@Override
public void init() {
super.init();
}
@Override
public void generate() {
super.generate();
createApplicationConfigClass();
createApplicationClass();
}
protected void createApplicationClass() {
String applicationClass = Inflector.shortName(getApplicationClassName());
String applicationConfigClass = Inflector.shortName(getApplicationConfigClassName());
VelocityContext context = new VelocityContext();
context.put("packageName", getBasePackage());
context.put("applicationClassName", applicationClass);
context.put("applicationConfigClassName", applicationConfigClass);
context.put("enableJpa", enableJpa);
writeFile(createApplicationTemplate, context, new File(createPackage(getBasePackage()), applicationClass + ".java"));
}
protected void createApplicationConfigClass() {
String applicationConfigClass = Inflector.shortName(getApplicationConfigClassName());
VelocityContext context = new VelocityContext();
context.put("packageName", getBasePackage());
context.put("applicationConfigClassName", applicationConfigClass);
writeFile(createApplicationConfigTemplate, context, new File(createPackage(getBasePackage()), applicationConfigClass + ".java"));
}
}