1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package com.fatwire.gst.foundation.controller.action.support;
18
19 import java.util.Date;
20
21 import COM.FutureTense.Interfaces.ICS;
22
23 import com.fatwire.gst.foundation.controller.action.Factory;
24 import com.fatwire.gst.foundation.controller.action.Model;
25 import com.fatwire.gst.foundation.controller.annotation.ServiceProducer;
26 import com.fatwire.gst.foundation.facade.assetapi.AssetAccessTemplate;
27 import com.fatwire.gst.foundation.facade.assetapi.asset.PreviewContext;
28 import com.fatwire.gst.foundation.facade.assetapi.asset.ScatteredAssetAccessTemplate;
29 import com.fatwire.gst.foundation.facade.assetapi.asset.TemplateAssetAccess;
30 import com.fatwire.gst.foundation.facade.mda.DefaultLocaleService;
31 import com.fatwire.gst.foundation.facade.mda.LocaleService;
32 import com.fatwire.gst.foundation.facade.search.SimpleSearchEngine;
33 import com.fatwire.gst.foundation.include.DefaultIncludeService;
34 import com.fatwire.gst.foundation.include.IncludeService;
35 import com.fatwire.gst.foundation.mapping.IcsMappingService;
36 import com.fatwire.gst.foundation.mapping.MappingService;
37 import com.fatwire.gst.foundation.navigation.NavigationService;
38 import com.fatwire.gst.foundation.navigation.support.SimpleNavigationHelper;
39 import com.fatwire.gst.foundation.properties.AssetApiPropertyDao;
40 import com.fatwire.gst.foundation.properties.PropertyDao;
41 import com.fatwire.gst.foundation.url.WraPathTranslationService;
42 import com.fatwire.gst.foundation.url.db.DbSimpleWRADao;
43 import com.fatwire.gst.foundation.url.db.UrlRegistry2;
44 import com.fatwire.gst.foundation.url.db.UrlRegistryDao;
45 import com.fatwire.gst.foundation.url.db.UrlRegistryDaoImpl;
46 import com.fatwire.gst.foundation.vwebroot.VirtualWebrootApiBypassDao;
47 import com.fatwire.gst.foundation.vwebroot.VirtualWebrootDao;
48 import com.fatwire.gst.foundation.wra.AliasCoreFieldDao;
49 import com.fatwire.gst.foundation.wra.AssetApiAliasCoreFieldDao;
50 import com.fatwire.gst.foundation.wra.AssetApiWraCoreFieldDao;
51 import com.fatwire.gst.foundation.wra.SimpleWRADao;
52 import com.fatwire.gst.foundation.wra.WraCoreFieldDao;
53 import com.fatwire.gst.foundation.wra.navigation.WraNavigationService;
54 import com.fatwire.mda.DimensionFilterInstance;
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72 public class IcsBackedObjectFactoryTemplate extends BaseFactory {
73
74
75
76
77
78 public IcsBackedObjectFactoryTemplate(final ICS ics) {
79 super(ics);
80 }
81
82
83
84
85
86 public IcsBackedObjectFactoryTemplate(ICS ics, Factory... roots) {
87 super(ics, roots);
88 }
89
90 @ServiceProducer(cache = true)
91 public WraCoreFieldDao createWraCoreFieldDao(final ICS ics) {
92 return AssetApiWraCoreFieldDao.getInstance(ics);
93 }
94
95 @ServiceProducer(cache = true)
96 public AliasCoreFieldDao createAliasCoreFieldDao(final ICS ics) {
97 final WraCoreFieldDao wraCoreFieldDao = getObject("wraCoreFieldDao", WraCoreFieldDao.class);
98 return new AssetApiAliasCoreFieldDao(ics, wraCoreFieldDao);
99 }
100
101 @ServiceProducer(cache = true)
102 public PropertyDao createPropertyDao(final ICS ics) {
103 return AssetApiPropertyDao.newInstance(ics);
104 }
105
106 @ServiceProducer(cache = true)
107 public WraPathTranslationService createWraPathTranslationService(final ICS ics) {
108 final SimpleWRADao wraDao = new DbSimpleWRADao(ics);
109 final VirtualWebrootDao vwDao = new VirtualWebrootApiBypassDao(ics);
110 final UrlRegistryDao regDao = new UrlRegistryDaoImpl(ics);
111 final UrlRegistry2 x = new UrlRegistry2(ics, wraDao, vwDao, regDao);
112 return x;
113 }
114
115 @ServiceProducer(cache = true)
116 public IncludeService createIncludeService(final ICS ics) {
117 return new DefaultIncludeService(ics);
118 }
119
120 @ServiceProducer(cache = true)
121 public ScatteredAssetAccessTemplate createScatteredAssetAccessTemplate(final ICS ics) {
122 return new ScatteredAssetAccessTemplate(ics);
123 }
124
125 @ServiceProducer(cache = true)
126 public AssetAccessTemplate createAssetAccessTemplate(final ICS ics) {
127 return new AssetAccessTemplate(ics);
128 }
129
130 @ServiceProducer(cache = true)
131 public MappingService createMappingService(final ICS ics) {
132 return new IcsMappingService(ics);
133 }
134
135 @ServiceProducer(cache = true)
136 public LocaleService createLocaleService(final ICS ics) {
137 return new DefaultLocaleService(ics);
138 }
139
140 @ServiceProducer(cache = true)
141 public TemplateAssetAccess createTemplateAssetAccess(final ICS ics) {
142 return new TemplateAssetAccess(ics);
143 }
144
145 @ServiceProducer(cache = false)
146 public Model createModel(final ICS ics) {
147 return new Model();
148 }
149
150 @ServiceProducer(cache = true)
151 public SimpleSearchEngine createSimpleSearchEngine(final ICS ics) {
152 return new SimpleSearchEngine("lucene");
153 }
154
155 @ServiceProducer(cache = false)
156 public NavigationService createNavigationService(final ICS ics) {
157
158
159
160 boolean wraNavigationSupport = true;
161 TemplateAssetAccess taa = getObject("templateAssetAccess", TemplateAssetAccess.class);
162
163 if ("avisports".equalsIgnoreCase(ics.GetVar("site"))) {
164 return new SimpleNavigationHelper(ics, taa, "title", "path");
165 } else if (wraNavigationSupport) {
166
167
168
169
170
171 LocaleService ls = this.getObject("localeService", LocaleService.class);
172 String site = ics.GetVar("site");
173 DimensionFilterInstance filter = ls.getDimensionFilter(site);
174 if (filter == null && LOG.isTraceEnabled()) {
175 LOG.trace("No DimensionFilterInstance returned from getDimensionFilter(). Disabling Locale support for NavigationService.");
176 }
177
178 AliasCoreFieldDao aliasDao = getObject("aliasCoreFieldDao", AliasCoreFieldDao.class);
179 Date date = PreviewContext.getPreviewDateFromCSVar(ics, "previewDate");
180 return new WraNavigationService(ics, taa, aliasDao, filter, date);
181 } else {
182 return new SimpleNavigationHelper(ics, taa, "linktext", "path");
183
184 }
185 }
186
187 }