OSDN Git Service

DBFluteのClassificationに対応
[ea2ddl/ea2ddl.git] / ea2ddl-ddl / src / main / java / jp / sourceforge / ea2ddl / ddl / command / GenerateDdlCommand.java
1 /**\r
2  * \r
3  */\r
4 package jp.sourceforge.ea2ddl.ddl.command;\r
5 \r
6 import java.io.File;\r
7 \r
8 import jp.sourceforge.ea2ddl.ddl.factory.ModelFactory;\r
9 import jp.sourceforge.ea2ddl.ddl.model.Model;\r
10 \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
19 \r
20 /**\r
21  * @author taktos\r
22  * \r
23  */\r
24 public class GenerateDdlCommand extends AbstractCommand {\r
25         protected Logger _logger = Logger.getLogger(GenerateDdlCommand.class);\r
26 \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
34 \r
35         public String getFactoryClassName() {\r
36                 return _factoryClassName;\r
37         }\r
38 \r
39         public void setFactoryClassName(String factoryClassName) {\r
40                 _factoryClassName = factoryClassName;\r
41         }\r
42 \r
43         public String getTemplateFileDir() {\r
44                 return _templateFileDir;\r
45         }\r
46 \r
47         public void setTemplateFileDir(String templateFileDir) {\r
48                 _templateFileDir = templateFileDir;\r
49         }\r
50 \r
51         public String getTemplateFileEncoding() {\r
52                 return _templateFileEncoding;\r
53         }\r
54 \r
55         public void setTemplateFileEncoding(String templateFileEncoding) {\r
56                 _templateFileEncoding = templateFileEncoding;\r
57         }\r
58 \r
59         public String getSqlFileEncoding() {\r
60                 return _sqlFileEncoding;\r
61         }\r
62 \r
63         public void setSqlFileEncoding(String sqlFileEncoding) {\r
64                 _sqlFileEncoding = sqlFileEncoding;\r
65         }\r
66 \r
67         public String getOutputDirName() {\r
68                 return _outputDirName;\r
69         }\r
70 \r
71         public void setOutputDirName(String outputDirName) {\r
72                 _outputDirName = outputDirName;\r
73         }\r
74 \r
75         public String getBaseSqlFileName() {\r
76                 return _baseSqlFileName;\r
77         }\r
78 \r
79         public void setBaseSqlFileName(String baseSqlFileName) {\r
80                 _baseSqlFileName = baseSqlFileName;\r
81         }\r
82 \r
83         public String getBaseSqlTemplateFileName() {\r
84                 return _baseSqlTemplateFileName;\r
85         }\r
86 \r
87         public void setBaseSqlTemplateFileName(String baseSqlTemplateFileName) {\r
88                 _baseSqlTemplateFileName = baseSqlTemplateFileName;\r
89         }\r
90 \r
91         /*\r
92          * (�� Javadoc)\r
93          * \r
94          * @see\r
95          * org.seasar.extension.jdbc.gen.internal.command.AbstractCommand#doValidate\r
96          * ()\r
97          */\r
98         @Override\r
99         protected void doValidate() {\r
100         }\r
101 \r
102         /*\r
103          * (�� Javadoc)\r
104          * \r
105          * @see\r
106          * org.seasar.extension.jdbc.gen.internal.command.AbstractCommand#doInit()\r
107          */\r
108         @Override\r
109         protected void doInit() {\r
110         }\r
111 \r
112         /*\r
113          * (�� Javadoc)\r
114          * \r
115          * @see\r
116          * org.seasar.extension.jdbc.gen.internal.command.AbstractCommand#doExecute\r
117          * ()\r
118          */\r
119         @Override\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
124                 generate(dbModel);\r
125         }\r
126 \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
134         }\r
135 \r
136         /*\r
137          * (�� Javadoc)\r
138          * \r
139          * @see\r
140          * org.seasar.extension.jdbc.gen.internal.command.AbstractCommand#doDestroy\r
141          * ()\r
142          */\r
143         @Override\r
144         protected void doDestroy() {\r
145         }\r
146 \r
147         /*\r
148          * (�� Javadoc)\r
149          * \r
150          * @see\r
151          * org.seasar.extension.jdbc.gen.internal.command.AbstractCommand#getLogger\r
152          * ()\r
153          */\r
154         @Override\r
155         protected Logger getLogger() {\r
156                 return _logger;\r
157         }\r
158 \r
159 }\r