- Timestamp:
- 2003-04-02T15:59:59+12:00 (21 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/gsdl3/src/java/org/greenstone/gsdl3/action/QueryAction.java
r3999 r4080 11 11 12 12 import java.util.HashMap; 13 import java.util.Vector; 13 14 import java.util.Map; 14 15 import java.util.Iterator; … … 155 156 } 156 157 158 // add in the format info to the stylesheet if there is any 159 Element format_elem = getAndTransformFormat(format_response); 160 if (format_elem != null) { 161 GSXSLT.mergeStylesheets(style_doc, format_elem); 162 } 163 164 157 165 // do the query 158 166 Element mr_query_message = doc_.createElement(GSXML.MESSAGE_ELEM); … … 163 171 Element query_param_list = (Element)doc_.importNode(cgi_param_list, true); 164 172 mr_query_request.appendChild(query_param_list); 173 174 // do the query 165 175 Element mr_query_response = (Element)mr_.process(mr_query_message); 166 176 … … 169 179 if (query_result_metadata_list == null) { 170 180 System.err.println("QueryAction: Warning: No query result metadata.\n"); 171 } 181 } else { // add it into the page response 182 page_response.appendChild(doc_.importNode(query_result_metadata_list, true)); 183 } 184 172 185 path = GSPath.appendLink(GSXML.RESPONSE_ELEM, GSXML.TERM_ELEM+GSXML.LIST_MODIFIER); 173 186 Element query_term_info_list = (Element) GSXML.getNodeByPath(mr_query_response, path); 174 187 if (query_term_info_list == null) { 175 188 System.err.println("QueryAction: Warning: No query term information.\n"); 176 } 177 178 // this result is the list of docs. 179 // now take that list, and get the Titles 180 // for now, just create a whole new request 181 189 } else { // add it into the page response 190 page_response.appendChild(doc_.importNode(query_term_info_list, true)); 191 } 192 182 193 // check that there are some documents - for now check the list, but later should use a numdocs metadata elem 183 194 path = GSPath.appendLink(GSXML.RESPONSE_ELEM, GSXML.DOC_NODE_ELEM+GSXML.LIST_MODIFIER); … … 187 198 // documentList not present if no docs found 188 199 if (document_list == null) { 189 190 //Element result_response = (Element)GSXML.getChildByTagName(mr_query_response, GSXML.RESPONSE_ELEM);191 192 //page.appendChild(doc_.importNode(result_response, true));193 200 GSXSLT.absoluteIncludePaths(style_doc, config_); 194 201 return (Element)transformer_.transform(style_doc, page); … … 196 203 } 197 204 198 // add in the format info 199 Element format_elem = getAndTransformFormat(format_response); 200 if (format_elem != null) { 201 GSXSLT.mergeStylesheets(style_doc, format_elem); 202 } 203 204 // we have a doc list, so get the metadata - for now, get title. 205 // can we dynamically decide what metadata to get? 205 206 // we have a doc list, so get the metadata - look through the stylesheet to determine what metadata to ask for 207 208 Vector document_metadata = GSXSLT.extractWantedMetadata(style_doc, GSXML.DOC_NODE_ELEM); 209 if (document_metadata.isEmpty()) { 210 System.err.println("no document metadata specified!!"); 211 // we dont need to do the metadata request, just append the original doc list and return the page 212 page_response.appendChild(doc_.importNode(document_list, true)); 213 GSXSLT.absoluteIncludePaths(style_doc, config_); 214 return (Element)transformer_.transform(style_doc, page); 215 216 } 217 // we have to do the metadata request 218 206 219 Element mr_metadata_message = doc_.createElement(GSXML.MESSAGE_ELEM); 207 220 Element mr_metadata_request = doc_.createElement(GSXML.REQUEST_ELEM); … … 213 226 mr_metadata_request.setAttribute(GSXML.TO_ATT, to); 214 227 215 // Create a parameter list to specify the required metadata information 216 Element dm_param_list = doc_.createElement(GSXML.PARAM_ELEM+GSXML.LIST_MODIFIER); 228 Element dm_param_list = GSXML.createMetadataParamList(doc_, document_metadata); 217 229 mr_metadata_request.appendChild(dm_param_list); 218 Element dm_param = doc_.createElement(GSXML.PARAM_ELEM); 219 dm_param_list.appendChild(dm_param); 220 dm_param.setAttribute(GSXML.NAME_ATT, "metadata"); 221 dm_param.setAttribute(GSXML.VALUE_ATT, "Title"); 222 230 231 232 // add in the doc node list too 223 233 mr_metadata_request.appendChild(doc_.importNode(document_list, true)); 224 234 Element mr_metadata_response = (Element) mr_.process(mr_metadata_message); … … 229 239 if (query_result_document_list != null) { 230 240 page_response.appendChild(doc_.importNode(query_result_document_list, true)); 231 }232 // If there is some metadata about the query results, add it in233 if (query_result_metadata_list != null) {234 page_response.appendChild(doc_.importNode(query_result_metadata_list, true));235 }236 // If there is some metadata about the query results, add it in237 if (query_term_info_list != null) {238 page_response.appendChild(doc_.importNode(query_term_info_list, true));239 241 } 240 242
Note:
See TracChangeset
for help on using the changeset viewer.