OSDN Git Service

c3f41ba0b4df55a102cbc13ae18098ca7112569e
[ea2ddl/ea2ddl.git] / ea2ddl-comment / src / main / java / jp / sourceforge / ea2ddl / comment / task / AbstractTask.java
1 /**\r
2  * \r
3  */\r
4 package jp.sourceforge.ea2ddl.comment.task;\r
5 \r
6 import jp.sourceforge.ea2ddl.comment.command.Command;\r
7 \r
8 import org.apache.tools.ant.BuildException;\r
9 import org.apache.tools.ant.Task;\r
10 import org.seasar.framework.container.S2Container;\r
11 import org.seasar.framework.container.factory.SingletonS2ContainerFactory;\r
12 \r
13 /**\r
14  * @author taktos\r
15  *\r
16  */\r
17 public abstract class AbstractTask<T extends Command> extends Task {\r
18 \r
19         protected String configPath = "ea2ddl.dicon";\r
20 \r
21         @Override\r
22         public void init() throws BuildException {\r
23                 SingletonS2ContainerFactory.setConfigPath(configPath);\r
24                 SingletonS2ContainerFactory.init();\r
25         }\r
26 \r
27         @Override\r
28         public void execute() throws BuildException {\r
29                 getCommand().execute();\r
30         }\r
31 \r
32         protected abstract Class<T> getCommandClass();\r
33 \r
34         @SuppressWarnings("unchecked")\r
35         protected T getCommand() {\r
36                 return (T) SingletonS2ContainerFactory.getContainer().getComponent(getCommandClass());\r
37         }\r
38         \r
39 }\r