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 GenerateDdlCommand extends AbstractCommand {
\r
25 protected Logger _logger = Logger.getLogger(GenerateDdlCommand.class);
\r
27 protected String _factoryClassName;
\r
28 protected String _templateFileDir = "target/classes";
\r
29 protected String _templateFileEncoding = "UTF-8";
\r
30 protected String _sqlFileEncoding = "UTF-8";
\r
31 protected String _outputDirName = "output";
\r
32 protected String _baseSqlFileName = "replace-schema-10-base.sql";
\r
33 protected String _baseSqlTemplateFileName = "base.ftl";
\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 getSqlFileEncoding() {
\r
60 return _sqlFileEncoding;
\r
63 public void setSqlFileEncoding(String sqlFileEncoding) {
\r
64 _sqlFileEncoding = sqlFileEncoding;
\r
67 public String getOutputDirName() {
\r
68 return _outputDirName;
\r
71 public void setOutputDirName(String outputDirName) {
\r
72 _outputDirName = outputDirName;
\r
75 public String getBaseSqlFileName() {
\r
76 return _baseSqlFileName;
\r
79 public void setBaseSqlFileName(String baseSqlFileName) {
\r
80 _baseSqlFileName = baseSqlFileName;
\r
83 public String getBaseSqlTemplateFileName() {
\r
84 return _baseSqlTemplateFileName;
\r
87 public void setBaseSqlTemplateFileName(String baseSqlTemplateFileName) {
\r
88 _baseSqlTemplateFileName = baseSqlTemplateFileName;
\r
95 * org.seasar.extension.jdbc.gen.internal.command.AbstractCommand#doValidate
\r
99 protected void doValidate() {
\r
106 * org.seasar.extension.jdbc.gen.internal.command.AbstractCommand#doInit()
\r
109 protected void doInit() {
\r
116 * org.seasar.extension.jdbc.gen.internal.command.AbstractCommand#doExecute
\r
120 protected void doExecute() throws Throwable {
\r
121 ModelFactory modelFactory = (ModelFactory) SingletonS2Container.getComponent(ClassUtil
\r
122 .convertClass(_factoryClassName));
\r
123 final Model dbModel = modelFactory.create();
\r
127 protected void generate(Model model) {
\r
128 final File templateDir = new File(_templateFileDir);
\r
129 final Generator generator = new GeneratorImpl(_templateFileEncoding, templateDir);
\r
130 File output = new File(_outputDirName, _baseSqlFileName);
\r
131 final GenerationContext context = new GenerationContextImpl(model, output, _baseSqlTemplateFileName,
\r
132 _sqlFileEncoding, true);
\r
133 generator.generate(context);
\r
140 * org.seasar.extension.jdbc.gen.internal.command.AbstractCommand#doDestroy
\r
144 protected void doDestroy() {
\r
151 * org.seasar.extension.jdbc.gen.internal.command.AbstractCommand#getLogger
\r
155 protected Logger getLogger() {
\r