- Timestamp:
- 2014-04-10T14:39:33+12:00 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
main/trunk/greenstone3/src/java/org/greenstone/gsdl3/service/IViaProxy.java
r25978 r28966 13 13 import org.greenstone.gsdl3.util.GSPath; 14 14 import org.greenstone.gsdl3.util.GSXML; 15 import org.greenstone.gsdl3.util.XMLConverter; 16 15 17 import org.w3c.dom.Document; 16 18 import org.w3c.dom.Element; … … 18 20 19 21 /** 22 * Service class to proxy IVia 20 23 * 21 * @author Katherine Don22 * @version $Revision$23 24 */ 24 25 … … 64 65 return false; 65 66 } 66 Element tq_service = this.d oc.createElement(GSXML.SERVICE_ELEM);67 Element tq_service = this.desc_doc.createElement(GSXML.SERVICE_ELEM); 67 68 tq_service.setAttribute(GSXML.TYPE_ATT, GSXML.SERVICE_TYPE_QUERY); 68 69 tq_service.setAttribute(GSXML.NAME_ATT, TEXT_QUERY_SERVICE); 69 70 this.short_service_info.appendChild(tq_service); 70 71 71 Element dc_service = this.d oc.createElement(GSXML.SERVICE_ELEM);72 Element dc_service = this.desc_doc.createElement(GSXML.SERVICE_ELEM); 72 73 dc_service.setAttribute(GSXML.TYPE_ATT, GSXML.SERVICE_TYPE_RETRIEVE); 73 74 dc_service.setAttribute(GSXML.NAME_ATT, DOC_CONTENT_SERVICE); 74 75 this.short_service_info.appendChild(dc_service); 75 76 76 Element dm_service = this.d oc.createElement(GSXML.SERVICE_ELEM);77 Element dm_service = this.desc_doc.createElement(GSXML.SERVICE_ELEM); 77 78 dm_service.setAttribute(GSXML.TYPE_ATT, GSXML.SERVICE_TYPE_RETRIEVE); 78 79 dm_service.setAttribute(GSXML.NAME_ATT, DOC_META_SERVICE); … … 85 86 if (format != null) 86 87 { 87 this.format_info_map.put(TEXT_QUERY_SERVICE, this.d oc.importNode(format, true));88 this.format_info_map.put(TEXT_QUERY_SERVICE, this.desc_doc.importNode(format, true)); 88 89 } 89 90 … … 93 94 if (display_format != null) 94 95 { 95 this.format_info_map.put(DOC_CONTENT_SERVICE, this.d oc.importNode(display_format, true));96 this.format_info_map.put(DOC_CONTENT_SERVICE, this.desc_doc.importNode(display_format, true)); 96 97 // shoudl we make a copy? 97 98 } … … 101 102 } 102 103 103 protected Element getServiceDescription( String service, String lang, String subset)104 protected Element getServiceDescription(Document doc, String service, String lang, String subset) 104 105 { 105 106 106 107 if (service.equals(TEXT_QUERY_SERVICE)) 107 108 { 108 Element tq_service = this.doc.createElement(GSXML.SERVICE_ELEM);109 Element tq_service = doc.createElement(GSXML.SERVICE_ELEM); 109 110 tq_service.setAttribute(GSXML.TYPE_ATT, GSXML.SERVICE_TYPE_QUERY); 110 111 tq_service.setAttribute(GSXML.NAME_ATT, TEXT_QUERY_SERVICE); 111 112 if (subset == null || subset.equals(GSXML.DISPLAY_TEXT_ELEM + GSXML.LIST_MODIFIER)) 112 113 { 113 tq_service.appendChild(GSXML.createDisplayTextElement( this.doc, GSXML.DISPLAY_TEXT_NAME, getTextString(TEXT_QUERY_SERVICE + ".name", lang)));114 tq_service.appendChild(GSXML.createDisplayTextElement( this.doc, GSXML.DISPLAY_TEXT_SUBMIT, getTextString(TEXT_QUERY_SERVICE + ".submit", lang)));115 tq_service.appendChild(GSXML.createDisplayTextElement( this.doc, GSXML.DISPLAY_TEXT_DESCRIPTION, getTextString(TEXT_QUERY_SERVICE + ".description", lang)));114 tq_service.appendChild(GSXML.createDisplayTextElement(doc, GSXML.DISPLAY_TEXT_NAME, getTextString(TEXT_QUERY_SERVICE + ".name", lang))); 115 tq_service.appendChild(GSXML.createDisplayTextElement(doc, GSXML.DISPLAY_TEXT_SUBMIT, getTextString(TEXT_QUERY_SERVICE + ".submit", lang))); 116 tq_service.appendChild(GSXML.createDisplayTextElement(doc, GSXML.DISPLAY_TEXT_DESCRIPTION, getTextString(TEXT_QUERY_SERVICE + ".description", lang))); 116 117 } 117 118 if (subset == null || subset.equals(GSXML.PARAM_ELEM + GSXML.LIST_MODIFIER)) 118 119 { 119 Element param_list = this.doc.createElement(GSXML.PARAM_ELEM + GSXML.LIST_MODIFIER);120 Element param_list = doc.createElement(GSXML.PARAM_ELEM + GSXML.LIST_MODIFIER); 120 121 tq_service.appendChild(param_list); 121 Element param = GSXML.createParameterDescription( this.doc, QUERY_PARAM, getTextString("param." + QUERY_PARAM, lang), GSXML.PARAM_TYPE_STRING, null, null, null);122 Element param = GSXML.createParameterDescription(doc, QUERY_PARAM, getTextString("param." + QUERY_PARAM, lang), GSXML.PARAM_TYPE_STRING, null, null, null); 122 123 param_list.appendChild(param); 123 124 String[] field_ids = { "kw", "au", "su", "ti", "de", "fu" }; 124 125 String[] field_names = { getTextString("param." + FIELD_PARAM + ".kw", lang), getTextString("param." + FIELD_PARAM + ".au", lang), getTextString("param." + FIELD_PARAM + ".su", lang), getTextString("param." + FIELD_PARAM + ".ti", lang), getTextString("param." + FIELD_PARAM + ".de", lang), getTextString("param." + FIELD_PARAM + ".fu", lang) }; 125 126 126 param = GSXML.createParameterDescription( this.doc, FIELD_PARAM, getTextString("param." + FIELD_PARAM, lang), GSXML.PARAM_TYPE_ENUM_MULTI, "kw,au,su,ti,de,fu", field_ids, field_names);127 param = GSXML.createParameterDescription(doc, FIELD_PARAM, getTextString("param." + FIELD_PARAM, lang), GSXML.PARAM_TYPE_ENUM_MULTI, "kw,au,su,ti,de,fu", field_ids, field_names); 127 128 param_list.appendChild(param); 128 129 129 130 String[] hits_options = { "10", "30", "50" }; 130 param = GSXML.createParameterDescription( this.doc, GS_HITS_PARAM, getTextString("param." + GS_HITS_PARAM, lang), GSXML.PARAM_TYPE_ENUM_SINGLE, "10", hits_options, hits_options);131 param = GSXML.createParameterDescription(doc, GS_HITS_PARAM, getTextString("param." + GS_HITS_PARAM, lang), GSXML.PARAM_TYPE_ENUM_SINGLE, "10", hits_options, hits_options); 131 132 param_list.appendChild(param); 132 133 133 param = GSXML.createParameterDescription( this.doc, GS_START_PAGE_PARAM, "", GSXML.PARAM_TYPE_INVISIBLE, "1", null, null);134 param = GSXML.createParameterDescription(doc, GS_START_PAGE_PARAM, "", GSXML.PARAM_TYPE_INVISIBLE, "1", null, null); 134 135 param_list.appendChild(param); 135 136 } … … 138 139 if (service.equals(DOC_META_SERVICE)) 139 140 { 140 Element dm_service = this.doc.createElement(GSXML.SERVICE_ELEM);141 Element dm_service = doc.createElement(GSXML.SERVICE_ELEM); 141 142 dm_service.setAttribute(GSXML.TYPE_ATT, GSXML.SERVICE_TYPE_RETRIEVE); 142 143 dm_service.setAttribute(GSXML.NAME_ATT, DOC_META_SERVICE); … … 146 147 if (service.equals(DOC_CONTENT_SERVICE)) 147 148 { 148 Element dc_service = this.doc.createElement(GSXML.SERVICE_ELEM);149 Element dc_service = doc.createElement(GSXML.SERVICE_ELEM); 149 150 dc_service.setAttribute(GSXML.TYPE_ATT, GSXML.SERVICE_TYPE_RETRIEVE); 150 151 dc_service.setAttribute(GSXML.NAME_ATT, DOC_CONTENT_SERVICE); … … 158 159 protected Element processTextQuery(Element request) 159 160 { 160 161 Document result_doc = XMLConverter.newDOM(); 161 162 // Create a new (empty) result message 162 Element result = this.doc.createElement(GSXML.RESPONSE_ELEM);163 Element result = result_doc.createElement(GSXML.RESPONSE_ELEM); 163 164 result.setAttribute(GSXML.FROM_ATT, TEXT_QUERY_SERVICE); 164 165 result.setAttribute(GSXML.TYPE_ATT, GSXML.REQUEST_TYPE_PROCESS); 165 Element doc_node_list = this.doc.createElement(GSXML.DOC_NODE_ELEM + GSXML.LIST_MODIFIER);166 Element doc_node_list = result_doc.createElement(GSXML.DOC_NODE_ELEM + GSXML.LIST_MODIFIER); 166 167 result.appendChild(doc_node_list); 167 168 … … 243 244 244 245 // get the num docs and add to a metadata list 245 Element metadata_list = this.doc.createElement(GSXML.METADATA_ELEM + GSXML.LIST_MODIFIER);246 Element metadata_list = result_doc.createElement(GSXML.METADATA_ELEM + GSXML.LIST_MODIFIER); 246 247 result.appendChild(metadata_list); 247 248 248 249 // Add a metadata element specifying the number of matching documents 249 250 long numdocs = Long.parseLong(results_num); 250 GSXML.addMetadata( this.doc,metadata_list, "numDocsMatched", "" + numdocs);251 GSXML.addMetadata(metadata_list, "numDocsMatched", "" + numdocs); 251 252 String[] ids = doc_ids.split(" "); 252 253 253 254 for (int d = 0; d < ids.length; d++) 254 255 { 255 Element doc_node = this.doc.createElement(GSXML.DOC_NODE_ELEM);256 Element doc_node = result_doc.createElement(GSXML.DOC_NODE_ELEM); 256 257 doc_node.setAttribute(GSXML.NODE_ID_ATT, ids[d]); 257 258 doc_node_list.appendChild(doc_node); … … 265 266 protected Element processDocumentMetadataRetrieve(Element request) 266 267 { 267 Element result = this.doc.createElement(GSXML.RESPONSE_ELEM); 268 Document result_doc = XMLConverter.newDOM(); 269 Element result = result_doc.createElement(GSXML.RESPONSE_ELEM); 268 270 result.setAttribute(GSXML.FROM_ATT, DOC_META_SERVICE); 269 271 result.setAttribute(GSXML.TYPE_ATT, GSXML.REQUEST_TYPE_PROCESS); … … 323 325 String url_string = ivia_server_url + "/cgi-bin/view_record_set?theme=gsdl3&record_id_list=" + record_id_list.toString() + "&field_list=" + field_list.toString(); 324 326 325 Element node_list = this.doc.createElement(GSXML.DOC_NODE_ELEM + GSXML.LIST_MODIFIER);327 Element node_list = result_doc.createElement(GSXML.DOC_NODE_ELEM + GSXML.LIST_MODIFIER); 326 328 result.appendChild(node_list); 327 329 try … … 337 339 // the first line is the record 338 340 line = line.substring(8); 339 Element doc_node = this.doc.createElement(GSXML.DOC_NODE_ELEM);341 Element doc_node = result_doc.createElement(GSXML.DOC_NODE_ELEM); 340 342 doc_node.setAttribute(GSXML.NODE_ID_ATT, line); 341 Element meta_list = this.doc.createElement(GSXML.METADATA_ELEM + GSXML.LIST_MODIFIER);343 Element meta_list = result_doc.createElement(GSXML.METADATA_ELEM + GSXML.LIST_MODIFIER); 342 344 doc_node.appendChild(meta_list); 343 345 while ((line = reader.readLine()) != null) … … 352 354 String name = line.substring(0, col_pos); 353 355 String value = line.substring(col_pos + 2); // includes a space 354 GSXML.addMetadata( this.doc,meta_list, name, value);356 GSXML.addMetadata(meta_list, name, value); 355 357 } 356 358 node_list.appendChild(doc_node); … … 371 373 protected Element processDocumentContentRetrieve(Element request) 372 374 { 373 Element result = this.doc.createElement(GSXML.RESPONSE_ELEM); 375 Document result_doc = XMLConverter.newDOM(); 376 Element result = result_doc.createElement(GSXML.RESPONSE_ELEM); 374 377 result.setAttribute(GSXML.FROM_ATT, DOC_CONTENT_SERVICE); 375 378 result.setAttribute(GSXML.TYPE_ATT, GSXML.REQUEST_TYPE_PROCESS); … … 383 386 } 384 387 385 Element doc_list = this.doc.createElement(GSXML.DOC_NODE_ELEM + GSXML.LIST_MODIFIER);388 Element doc_list = result_doc.createElement(GSXML.DOC_NODE_ELEM + GSXML.LIST_MODIFIER); 386 389 result.appendChild(doc_list); 387 390 … … 391 394 { 392 395 String doc_id = doc_ids[i]; 393 Element doc_node = getDocument( doc_id);396 Element doc_node = getDocument(result_doc, doc_id); 394 397 doc_list.appendChild(doc_node); 395 398 } … … 402 405 * creates a documentNode around the text 403 406 */ 404 protected Element getDocument(String doc_id)407 protected Element getDocument(Document result_doc, String doc_id) 405 408 { 406 409 … … 447 450 processed_content.append("</nodeContent>"); 448 451 449 Element doc_node = this.doc.createElement(GSXML.DOC_NODE_ELEM);452 Element doc_node = result_doc.createElement(GSXML.DOC_NODE_ELEM); 450 453 doc_node.setAttribute(GSXML.NODE_ID_ATT, doc_id); 451 454 … … 454 457 { 455 458 Element content_element = content_doc.getDocumentElement(); 456 doc_node.appendChild( this.doc.importNode(content_element, true));459 doc_node.appendChild(result_doc.importNode(content_element, true)); 457 460 } 458 461 else
Note:
See TracChangeset
for help on using the changeset viewer.