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

Last change on this file since 13270 was 13270, checked in by shaoqun, 17 years ago

replace Category class which is deprecated with Logger class

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