1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package com.fatwire.gst.foundation.controller.action.support;
17
18 import javax.servlet.ServletContext;
19
20 import COM.FutureTense.Interfaces.ICS;
21
22 import com.fatwire.gst.foundation.controller.AppContext;
23 import com.fatwire.gst.foundation.controller.action.ActionLocator;
24 import com.fatwire.gst.foundation.controller.action.ActionNameResolver;
25 import com.fatwire.gst.foundation.controller.action.Factory;
26 import com.fatwire.gst.foundation.controller.action.FactoryProducer;
27 import com.fatwire.gst.foundation.controller.action.Injector;
28 import com.fatwire.gst.foundation.controller.support.WebAppContext;
29
30
31
32
33
34
35
36
37
38
39
40
41 public class DefaultWebAppContext extends WebAppContext implements FactoryProducer {
42
43 public DefaultWebAppContext(final ServletContext context) {
44 super(context);
45
46 }
47
48 public DefaultWebAppContext(final ServletContext context, final AppContext parent) {
49 super(context, parent);
50
51 }
52
53 public ActionLocator createActionLocator() {
54
55
56
57 final Injector injector = createInjector();
58 final ActionLocator root = new RenderPageActionLocator(injector);
59 final ClassActionLocator cal = new ClassActionLocator(root, injector);
60 return cal;
61
62 }
63
64 public ActionNameResolver createActionNameResolver() {
65 return new CommandActionNameResolver("action");
66 }
67
68 public Injector createInjector() {
69 FactoryProducer fp = getBean("factoryProducer", FactoryProducer.class);
70 return new DefaultAnnotationInjector(fp);
71 }
72
73 public FactoryProducer createFactoryProducer() {
74 return this;
75 }
76
77 @Override
78 public Factory getFactory(final ICS ics) {
79
80 return new IcsBackedObjectFactoryTemplate(ics);
81 }
82
83 }