1 package org.astrogrid.portal.registry;
2
3 import java.io.File;
4 import java.io.IOException;
5 import java.io.StringReader;
6 import java.util.Map;
7 import java.util.Vector;
8 import java.util.HashMap;
9 import java.util.StringTokenizer;
10
11 import javax.xml.parsers.DocumentBuilder;
12 import javax.xml.parsers.DocumentBuilderFactory;
13 import org.apache.avalon.framework.logger.Logger;
14 import org.apache.avalon.framework.parameters.Parameters;
15 import org.apache.cocoon.ProcessingException;
16 import org.apache.cocoon.environment.ObjectModelHelper;
17 import org.apache.cocoon.environment.Request;
18 import org.apache.cocoon.environment.Session;
19 import org.apache.cocoon.environment.SourceResolver;
20 import org.apache.cocoon.generation.AbstractGenerator;
21 import org.apache.cocoon.xml.dom.DOMStreamer;
22 import org.w3c.dom.Document;
23 import org.w3c.dom.Element;
24 import org.xml.sax.InputSource;
25 import org.xml.sax.SAXException;
26 import org.astrogrid.util.DomHelper;
27 import org.astrogrid.registry.client.query.RegistryService;
28 import org.astrogrid.registry.client.RegistryDelegateFactory;
29
30 public class RegistryXMLGeneration extends AbstractGenerator {
31
32 private Document registryDocument;
33 private boolean oaiView = false;
34
35 private Map reqMap = null;
36
37
38
39
40 public void setup(SourceResolver resolver, Map objectModel, String src, Parameters params)
41 throws ProcessingException, SAXException, IOException {
42 super.setup(resolver, objectModel, src, params);
43
44 Logger logger = this.getLogger();
45
46 Request request = ObjectModelHelper.getRequest(objectModel);
47 Session session = request.getSession(true);
48
49 logger.debug("[act] params: " + params);
50 logger.debug("[act] request: " + request);
51 logger.debug("[act] session: " + session);
52
53
54
55
56 try {
57 RegistryService rs = RegistryDelegateFactory.createQuery();
58 String ident = request.getParameter("identifier");
59 if(ident != null) {
60 registryDocument = rs.getResourceByIdentifier(ident);
61 }
62 }
63 catch(Exception e) {
64 registryDocument = null;
65 e.printStackTrace();
66 }
67 }
68
69
70
71
72 public void generate()
73 throws IOException, SAXException, ProcessingException {
74
75 if(registryDocument != null && oaiView) {
76
77
78 }
79
80 if(registryDocument == null) {
81 try {
82 registryDocument = DomHelper.newDocument();
83 Element root = registryDocument.createElement("error");
84 root.appendChild(registryDocument.createTextNode("No xml found to display"));
85 registryDocument.appendChild(root);
86 }catch(Exception e) {
87 e.printStackTrace();
88 }
89 }
90
91 DOMStreamer streamer = new DOMStreamer();
92 streamer.setNormalizeNamespaces(false);
93 streamer.setContentHandler(contentHandler);
94 streamer.stream(registryDocument);
95
96 }
97
98 }