1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.springframework.extensions.webscripts.atom;
20
21 import java.util.HashMap;
22 import java.util.Map;
23
24 import javax.xml.namespace.QName;
25
26 import org.springframework.extensions.webscripts.Cache;
27 import org.springframework.extensions.webscripts.DeclarativeWebScript;
28 import org.springframework.extensions.webscripts.Status;
29 import org.springframework.extensions.webscripts.WebScriptException;
30 import org.springframework.extensions.webscripts.WebScriptRequest;
31 import org.springframework.extensions.webscripts.servlet.WebScriptServletRequest;
32
33
34
35
36
37
38
39 public abstract class AtomWebScript extends DeclarativeWebScript
40 {
41
42 protected AbderaService abderaService;
43
44
45
46
47
48
49 public void setAbderaService(AbderaService abderaService)
50 {
51 this.abderaService = abderaService;
52 }
53
54
55
56
57 @SuppressWarnings("unchecked")
58 @Override
59 protected Map<String, Object> executeImpl(WebScriptRequest req, Status status, Cache cache)
60 {
61 if (!(req instanceof WebScriptServletRequest))
62 {
63 throw new WebScriptException("ATOM Web Scripts require servlet runtime");
64 }
65
66 Map<String, Object> model = new HashMap<String, Object>();
67 model.put("slug", req.getHeader("Slug"));
68 model.put("type", req.getHeader("Content-Type"));
69 Map<String,QName> qnames = new HashMap<String,QName>();
70 qnames.putAll(abderaService.getNames());
71 Map<String,QName> scriptQnames = (Map<String,QName>)req.getServiceMatch().getWebScript().getDescription().getExtensions().get("qnames");
72 if (scriptQnames != null)
73 {
74 qnames.putAll(scriptQnames);
75 }
76 model.put("qnames", qnames);
77 return model;
78 }
79
80 }