1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.pluto.portalImpl.om.servlet.impl;
21
22 import java.util.Collection;
23 import java.util.Locale;
24
25 import javax.servlet.RequestDispatcher;
26 import javax.servlet.ServletContext;
27
28 import org.apache.pluto.om.common.Description;
29 import org.apache.pluto.om.common.DescriptionSet;
30 import org.apache.pluto.om.common.DisplayName;
31 import org.apache.pluto.om.common.DisplayNameSet;
32 import org.apache.pluto.om.common.ObjectID;
33 import org.apache.pluto.om.common.ParameterSet;
34 import org.apache.pluto.om.common.SecurityRoleRefSet;
35 import org.apache.pluto.om.servlet.ServletDefinition;
36 import org.apache.pluto.om.servlet.ServletDefinitionCtrl;
37 import org.apache.pluto.om.servlet.WebApplicationDefinition;
38 import org.apache.pluto.portalImpl.om.common.Support;
39 import org.apache.pluto.portalImpl.om.common.impl.DescriptionSetImpl;
40 import org.apache.pluto.portalImpl.om.common.impl.DisplayNameSetImpl;
41 import org.apache.pluto.portalImpl.services.log.Log;
42 import org.apache.pluto.util.StringUtils;
43
44 public class ServletDefinitionImpl
45 implements ServletDefinition, ServletDefinitionCtrl, java.io.Serializable, Support {
46
47 private DescriptionSet descriptions = new org.apache.pluto.portalImpl.om.common.impl.DescriptionSetImpl();
48 private DisplayNameSet displayNames = new org.apache.pluto.portalImpl.om.common.impl.DisplayNameSetImpl();
49
50
51 public String icon;
52 private String id = "";
53 private ParameterSet initParams = new org.apache.pluto.portalImpl.om.common.impl.ParameterSetImpl();
54 private SecurityRoleRefSet initSecurityRoleRefs = new org.apache.pluto.portalImpl.om.common.impl.SecurityRoleRefSetImpl();
55 public String jspFile;
56 public String loadOnStartup;
57 private ObjectID objectId;
58 public String securityRoleRef;
59 private String servletClass;
60 private ServletMappingImpl servletMapping;
61 private String servletName;
62 private long available = 0;
63
64 private WebApplicationDefinition webApplication;
65
66
67
68 public ObjectID getId()
69 {
70 if (objectId==null) {
71 objectId = org.apache.pluto.portalImpl.util.ObjectID.createFromString(id);
72 }
73 return objectId;
74 }
75
76 public String getServletName()
77 {
78 return servletName;
79 }
80
81 public DisplayName getDisplayName(Locale locale)
82 {
83 return displayNames.get(locale);
84 }
85
86
87
88
89 public Description getDescription(Locale locale) {
90 return descriptions.get(locale);
91 }
92
93 public String getServletClass()
94 {
95 return servletClass;
96 }
97
98 public ParameterSet getInitParameterSet()
99 {
100 return initParams;
101 }
102
103 public WebApplicationDefinition getWebApplicationDefinition()
104 {
105 return webApplication;
106 }
107
108 public RequestDispatcher getRequestDispatcher(ServletContext servletContext)
109 {
110 ServletContext newContext = webApplication.getServletContext(servletContext);
111 if (newContext==null) {
112 Log.error("ServletContext '"+((WebApplicationDefinitionImpl)webApplication).getContextRoot()+"' not found!");
113 return null;
114 }
115 if (Log.isDebugEnabled()) {
116 Log.debug("Looking up RequestDispatcher for servlet mapping "+servletMapping.getUrlPattern());
117 }
118 return newContext.getRequestDispatcher(servletMapping.getUrlPattern());
119 }
120
121 public long getAvailable() {
122 return available;
123 }
124
125 public boolean isUnavailable() {
126 if (available == 0) {
127 return false;
128 } else if (available <= System.currentTimeMillis()) {
129 available = 0;
130 return false;
131 } else {
132 return true;
133 }
134 }
135
136
137
138 public void postBuild(Object parameter) throws Exception
139 {
140 setServletMapping((ServletMappingImpl)parameter);
141 }
142
143
144 public void postLoad(Object parameter) throws Exception
145 {
146 ((Support)descriptions).postLoad(parameter);
147 ((Support)displayNames).postLoad(parameter);
148 }
149 public void postStore(Object parameter) throws Exception
150 {
151 }
152 public void preBuild(Object parameter) throws Exception
153 {
154 setWebApplicationDefinition((WebApplicationDefinition)parameter);
155 }
156 public void preStore(Object parameter) throws Exception
157 {
158 }
159
160
161
162 public String getCastorId() {
163 if (id.length() > 0)
164 return getId().toString();
165 else
166 return null;
167 }
168
169 public Collection getCastorInitParams()
170 {
171 return(org.apache.pluto.portalImpl.om.common.impl.ParameterSetImpl)initParams;
172 }
173
174 public SecurityRoleRefSet getCastorInitSecurityRoleRefs()
175 {
176 return initSecurityRoleRefs;
177 }
178
179 public Collection getCastorDisplayNames()
180 {
181 return(DisplayNameSetImpl)displayNames;
182 }
183
184 public Collection getCastorDescriptions()
185 {
186 return(DescriptionSetImpl)descriptions;
187 }
188
189 public Collection getDescriptions()
190 {
191 return(DescriptionSetImpl)descriptions;
192 }
193
194
195
196 public SecurityRoleRefSet getInitSecurityRoleRefSet()
197 {
198 return initSecurityRoleRefs;
199 }
200
201
202
203 public String getJspFile()
204 {
205 return jspFile;
206 }
207
208
209 public void setCastorId(String id) {
210 setId(id);
211 }
212
213 public void setCastorInitSecurityRoleRefs(SecurityRoleRefSet castorInitSecurityRoleRefs)
214 {
215 this.initSecurityRoleRefs = castorInitSecurityRoleRefs;
216 }
217
218 public void setCastorDisplayNames(DisplayNameSet castorDisplayNames)
219 {
220 this.displayNames = castorDisplayNames;
221 }
222
223 public void setCastorDescriptions(DescriptionSet castorDescriptions)
224 {
225 this.descriptions = castorDescriptions;
226 }
227
228 public void setDisplayNames(DisplayNameSet displayNames)
229 {
230 this.displayNames = displayNames;
231 }
232
233 public void setDescriptions(DescriptionSet descriptions) {
234 this.descriptions = descriptions;
235 }
236
237 public void setId(String id)
238 {
239 this.id = id;
240 objectId = null;
241 }
242
243 public void setServletClass(String servletClass)
244 {
245 this.servletClass = servletClass;
246 }
247
248 public void setAvailable(long available) {
249 if (available > System.currentTimeMillis()) {
250 this.available = available;
251 } else {
252 this.available = 0;
253 }
254 }
255
256 public void setJspFile(String jspFile)
257 {
258 this.jspFile = jspFile;
259 }
260
261 protected void setServletMapping(ServletMappingImpl servletMapping)
262 {
263 this.servletMapping = servletMapping;
264 }
265
266 public void setServletName(String servletName)
267 {
268 this.servletName = servletName;
269 }
270
271 protected void setWebApplicationDefinition(WebApplicationDefinition webApplication)
272 {
273 this.webApplication = webApplication;
274 }
275
276
277
278 public String toString()
279 {
280 return toString(0);
281 }
282
283 public String toString(int indent)
284 {
285 StringBuffer buffer = new StringBuffer(50);
286 StringUtils.newLine(buffer,indent);
287 buffer.append(getClass().toString()); buffer.append(":");
288 StringUtils.newLine(buffer,indent);
289 buffer.append("{");
290 StringUtils.newLine(buffer,indent);
291 buffer.append("id='"); buffer.append(id); buffer.append("'");
292 StringUtils.newLine(buffer,indent);
293 buffer.append("servletName='"); buffer.append(servletName); buffer.append("'");
294 StringUtils.newLine(buffer,indent);
295 buffer.append(((DescriptionSetImpl)descriptions).toString(indent));
296
297 StringUtils.newLine(buffer,indent);
298 buffer.append(((DisplayNameSetImpl)displayNames).toString(indent));
299
300 if (servletClass!=null) {
301 buffer.append("servletClass='"); buffer.append(servletClass); buffer.append("'");
302 } else if (jspFile!=null) {
303 buffer.append("jspFile='"); buffer.append(jspFile); buffer.append("'");
304 }
305 StringUtils.newLine(buffer,indent);
306 buffer.append(((org.apache.pluto.portalImpl.om.common.impl.ParameterSetImpl)initParams).toString(indent));
307
308 StringUtils.newLine(buffer,indent);
309 buffer.append(((org.apache.pluto.portalImpl.om.common.impl.SecurityRoleRefSetImpl)initSecurityRoleRefs).toString(indent));
310
311 if (servletMapping!=null) {
312 StringUtils.newLine(buffer,indent);
313 buffer.append("Linked ServletMapping:");
314 buffer.append(servletMapping.toString(indent+2));
315 }
316 StringUtils.newLine(buffer,indent);
317 buffer.append("}");
318 return buffer.toString();
319 }
320
321 }