source: main/trunk/greenstone3/src/java/org/greenstone/gsdl3/action/SystemAction.java@ 24988

Last change on this file since 24988 was 24985, checked in by sjm84, 12 years ago

Reformatting this file ahead of some changes

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