source: trunk/gsdl3/src/java/org/greenstone/gsdl3/Library2.java@ 3222

Last change on this file since 3222 was 3222, checked in by kjdon, 22 years ago

Initial revision

  • Property svn:keywords set to Author Date Id Revision
File size: 3.3 KB
Line 
1package org.greenstone.gsdl3;
2
3import org.greenstone.gsdl3.core.*;
4import org.greenstone.gsdl3.util.*;
5
6import java.io.BufferedReader;
7import java.io.InputStreamReader;
8import java.io.File;
9import java.io.IOException;
10final public class Library2 {
11
12 public static void main(String args[]) {
13
14 if (args.length != 2) {
15 System.out.println("Usage: Library2 <gsdl3home> <sitehome>");
16 System.exit(1);
17 }
18 String gsdl_home = args[0];
19 String transform_home = GSFile.xmlTransformDir(gsdl_home);
20 String site_home = args[1];
21
22 MessageRouter mr = new MessageRouter();
23 mr.setSiteHome(site_home);
24 mr.configure();
25
26 // for doing xslt transforms
27 XMLTransformer transformer = new XMLTransformer();
28
29 BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
30 String query=null;
31 String request=null;
32 String result=null;
33 String collect=null;
34 String service=null;
35 String info=null;
36 while (true) {
37 System.out.println("Please enter a query type (choose from: describe, query) or 'exit' to quit");
38 try {
39 query = br.readLine();
40 query.trim();
41
42 if (query.startsWith("exit")) {
43 System.exit(1);
44 }
45 if (query.equals("describe")|| query.equals("query")) {
46 System.out.println("\nPlease enter a collection name (or <enter> for no collection)");
47 collect = br.readLine();
48 collect.trim();
49 System.out.println("\nPlease enter a service name (or <enter> for no service)");
50 service = br.readLine();
51 service.trim();
52 System.out.println("\nPlease enter an info name (or <enter> for no info)");
53 info = br.readLine();
54 info.trim();
55
56 request = "<message><request type='"+query+"' to='";
57
58 if (!collect.equals ("")) {
59 request += collect+"/";
60 }
61 if (!service.equals("")) {
62 request += service+"/";
63 }
64 request += "'";
65 if (!info.equals("")) {
66 request += " info='"+info+"'";
67 }
68
69 request += "/></message>";
70
71 System.out.println("Sending message to MessageRouter:\n"+request);
72 result = mr.process(request);
73
74 System.out.println("Raw Result:\n"+result+"\n");
75
76 // transform the result
77
78 // select a stylesheet
79 String stylesheet = null;
80 if (query.equals("describe")) {
81 if (collect.equals("")&&service.equals("")) {
82 stylesheet = transform_home+File.separatorChar+"home.xsl";
83 } else if (!collect.equals("")) {
84 stylesheet = transform_home+File.separatorChar+"collect_about.xsl";
85 } else if (!service.equals("")) {
86 stylesheet = transform_home+File.separatorChar+"service_about.xsl";
87 }
88 } else if (query.equals("query")) {
89 stylesheet = transform_home+File.separatorChar+"query_result.xsl";
90 }
91 if (stylesheet != null) {
92 File style = new File(stylesheet);
93 if (!style.exists()) {
94 System.err.println("stylesheet doesn't exist");
95 } else {
96
97 String transformed_result = transformer.transform(stylesheet, result);
98 System.out.println("Transformed result:\n"+transformed_result);
99 }
100 } else {
101 System.out.println("no appropriate stylesheet found");
102 }
103 } else {
104 System.out.println("your request was not understood, sorry");
105 }
106
107 } catch (IOException e) {
108 System.err.println("Library2 IO exception:"+e.getMessage());
109 }
110
111 } // while (true
112 }
113
114}
115
116
Note: See TracBrowser for help on using the repository browser.