Changeset 3965
- Timestamp:
- 29/05/08 17:36:35 (13 years ago)
- Location:
- TI01-discovery/branches/ws-Discovery2-upgrade/src/ndg
- Files:
-
- 1 added
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
TI01-discovery/branches/ws-Discovery2-upgrade/src/ndg/services/discovery/DiscoveryServiceSkeleton.java
r3959 r3965 32 32 public static final String NO_OVERLAP_OPERATOR_TYPE = "doesNotOverlap"; 33 33 34 public static final String DELIMITER = "-------------------------------------"; 34 35 /** 35 36 * Performs the doFullTextSearch operation … … 41 42 42 43 { 44 logger.info(DELIMITER); 43 45 logger.info("doSearch() invoked"); 46 logger.info(DELIMITER); 44 47 discoveryserviceapi.DoSearchReturnDocument response = 45 48 discoveryserviceapi.DoSearchReturnDocument.Factory.newInstance(); … … 126 129 private SearchAgent setupSearchAgent(DoSearchDocument request) throws DiscoveryWSException 127 130 { 131 logger.info("Setting up search agent"); 128 132 discoveryserviceapi.SearchType requestContent = request.getDoSearch(); 129 133 SearchAgent agent = new SearchAgent(); 130 134 131 135 // check if we're doing a term type search - if so, check there is a term to search on 132 if (requestContent.getTermType() != null && requestContent.getTermType().length() > 0) 133 { 134 logger.info("Term type set - checking for term value"); 135 136 if (requestContent.getTerm() != null && requestContent.getTerm().length() > 0 ) 136 if (Utilities.isStringDefined(requestContent.getTerm())) 137 { 138 logger.info("Term set to search on: " + requestContent.getTerm()); 139 agent.setTerm(requestContent.getTerm()); 140 } 141 142 // check if we're doing a term type search - if so, check there is a term to search on 143 if (Utilities.isStringDefined(requestContent.getTermType())) 144 { 145 logger.info("Term type set: " + requestContent.getTermType()); 146 logger.info("- checking for term value"); 147 148 if (Utilities.isStringDefined(requestContent.getTerm())) 137 149 { 138 150 logger.info("Term set - will do term search"); 139 151 agent.setTermType(requestContent.getTermType()); 140 agent.setTerm(requestContent.getTerm());141 152 } 142 153 else … … 198 209 agent.setDateRangeEnd( requestContent.getDateRange().getDateRangeEnd() ); 199 210 } 211 logger.info("Search agent ready for searching"); 200 212 return agent; 201 213 } -
TI01-discovery/branches/ws-Discovery2-upgrade/src/ndg/services/discovery/SearchAgent.java
r3957 r3965 29 29 private String termType = null; 30 30 31 static final BigInteger startDefault = new BigInteger("1"); // default value for first record to display in result set32 static final BigInteger howManyDefault = new BigInteger("30"); // default values for how many results to display in result set33 34 31 // Initialise input parameters, setting values to internal defaults 35 32 // private int resultId = 0; 36 private BigInteger start = startDefault;37 private BigInteger howMany = howManyDefault;33 private BigInteger start = new BigInteger("0"); // what row of results to start retrieval from 34 private BigInteger howMany = new BigInteger("30"); // how many results to display in result set 38 35 private String term = ""; 39 36 private String orderByField = null; // representation used in WSDL e.g. "date", "dataCentre" … … 365 362 private SearchSummary processResults(String[][] results) 366 363 { 364 logger.info("Extracting results"); 367 365 SearchSummary result = new SearchSummary(); 368 366 result.setHits(results.length); // NB ensure this is 0 if not data returned … … 375 373 Hashtable<String, String> thisDoc = new Hashtable<String, String>(); 376 374 thisDoc.put("name", results[i][0]); 375 377 376 // TODO: these next two are not used anywhere - remove or use? 378 377 thisDoc.put("matches", String.valueOf(1)); … … 382 381 result.setStatus( true ); 383 382 result.setStatusMessage( "Success" ); 384 result.setDocuments( documents ); 383 result.setDocuments( documents ); 384 logger.info("Results added to search summary"); 385 385 } 386 386 else 387 387 { 388 388 result.setStatus( false ); 389 result.setStatusMessage("Search was successful but generated no results."); 389 String outMessage = "Search was successful but generated no results."; 390 result.setStatusMessage(outMessage); 391 logger.info(outMessage); 390 392 } 391 393 … … 426 428 StringBuffer whereSqlCmd = new StringBuffer(); 427 429 428 if (this.getTerm() != null && this.getTerm().length() > 0) 429 { 430 logger.info("Adjusting query for " + this.getTermType() + " type search"); 430 if (Utilities.isStringDefined(this.getTerm())) 431 { 432 if (Utilities.isStringDefined(this.getTermType())) 433 logger.info("Adjusting query for " + this.getTermType() + " type search"); 431 434 432 if (this.getTermType().equals(DiscoveryServiceSkeleton.FULL_TEXT_TERM_TYPE)) 435 // NB, if no term type provided, assume full text search 436 if (! Utilities.isStringDefined(this.getTermType()) || 437 this.getTermType().equals(DiscoveryServiceSkeleton.FULL_TEXT_TERM_TYPE)) 433 438 { 434 439 appendWhereClause(whereSqlCmd, " to_tsquery('" + this.term + "') @@ ts_vector "); … … 506 511 } 507 512 513 // add the WHERE statement, if required 514 if (whereSqlCmd.length() > 0) 515 whereSqlCmd.insert(0, WHERE_STATEMENT); 516 508 517 // lastly, add the size limit and offset of the returned data set 509 518 logger.info("Adding size limit and offset of results set"); … … 511 520 whereSqlCmd.append(LIMIT_STATEMENT + this.getHowMany()); 512 521 513 String fullCmd = fromSqlCmd.toString() + WHERE_STATEMENT +whereSqlCmd.toString() + ";";522 String fullCmd = fromSqlCmd.toString() + whereSqlCmd.toString() + ";"; 514 523 logger.info("SQL query generated"); 515 524 logger.fine("Value: " + fullCmd); -
TI01-discovery/branches/ws-Discovery2-upgrade/src/ndg/testclient/discovery/DiscoveryServiceClient.java
r3959 r3965 4 4 import java.util.Date; 5 5 import ndg.clients.discovery.*; 6 import ndg.services.discovery.Utilities; 6 7 7 8 /** … … 132 133 133 134 /** 134 * Test if a string has a value set135 * @param str - string to test136 * @return true if str is non null and not empty, false otherwise137 */138 private boolean isStringDefined(String str)139 {140 if (str != null && str.length() > 0)141 return true;142 return false;143 }144 145 /**146 135 * Run a search - return results as a String 147 136 * … … 175 164 StringBuilder soapMessage = new StringBuilder("<doSearch xmlns=\"urn:DiscoveryServiceAPI\">"); 176 165 177 if ( isStringDefined(term))166 if (Utilities.isStringDefined(term)) 178 167 soapMessage.append("<term>" + term + "</term>"); 179 if ( isStringDefined(termType))168 if (Utilities.isStringDefined(termType)) 180 169 soapMessage.append("<termType>" + termType + "</termType>"); 181 170 182 if ( isStringDefined(start))171 if (Utilities.isStringDefined(start)) 183 172 { 184 173 // NB, check the input val is a valid int … … 187 176 } 188 177 189 if ( isStringDefined(howMany))178 if (Utilities.isStringDefined(howMany)) 190 179 { 191 180 // NB, check the input val is a valid int … … 194 183 } 195 184 196 if ( isStringDefined(orderBy))185 if (Utilities.isStringDefined(orderBy)) 197 186 soapMessage.append("<orderBy>" + orderBy + "</orderBy>"); 198 187 199 if ( isStringDefined(orderByDirection))188 if (Utilities.isStringDefined(orderByDirection)) 200 189 soapMessage.append("<orderByDirection>" + orderByDirection + "</orderByDirection>"); 201 190 202 if ( isStringDefined(scope))191 if (Utilities.isStringDefined(scope)) 203 192 soapMessage.append("<scope>" + scope + "</scope>"); 204 193 205 if ( isStringDefined(spatialOperator))194 if (Utilities.isStringDefined(spatialOperator)) 206 195 soapMessage.append("<spatialOperator>" + spatialOperator + "</spatialOperator>"); 207 196 208 if ( isStringDefined(limitNorth))197 if (Utilities.isStringDefined(limitNorth)) 209 198 { 210 199 soapMessage.append("<BoundingBox>"); … … 222 211 223 212 224 if ( isStringDefined(temporalOperator))213 if (Utilities.isStringDefined(temporalOperator)) 225 214 soapMessage.append("<temporalOperator>" + temporalOperator + "</temporalOperator>"); 226 215 227 if ( isStringDefined(dateRangeStart))216 if (Utilities.isStringDefined(dateRangeStart)) 228 217 { 229 218 soapMessage.append("<DateRange>"); … … 262 251 soapMessage.append("</documents>"); 263 252 264 if ( isStringDefined(format))253 if (Utilities.isStringDefined(format)) 265 254 soapMessage.append("<format>" + format + "</format>"); 266 255
Note: See TracChangeset
for help on using the changeset viewer.