View Javadoc

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    /* (non-Javadoc)
38     * @see org.apache.cocoon.sitemap.SitemapModelComponent#setup(org.apache.cocoon.environment.SourceResolver, java.util.Map, java.lang.String, org.apache.avalon.framework.parameters.Parameters)
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      //String endPoint = utils.getAnyParameter("myspace-end-point", "http://localhost:8080/myspace", params, request, session);
54      //logger.debug("[setup] endPoint: " + endPoint);
55  
56      try {
57        RegistryService rs = RegistryDelegateFactory.createQuery();
58        String ident = request.getParameter("identifier");
59        if(ident != null) {
60            registryDocument = rs.getResourceByIdentifier(ident);
61        }//if
62      }
63      catch(Exception e) {
64        registryDocument = null;
65        e.printStackTrace();
66      }
67    }
68  
69    /* (non-Javadoc)
70     * @see org.apache.cocoon.generation.Generator#generate()
71     */
72     public void generate()
73      throws IOException, SAXException, ProcessingException {
74     
75        if(registryDocument != null && oaiView) {
76  //         registryDocument = 
77  //               RegistryService.buildOAIDocument(registryDocument,"registrydataview.html", null,reqMap);
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  }