4 package jp.sourceforge.ea2ddl.ddl.command;
\r
8 import jp.sourceforge.ea2ddl.ddl.factory.ModelFactory;
\r
9 import jp.sourceforge.ea2ddl.ddl.model.Model;
\r
11 import org.seasar.extension.jdbc.gen.generator.GenerationContext;
\r
12 import org.seasar.extension.jdbc.gen.generator.Generator;
\r
13 import org.seasar.extension.jdbc.gen.internal.command.AbstractCommand;
\r
14 import org.seasar.extension.jdbc.gen.internal.generator.GenerationContextImpl;
\r
15 import org.seasar.extension.jdbc.gen.internal.generator.GeneratorImpl;
\r
16 import org.seasar.framework.container.SingletonS2Container;
\r
17 import org.seasar.framework.log.Logger;
\r
18 import org.seasar.framework.util.ClassUtil;
\r
24 public class TemplateCommand extends AbstractCommand {
\r
25 private Logger _logger = Logger.getLogger(TemplateCommand.class);
\r
27 protected String _factoryClassName;
\r
28 protected String _templateFileDir = "templates";
\r
29 protected String _templateFileName;
\r
30 protected String _templateFileEncoding = "UTF-8";
\r
31 protected String _outputDirName = "output";
\r
32 protected String _outputFileName;
\r
33 protected String _outputFileEncoding = "UTF-8";
\r
35 public String getFactoryClassName() {
\r
36 return _factoryClassName;
\r
39 public void setFactoryClassName(String factoryClassName) {
\r
40 _factoryClassName = factoryClassName;
\r
43 public String getTemplateFileDir() {
\r
44 return _templateFileDir;
\r
47 public void setTemplateFileDir(String templateFileDir) {
\r
48 _templateFileDir = templateFileDir;
\r
51 public String getTemplateFileEncoding() {
\r
52 return _templateFileEncoding;
\r
55 public void setTemplateFileEncoding(String templateFileEncoding) {
\r
56 _templateFileEncoding = templateFileEncoding;
\r
59 public String getOutputDirName() {
\r
60 return _outputDirName;
\r
63 public void setOutputDirName(String outputDirName) {
\r
64 _outputDirName = outputDirName;
\r
67 public String getOutputFileName() {
\r
68 return _outputFileName;
\r
71 public void setOutputFileName(String outputFileName) {
\r
72 _outputFileName = outputFileName;
\r
75 public String getOutputFileEncoding() {
\r
76 return _outputFileEncoding;
\r
79 public void setOutputFileEncoding(String outputFileEncoding) {
\r
80 _outputFileEncoding = outputFileEncoding;
\r
83 public String getTemplateFileName() {
\r
84 return _templateFileName;
\r
87 public void setTemplateFileName(String outputTemplateFileName) {
\r
88 _templateFileName = outputTemplateFileName;
\r
92 protected void doInit() {
\r
96 protected void doValidate() {
\r
100 protected void doExecute() throws Throwable {
\r
101 final ModelFactory modelFactory = (ModelFactory) SingletonS2Container.getComponent(ClassUtil
\r
102 .convertClass(getFactoryClassName()));
\r
103 final Model model = modelFactory.create();
\r
104 createGenerator().generate(createGenerationContext(model));
\r
108 protected void doDestroy() {
\r
112 protected Logger getLogger() {
\r
116 protected Generator createGenerator() {
\r
117 final File dir = new File(getTemplateFileDir());
\r
118 return new GeneratorImpl(getTemplateFileEncoding(), dir);
\r
121 protected GenerationContext createGenerationContext(Model model) {
\r
122 final File output = new File(getOutputDirName(), getOutputFileName());
\r
123 final GenerationContextImpl generationContext = new GenerationContextImpl(model, output, getTemplateFileName(),
\r
124 getOutputFileEncoding(), true);
\r
125 return generationContext;
\r