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

Last change on this file since 4980 was 4693, checked in by kjdon, 21 years ago

some of the arg names have changed

  • Property svn:keywords set to Author Date Id Revision
File size: 2.6 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 // get the param list
26 Element cgi_param_list = (Element)GSXML.getChildByTagName(request, GSXML.PARAM_ELEM+GSXML.LIST_MODIFIER);
27 HashMap params = GSXML.extractParams(cgi_param_list, false);
28
29 Element result = doc_.createElement(GSXML.MESSAGE_ELEM);
30
31 String coll = (String)params.get(GSCGI.SYSTEM_CLUSTER_ARG);
32
33 String to = "";
34 if (coll!=null && !coll.equals("")) {
35 to = coll;
36 }
37
38 Element mr_request_message = doc_.createElement(GSXML.MESSAGE_ELEM);
39 Element mr_request = GSXML.createBasicRequest(doc_, GSXML.REQUEST_TYPE_SYSTEM, to, lang);
40 mr_request_message.appendChild(mr_request);
41
42 Element system = doc_.createElement(GSXML.SYSTEM_ELEM);
43 mr_request.appendChild(system);
44
45 // will need to change the following if can do more than one system request at once
46 if (subaction.equals("c")) { // configure
47 system.setAttribute(GSXML.TYPE_ATT, GSXML.SYSTEM_TYPE_CONFIGURE);
48 String info = (String)params.get(GSCGI.SYSTEM_SUBSET_ARG);
49 system.setAttribute(GSXML.SYSTEM_SUBSET_ATT, info);
50
51 } else {
52 String name = (String)params.get(GSCGI.SYSTEM_MODULE_NAME_ARG);
53 String type = (String)params.get(GSCGI.SYSTEM_MODULE_TYPE_ARG);
54
55 system.setAttribute(GSXML.SYSTEM_MODULE_NAME_ATT, name);
56 system.setAttribute(GSXML.SYSTEM_MODULE_TYPE_ATT, type);
57
58 if (subaction.equals("d")) { // delete
59 system.setAttribute(GSXML.TYPE_ATT, GSXML.SYSTEM_TYPE_DEACTIVATE);
60
61 } else if (subaction.equals("a")) { // add
62 system.setAttribute(GSXML.TYPE_ATT, GSXML.SYSTEM_TYPE_ACTIVATE);
63 } else {
64 // create the default response
65 // for now just have an error
66 System.err.println("SystemAction error: bad subaction type");
67 Element page_response = doc_.createElement(GSXML.RESPONSE_ELEM);
68 result.appendChild(page_response);
69
70 return result;
71 }
72 }
73
74 Element response_message = mr_.process(mr_request_message);
75
76 result.appendChild(GSXML.duplicateWithNewName(doc_, (Element)GSXML.getChildByTagName(response_message, GSXML.RESPONSE_ELEM), GSXML.RESPONSE_ELEM, true));
77 return result;
78
79 }
80
81}
Note: See TracBrowser for help on using the repository browser.