1
2
3
4
5
6
7 package org.asyrinx.joey.gen.core.impl;
8
9 import org.asyrinx.brownie.seasar.aop.CacheInterceptor;
10 import org.asyrinx.joey.gen.ant.DatabasesLoaderImpl;
11 import org.asyrinx.joey.gen.ant.ModelLoaderImpl;
12 import org.asyrinx.joey.gen.command.rdb2java.standard.BasicBuilder;
13 import org.asyrinx.joey.gen.core.BizLogicDistiller;
14 import org.asyrinx.joey.gen.model.rdb.xml.XmlToRdbImpl;
15 import org.seasar.framework.container.InitMethodDef;
16 import org.seasar.framework.container.S2Container;
17 import org.seasar.framework.container.impl.ArgDefImpl;
18 import org.seasar.framework.container.impl.AspectDefImpl;
19 import org.seasar.framework.container.impl.ComponentDefImpl;
20 import org.seasar.framework.container.impl.InitMethodDefImpl;
21 import org.seasar.framework.container.impl.S2ContainerImpl;
22
23 /***
24 * @author takeshi
25 */
26 public class S2ContainerLoader {
27
28 private static S2Container container = null;
29
30 public static S2Container getContainer() {
31 if (container == null)
32 container = initContainer();
33 return container;
34 }
35
36 /***
37 * @return
38 */
39 private static S2Container initContainer() {
40
41
42
43
44 final S2Container result = new S2ContainerImpl();
45 result.register(XmlToRdbImpl.class);
46 final ComponentDefImpl databasesLoaderDef = new ComponentDefImpl(DatabasesLoaderImpl.class);
47 databasesLoaderDef.addAspectDef(new AspectDefImpl(new CacheInterceptor()));
48 result.register(databasesLoaderDef);
49 final ComponentDefImpl javaBuilderDef = new ComponentDefImpl(BasicBuilder.class);
50 javaBuilderDef.addAspectDef(new AspectDefImpl(new CacheInterceptor()));
51 result.register(javaBuilderDef);
52 final ComponentDefImpl modelLoaderDef = new ComponentDefImpl(ModelLoaderImpl.class);
53 result.register(modelLoaderDef);
54
55 final BizLogicDistiller javaDistiller = new BizLogicDistillerByLine(
56 "// joey user's biz logic begin", //
57 "// joey user's biz logic end");
58 final BizLogicDistiller xmlDistiller = new BizLogicDistillerByLine(
59 "<!-- joey user's biz logic begin -->",
60 "<!-- joey user's biz logic end -->");
61 final ComponentDefImpl distillerCompositeDef = new ComponentDefImpl(BizLogicDistillerComposite.class);
62 distillerCompositeDef.addInitMethodDef(newPutMethod("java", javaDistiller));
63 distillerCompositeDef.addInitMethodDef(newPutMethod("dicon", xmlDistiller));
64 distillerCompositeDef.addInitMethodDef(newPutMethod("xml", xmlDistiller));
65 distillerCompositeDef.addInitMethodDef(newPutMethod("jwc", xmlDistiller));
66 distillerCompositeDef.addInitMethodDef(newPutMethod("page", xmlDistiller));
67 distillerCompositeDef.addInitMethodDef(newPutMethod("html", xmlDistiller));
68 distillerCompositeDef.addInitMethodDef(newPutMethod("application", xmlDistiller));
69 result.register(distillerCompositeDef);
70
71 final ComponentDefImpl velocityGeneratorDef = new ComponentDefImpl(JoeyVelocityGeneratorImpl.class);
72
73
74
75
76 result.register(velocityGeneratorDef);
77 return result;
78 }
79
80 public static InitMethodDef newPutMethod(String ext, BizLogicDistiller distiller) {
81 final InitMethodDefImpl result = new InitMethodDefImpl("put");
82 result.addArgDef(new ArgDefImpl(ext));
83 result.addArgDef(new ArgDefImpl(distiller));
84 return result;
85 }
86
87 }