- Timestamp:
- 2007-03-14T12:38:17+13:00 (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/gsdl3/src/java/org/greenstone/gsdl3/service/CrossCollectionSearch.java
r13976 r13978 205 205 206 206 for (int k=0; k<responses.getLength(); k++) { 207 String coll_name = GSPath. getFirstLink(((Element)responses.item(k)).getAttribute(GSXML.FROM_ATT));207 String coll_name = GSPath.removeLastLink(((Element)responses.item(k)).getAttribute(GSXML.FROM_ATT)); 208 208 NodeList nodes = ((Element)responses.item(k)).getElementsByTagName(GSXML.DOC_NODE_ELEM); 209 209 if (nodes==null || nodes.getLength()==0) continue; … … 261 261 Element metadata_response = (Element)this.router.process(metadata_message); 262 262 logger.debug("metadata response = "+this.converter.getPrettyString(metadata_response)); 263 264 NodeList coll_responses = metadata_response.getElementsByTagName(GSXML.COLLECTION_ELEM); 263 NodeList coll_responses = metadata_response.getElementsByTagName(GSXML.RESPONSE_ELEM); 265 264 ArrayList valid_colls = new ArrayList(); 266 265 ArrayList valid_coll_names = new ArrayList(); 267 266 for (int i=0; i<coll_responses.getLength(); i++) { 268 Element coll = (Element)coll_responses.item(i); 267 Element response = (Element)coll_responses.item(i); 268 Element coll = (Element)GSXML.getChildByTagName(response, GSXML.COLLECTION_ELEM); 269 269 Element service_list = (Element)GSXML.getChildByTagName(coll, GSXML.SERVICE_ELEM+GSXML.LIST_MODIFIER); 270 270 if (service_list==null) continue; 271 271 Element query_service = GSXML.getNamedElement(service_list, GSXML.SERVICE_ELEM, GSXML.NAME_ATT, TEXT_QUERY_SERVICE); // should be AbstractSearch.TEXT_QUERY_SERVICE 272 272 if (query_service == null) continue; 273 String coll_id = coll.getAttribute(GSXML.NAME_ATT); 273 // use the name of the response in case we are talking to a remote collection, not the name of the collection. 274 String coll_id = response.getAttribute(GSXML.FROM_ATT); 274 275 String coll_name = coll_id+": "+GSXML.getDisplayText(coll, GSXML.DISPLAY_TEXT_NAME, "en", "en"); // just use english for now until we do some caching or something 275 276 valid_colls.add(coll_id); … … 298 299 result.setAttribute(GSXML.FROM_ATT, DOCUMENT_METADATA_RETRIEVE_SERVICE); 299 300 result.setAttribute(GSXML.TYPE_ATT, GSXML.REQUEST_TYPE_PROCESS); 300 301 301 302 String lang = request.getAttribute(GSXML.LANG_ATT); 302 303 // Get the parameters of the request … … 306 307 return result; // Return the empty result 307 308 } 308 309 309 310 NodeList query_doc_list = request.getElementsByTagName(GSXML.DOC_NODE_ELEM); 310 311 if (query_doc_list.getLength()==0) { … … 316 317 Element result_node_list = this.doc.createElement(GSXML.DOC_NODE_ELEM+GSXML.LIST_MODIFIER); 317 318 result.appendChild(result_node_list); 318 319 319 320 // get all the metadata params 320 321 Element new_param_list = this.doc.createElement(GSXML.PARAM_ELEM+GSXML.LIST_MODIFIER); … … 335 336 coll_items.appendChild(this.doc.importNode(doc_node, true)); 336 337 } 337 338 338 339 // create teh individual requests 339 340 Element meta_request_message = this.doc.createElement(GSXML.MESSAGE_ELEM); 340 341 Set mapping_set = coll_map.entrySet(); 341 342 Iterator iter = mapping_set.iterator(); 342 343 343 344 while (iter.hasNext()) { 344 345 Map.Entry e = (Map.Entry)iter.next(); … … 351 352 352 353 } 354 353 355 Element meta_result = this.router.process(meta_request_message); 354 356 … … 358 360 NodeList meta_responses = meta_result.getElementsByTagName(GSXML.RESPONSE_ELEM); 359 361 for (int i=0; i<meta_responses.getLength(); i++) { 360 String collname = GSPath. getFirstLink(((Element)meta_responses.item(i)).getAttribute(GSXML.FROM_ATT));362 String collname = GSPath.removeLastLink(((Element)meta_responses.item(i)).getAttribute(GSXML.FROM_ATT)); 361 363 Element first_elem = (Element)GSXML.getNodeByPath(meta_responses.item(i), "documentNodeList/documentNode"); 362 364 coll_map.put(collname, first_elem);
Note:
See TracChangeset
for help on using the changeset viewer.