- Timestamp:
- 2013-10-10T17:21:30+13:00 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
main/trunk/greenstone3/src/java/org/greenstone/gsdl3/action/BrowseAction.java
r26026 r28382 12 12 import org.greenstone.gsdl3.util.OID; 13 13 import org.greenstone.gsdl3.util.UserContext; 14 import org.w3c.dom.Document; 14 15 import org.w3c.dom.Element; 15 16 import org.w3c.dom.Node; … … 29 30 public Node process(Node message_node) 30 31 { 31 32 32 Element message = this.converter.nodeToElement(message_node); 33 33 Document doc = message.getOwnerDocument(); 34 34 35 // get the request - assume only one 35 36 Element request = (Element) GSXML.getChildByTagName(message, GSXML.REQUEST_ELEM); 36 37 37 38 // the result 38 Element result = this.doc.createElement(GSXML.MESSAGE_ELEM);39 Element result = doc.createElement(GSXML.MESSAGE_ELEM); 39 40 Element response = classifierBrowse(request); 40 41 result.appendChild(response); … … 44 45 protected Element classifierBrowse(Element request) 45 46 { 46 47 Element page_response = this.doc.createElement(GSXML.RESPONSE_ELEM); 47 Document doc = request.getOwnerDocument(); 48 49 Element page_response = doc.createElement(GSXML.RESPONSE_ELEM); 48 50 49 51 // extract the params from the cgi-request, and check that we have a coll specified … … 75 77 // this should be cached somehow later on. 76 78 77 Element info_message = this.doc.createElement(GSXML.MESSAGE_ELEM);78 Element info_request = GSXML.createBasicRequest( this.doc, GSXML.REQUEST_TYPE_DESCRIBE, to, userContext);79 Element info_message = doc.createElement(GSXML.MESSAGE_ELEM); 80 Element info_request = GSXML.createBasicRequest(doc, GSXML.REQUEST_TYPE_DESCRIBE, to, userContext); 79 81 info_message.appendChild(info_request); 80 82 81 83 // also get the format stuff now if there is some 82 Element format_request = GSXML.createBasicRequest( this.doc, GSXML.REQUEST_TYPE_FORMAT, to, userContext);84 Element format_request = GSXML.createBasicRequest(doc, GSXML.REQUEST_TYPE_FORMAT, to, userContext); 83 85 info_message.appendChild(format_request); 84 86 // process the requests … … 92 94 93 95 Element service_description = (Element) GSXML.getChildByTagName(service_response, GSXML.SERVICE_ELEM); 94 page_response.appendChild( this.doc.importNode(service_description, true));96 page_response.appendChild(doc.importNode(service_description, true)); 95 97 96 98 //append site metadata … … 137 139 GSXSLT.mergeFormatElements(this_format, global_format_elem, false); 138 140 } 139 Element new_format = GSXML.duplicateWithNewName( this.doc, this_format, GSXML.FORMAT_ELEM, false);141 Element new_format = GSXML.duplicateWithNewName(doc, this_format, GSXML.FORMAT_ELEM, false); 140 142 // set teh format type 141 143 new_format.setAttribute(GSXML.TYPE_ATT, "browse"); … … 158 160 logger.info("extracted meta names, " + metadata_names.toString()); 159 161 // get the browse structure for the selected node 160 Element classify_message = this.doc.createElement(GSXML.MESSAGE_ELEM);161 Element classify_request = GSXML.createBasicRequest( this.doc, GSXML.REQUEST_TYPE_PROCESS, to, userContext);162 Element classify_message = doc.createElement(GSXML.MESSAGE_ELEM); 163 Element classify_request = GSXML.createBasicRequest(doc, GSXML.REQUEST_TYPE_PROCESS, to, userContext); 162 164 classify_message.appendChild(classify_request); 163 165 164 166 //Create a parameter list to specify the required structure information 165 167 // for now, always get ancestors and children 166 Element param_list = this.doc.createElement(GSXML.PARAM_ELEM + GSXML.LIST_MODIFIER);168 Element param_list = doc.createElement(GSXML.PARAM_ELEM + GSXML.LIST_MODIFIER); 167 169 classify_request.appendChild(param_list); 168 Element param = this.doc.createElement(GSXML.PARAM_ELEM);170 Element param = doc.createElement(GSXML.PARAM_ELEM); 169 171 param_list.appendChild(param); 170 172 param.setAttribute(GSXML.NAME_ATT, "structure"); 171 173 param.setAttribute(GSXML.VALUE_ATT, "ancestors"); 172 param = this.doc.createElement(GSXML.PARAM_ELEM);174 param = doc.createElement(GSXML.PARAM_ELEM); 173 175 param_list.appendChild(param); 174 176 param.setAttribute(GSXML.NAME_ATT, "structure"); … … 176 178 if (get_siblings) 177 179 { 178 param = this.doc.createElement(GSXML.PARAM_ELEM);180 param = doc.createElement(GSXML.PARAM_ELEM); 179 181 param_list.appendChild(param); 180 182 param.setAttribute(GSXML.NAME_ATT, "structure"); … … 183 185 184 186 // put the classifier node into a classifier node list 185 Element classifier_list = this.doc.createElement(GSXML.CLASS_NODE_ELEM + GSXML.LIST_MODIFIER);186 Element classifier = this.doc.createElement(GSXML.CLASS_NODE_ELEM);187 Element classifier_list = doc.createElement(GSXML.CLASS_NODE_ELEM + GSXML.LIST_MODIFIER); 188 Element classifier = doc.createElement(GSXML.CLASS_NODE_ELEM); 187 189 classifier.setAttribute(GSXML.NODE_ID_ATT, classifier_node); 188 190 classifier_list.appendChild(classifier); … … 205 207 206 208 // add the classifier node as the page classifier 207 Element page_classifier = GSXML.duplicateWithNewName( this.doc, cl_structure, GSXML.CLASSIFIER_ELEM, true);209 Element page_classifier = GSXML.duplicateWithNewName(doc, cl_structure, GSXML.CLASSIFIER_ELEM, true); 208 210 page_response.appendChild(page_classifier); 209 211 page_classifier.setAttribute(GSXML.NAME_ATT, top_id); … … 212 214 // then for each document node 213 215 214 Element metadata_message = this.doc.createElement(GSXML.MESSAGE_ELEM);216 Element metadata_message = doc.createElement(GSXML.MESSAGE_ELEM); 215 217 216 218 boolean did_classifier = false; … … 225 227 { 226 228 did_classifier = true; 227 Element cl_meta_request = GSXML.createBasicRequest( this.doc, GSXML.REQUEST_TYPE_PROCESS, to + "MetadataRetrieve", userContext);229 Element cl_meta_request = GSXML.createBasicRequest(doc, GSXML.REQUEST_TYPE_PROCESS, to + "MetadataRetrieve", userContext); 228 230 metadata_message.appendChild(cl_meta_request); 229 231 230 Element new_cl_nodes_list = this.doc.createElement(GSXML.CLASS_NODE_ELEM + GSXML.LIST_MODIFIER);232 Element new_cl_nodes_list = doc.createElement(GSXML.CLASS_NODE_ELEM + GSXML.LIST_MODIFIER); 231 233 cl_meta_request.appendChild(new_cl_nodes_list); 232 234 … … 234 236 { 235 237 236 Element cl = this.doc.createElement(GSXML.CLASS_NODE_ELEM);238 Element cl = doc.createElement(GSXML.CLASS_NODE_ELEM); 237 239 cl.setAttribute(GSXML.NODE_ID_ATT, ((Element) cl_nodes.item(c)).getAttribute(GSXML.NODE_ID_ATT)); 238 240 new_cl_nodes_list.appendChild(cl); … … 245 247 if (metadata_names.isEmpty()) 246 248 { 247 cl_param_list = this.doc.createElement(GSXML.PARAM_ELEM + GSXML.LIST_MODIFIER);248 Element p = this.doc.createElement(GSXML.PARAM_ELEM);249 cl_param_list = doc.createElement(GSXML.PARAM_ELEM + GSXML.LIST_MODIFIER); 250 Element p = doc.createElement(GSXML.PARAM_ELEM); 249 251 cl_param_list.appendChild(p); 250 252 p.setAttribute(GSXML.NAME_ATT, "metadata"); … … 253 255 else 254 256 { 255 cl_param_list = createMetadataParamList( metadata_names);257 cl_param_list = createMetadataParamList(doc,metadata_names); 256 258 } 257 259 … … 267 269 { 268 270 did_documents = true; 269 Element doc_meta_request = GSXML.createBasicRequest( this.doc, GSXML.REQUEST_TYPE_PROCESS, GSPath.appendLink(collection, "DocumentMetadataRetrieve"), userContext);271 Element doc_meta_request = GSXML.createBasicRequest(doc, GSXML.REQUEST_TYPE_PROCESS, GSPath.appendLink(collection, "DocumentMetadataRetrieve"), userContext); 270 272 metadata_message.appendChild(doc_meta_request); 271 273 272 Element doc_list = this.doc.createElement(GSXML.DOC_NODE_ELEM + GSXML.LIST_MODIFIER);274 Element doc_list = doc.createElement(GSXML.DOC_NODE_ELEM + GSXML.LIST_MODIFIER); 273 275 doc_meta_request.appendChild(doc_list); 274 276 … … 276 278 { 277 279 278 Element d = this.doc.createElement(GSXML.DOC_NODE_ELEM);280 Element d = doc.createElement(GSXML.DOC_NODE_ELEM); 279 281 d.setAttribute(GSXML.NODE_ID_ATT, ((Element) doc_nodes.item(c)).getAttribute(GSXML.NODE_ID_ATT)); 280 282 doc_list.appendChild(d); … … 282 284 283 285 // create and add in the param list - add all for now 284 Element doc_param_list = this.doc.createElement(GSXML.PARAM_ELEM + GSXML.LIST_MODIFIER);285 Element p = this.doc.createElement(GSXML.PARAM_ELEM);286 Element doc_param_list = doc.createElement(GSXML.PARAM_ELEM + GSXML.LIST_MODIFIER); 287 Element p = doc.createElement(GSXML.PARAM_ELEM); 286 288 doc_param_list.appendChild(p); 287 289 p.setAttribute(GSXML.NAME_ATT, "metadata");
Note:
See TracChangeset
for help on using the changeset viewer.