source: trunk/greenstone3-extensions/vishnu/src/vishnu/testvis/object/GSDLEngine.java@ 8189

Last change on this file since 8189 was 8189, checked in by kjdon, 20 years ago

first version of Imperial College's Visualiser code

  • Property svn:keywords set to Author Date Id Revision
File size: 2.7 KB
Line 
1package vishnu.testvis.object;
2import java.io.*;
3import java.net.*;
4import java.util.*;
5import vishnu.datablock.*;
6import vishnu.testvis.visual.*;
7import vishnu.server.Packaging;
8import vishnu.server.XMLUtil;
9
10import org.w3c.dom.Element;
11import org.w3c.dom.Document;
12import org.w3c.dom.NodeList;
13import org.xml.sax.InputSource;
14import org.apache.xerces.parsers.DOMParser;
15
16public class GSDLEngine extends Engine
17{
18 public GSDLEngine() {
19 }
20
21 public GSDLEngine(Vishnu display)
22 {
23 this.setDisplay(display);
24 }
25
26 public Vector getCollections(Vector q) {
27 return null;
28 }
29
30 public DataBlock getData(String query_term, String collection) {
31
32
33 String query = servlet+"&type=search&q="+query_term;
34 System.out.println("sending query: " + query_term);
35 DataBlock db = null;
36 try {
37 URL cgi = new URL(query);
38 DataInputStream in = new DataInputStream(cgi.openStream());
39 DOMParser parser = new DOMParser();
40 parser.parse(new InputSource(in));
41 Document data_doc = parser.getDocument();
42 Element data_elem = data_doc.getDocumentElement();
43 Element cluster_results = (Element)XMLUtil.getChildByTagName(data_elem, "cluster");
44 String results = XMLUtil.getNodeText(cluster_results);
45 //System.out.println("recived results:" + results);
46 Element description_results = (Element)XMLUtil.getChildByTagName(data_elem, "descriptions");
47 NodeList descs = description_results.getElementsByTagName("desc");
48 Vector desc_vector = new Vector();
49 for (int i=0; i<descs.getLength(); i++) {
50 String d = XMLUtil.getNodeText((Element)descs.item(i));
51 desc_vector.add(d);
52 }
53 Packaging p = new Packaging();
54 db = p.getDataPackage(results, desc_vector);
55 in.close();
56 } catch (Exception e) {
57 System.err.println( "Error sending query to cgi: " + e);
58 e.printStackTrace();
59 return null;
60 }
61 return db;
62
63 }
64
65 public Vector getDocument(String id, String collection) {
66 String query = servlet+"&type=fetch&d="+id;
67 System.out.println("sending fetch: " + id);
68 Vector doc;
69 try {
70 URL cgi = new URL(query);
71 DataInputStream in = new DataInputStream(cgi.openStream());
72 DOMParser parser = new DOMParser();
73 parser.parse(new InputSource(in));
74 Document data_doc = parser.getDocument();
75 Element data_elem = data_doc.getDocumentElement();
76 String results = XMLUtil.getNodeText(data_elem);
77 System.out.println("recived results:" + results);
78 // ugly hack. make this nicer!!
79 doc = new Vector(Arrays.asList(results.split("\n")));
80 in.close();
81 } catch (Exception e) {
82 System.err.println( "Error sending query to cgi: " + e);
83 e.printStackTrace();
84 return null;
85 }
86 return doc;
87
88 }
89
90}
Note: See TracBrowser for help on using the repository browser.