source: trunk/gsdl3/src/java/org/greenstone/gsdl3/action/SystemAction.java@ 8801

Last change on this file since 8801 was 6300, checked in by kjdon, 21 years ago

GSXML.createBasicRequest now expects a user id

  • Property svn:keywords set to Author Date Id Revision
File size: 2.7 KB
Line 
1package org.greenstone.gsdl3.action;
2
3import org.greenstone.gsdl3.core.ModuleInterface;
4import org.greenstone.gsdl3.util.*;
5
6// XML classes
7import org.w3c.dom.Node;
8import org.w3c.dom.Element;
9import org.w3c.dom.Document;
10
11// other java stuff
12import java.io.File;
13import java.util.HashMap;
14
15public class SystemAction extends Action {
16
17 /** process a request */
18 public Element process (Element message) {
19
20 // assume only one request
21 Element request = (Element)GSXML.getChildByTagName(message, GSXML.REQUEST_ELEM);
22
23 String subaction = request.getAttribute(GSXML.SUBACTION_ATT);
24 String lang = request.getAttribute(GSXML.LANG_ATT);
25 String uid = request.getAttribute(GSXML.USER_ID_ATT);
26 // get the param list
27 Element cgi_param_list = (Element)GSXML.getChildByTagName(request, GSXML.PARAM_ELEM+GSXML.LIST_MODIFIER);
28 HashMap params = GSXML.extractParams(cgi_param_list, false);
29
30 Element result = this.doc.createElement(GSXML.MESSAGE_ELEM);
31
32 String coll = (String)params.get(GSParams.SYSTEM_CLUSTER);
33
34 String to = "";
35 if (coll!=null && !coll.equals("")) {
36 to = coll;
37 }
38
39 Element mr_request_message = this.doc.createElement(GSXML.MESSAGE_ELEM);
40 Element mr_request = GSXML.createBasicRequest(this.doc, GSXML.REQUEST_TYPE_SYSTEM, to, lang, uid);
41 mr_request_message.appendChild(mr_request);
42
43 Element system = this.doc.createElement(GSXML.SYSTEM_ELEM);
44 mr_request.appendChild(system);
45
46 // will need to change the following if can do more than one system request at once
47 if (subaction.equals("c")) { // configure
48 system.setAttribute(GSXML.TYPE_ATT, GSXML.SYSTEM_TYPE_CONFIGURE);
49 String info = (String)params.get(GSParams.SYSTEM_SUBSET);
50 system.setAttribute(GSXML.SYSTEM_SUBSET_ATT, info);
51
52 } else {
53 String name = (String)params.get(GSParams.SYSTEM_MODULE_NAME);
54 String type = (String)params.get(GSParams.SYSTEM_MODULE_TYPE);
55
56 system.setAttribute(GSXML.SYSTEM_MODULE_NAME_ATT, name);
57 system.setAttribute(GSXML.SYSTEM_MODULE_TYPE_ATT, type);
58
59 if (subaction.equals("d")) { // delete
60 system.setAttribute(GSXML.TYPE_ATT, GSXML.SYSTEM_TYPE_DEACTIVATE);
61
62 } else if (subaction.equals("a")) { // add
63 system.setAttribute(GSXML.TYPE_ATT, GSXML.SYSTEM_TYPE_ACTIVATE);
64 } else {
65 // create the default response
66 // for now just have an error
67 System.err.println("SystemAction error: bad subaction type");
68 Element page_response = this.doc.createElement(GSXML.RESPONSE_ELEM);
69 result.appendChild(page_response);
70
71 return result;
72 }
73 }
74
75 Element response_message = this.mr.process(mr_request_message);
76
77 result.appendChild(GSXML.duplicateWithNewName(this.doc, (Element)GSXML.getChildByTagName(response_message, GSXML.RESPONSE_ELEM), GSXML.RESPONSE_ELEM, true));
78 return result;
79
80 }
81
82}
Note: See TracBrowser for help on using the repository browser.