Ignore:
Timestamp:
29/05/08 17:36:35 (11 years ago)
Author:
cbyrom
Message:

Create new Utitilities class to store generic methods for reuse across
the different classes + implement usage in various server code.

Add more logging + fix one or two issues.

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  
    3232        public static final String NO_OVERLAP_OPERATOR_TYPE = "doesNotOverlap"; 
    3333         
     34        public static final String DELIMITER = "-------------------------------------"; 
    3435        /** 
    3536         * Performs the doFullTextSearch operation  
     
    4142          
    4243        {  
     44                logger.info(DELIMITER); 
    4345                logger.info("doSearch() invoked"); 
     46                logger.info(DELIMITER); 
    4447                discoveryserviceapi.DoSearchReturnDocument response =  
    4548                        discoveryserviceapi.DoSearchReturnDocument.Factory.newInstance(); 
     
    126129        private SearchAgent setupSearchAgent(DoSearchDocument request) throws DiscoveryWSException  
    127130        { 
     131                logger.info("Setting up search agent"); 
    128132                discoveryserviceapi.SearchType requestContent = request.getDoSearch(); 
    129133                SearchAgent agent = new SearchAgent(); 
    130134                 
    131135                // 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())) 
    137149                        { 
    138150                                logger.info("Term set - will do term search"); 
    139151                                agent.setTermType(requestContent.getTermType()); 
    140                                 agent.setTerm(requestContent.getTerm()); 
    141152                        } 
    142153                        else 
     
    198209                        agent.setDateRangeEnd( requestContent.getDateRange().getDateRangeEnd() ); 
    199210                } 
     211                logger.info("Search agent ready for searching"); 
    200212                return agent; 
    201213        } 
  • TI01-discovery/branches/ws-Discovery2-upgrade/src/ndg/services/discovery/SearchAgent.java

    r3957 r3965  
    2929    private String termType = null; 
    3030     
    31         static final BigInteger startDefault = new BigInteger("1"); // default value for first record to display in result set 
    32         static final BigInteger howManyDefault = new BigInteger("30"); // default values for how many results to display in result set 
    33          
    3431        // Initialise input parameters, setting values to internal defaults 
    3532//      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 
    3835        private String term = ""; 
    3936        private String orderByField = null;     // representation used in WSDL e.g. "date", "dataCentre" 
     
    365362        private SearchSummary processResults(String[][] results)  
    366363        { 
     364                logger.info("Extracting results"); 
    367365                SearchSummary result = new SearchSummary(); 
    368366                result.setHits(results.length); // NB ensure this is 0 if not data returned 
     
    375373                                Hashtable<String, String> thisDoc = new Hashtable<String, String>(); 
    376374                                thisDoc.put("name", results[i][0]); 
     375                                 
    377376                                // TODO: these next two are not used anywhere - remove or use? 
    378377                                thisDoc.put("matches", String.valueOf(1)); 
     
    382381                        result.setStatus( true ); 
    383382                        result.setStatusMessage( "Success" ); 
    384                         result.setDocuments( documents );        
     383                        result.setDocuments( documents ); 
     384                        logger.info("Results added to search summary"); 
    385385                } 
    386386                else 
    387387                { 
    388388                        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); 
    390392                } 
    391393                 
     
    426428                StringBuffer whereSqlCmd = new StringBuffer(); 
    427429                 
    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"); 
    431434                         
    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)) 
    433438                        { 
    434439                                appendWhereClause(whereSqlCmd, " to_tsquery('" + this.term + "') @@ ts_vector "); 
     
    506511                } 
    507512                 
     513                // add the WHERE statement, if required 
     514                if (whereSqlCmd.length() > 0) 
     515                        whereSqlCmd.insert(0, WHERE_STATEMENT); 
     516                 
    508517                // lastly, add the size limit and offset of the returned data set 
    509518                logger.info("Adding size limit and offset of results set"); 
     
    511520                whereSqlCmd.append(LIMIT_STATEMENT + this.getHowMany()); 
    512521                 
    513                 String fullCmd = fromSqlCmd.toString() + WHERE_STATEMENT + whereSqlCmd.toString() + ";"; 
     522                String fullCmd = fromSqlCmd.toString() + whereSqlCmd.toString() + ";"; 
    514523                logger.info("SQL query generated"); 
    515524                logger.fine("Value: " + fullCmd); 
  • TI01-discovery/branches/ws-Discovery2-upgrade/src/ndg/testclient/discovery/DiscoveryServiceClient.java

    r3959 r3965  
    44import java.util.Date; 
    55import ndg.clients.discovery.*; 
     6import ndg.services.discovery.Utilities; 
    67 
    78/** 
     
    132133         
    133134        /** 
    134          * Test if a string has a value set 
    135          * @param str - string to test 
    136          * @return true if str is non null and not empty, false otherwise 
    137          */ 
    138         private boolean isStringDefined(String str) 
    139         { 
    140                 if (str != null && str.length() > 0) 
    141                         return true; 
    142                 return false; 
    143         } 
    144          
    145         /** 
    146135         * Run a search - return results as a String 
    147136         *  
     
    175164                StringBuilder soapMessage = new StringBuilder("<doSearch xmlns=\"urn:DiscoveryServiceAPI\">"); 
    176165 
    177                 if (isStringDefined(term)) 
     166                if (Utilities.isStringDefined(term)) 
    178167                        soapMessage.append("<term>" + term + "</term>"); 
    179                 if (isStringDefined(termType)) 
     168                if (Utilities.isStringDefined(termType)) 
    180169                        soapMessage.append("<termType>" + termType + "</termType>"); 
    181170 
    182                 if (isStringDefined(start)) 
     171                if (Utilities.isStringDefined(start)) 
    183172                { 
    184173                        // NB, check the input val is a valid int 
     
    187176                } 
    188177 
    189                 if (isStringDefined(howMany)) 
     178                if (Utilities.isStringDefined(howMany)) 
    190179                { 
    191180                        // NB, check the input val is a valid int 
     
    194183                } 
    195184 
    196                 if (isStringDefined(orderBy)) 
     185                if (Utilities.isStringDefined(orderBy)) 
    197186                        soapMessage.append("<orderBy>" + orderBy + "</orderBy>"); 
    198187 
    199                 if (isStringDefined(orderByDirection)) 
     188                if (Utilities.isStringDefined(orderByDirection)) 
    200189                        soapMessage.append("<orderByDirection>" + orderByDirection + "</orderByDirection>"); 
    201190 
    202                 if (isStringDefined(scope)) 
     191                if (Utilities.isStringDefined(scope)) 
    203192                        soapMessage.append("<scope>" + scope + "</scope>"); 
    204193 
    205                 if (isStringDefined(spatialOperator)) 
     194                if (Utilities.isStringDefined(spatialOperator)) 
    206195                        soapMessage.append("<spatialOperator>" + spatialOperator + "</spatialOperator>"); 
    207196 
    208                 if (isStringDefined(limitNorth)) 
     197                if (Utilities.isStringDefined(limitNorth)) 
    209198                { 
    210199                        soapMessage.append("<BoundingBox>"); 
     
    222211                 
    223212 
    224                 if (isStringDefined(temporalOperator)) 
     213                if (Utilities.isStringDefined(temporalOperator)) 
    225214                        soapMessage.append("<temporalOperator>" + temporalOperator + "</temporalOperator>"); 
    226215 
    227                 if (isStringDefined(dateRangeStart)) 
     216                if (Utilities.isStringDefined(dateRangeStart)) 
    228217                { 
    229218                        soapMessage.append("<DateRange>"); 
     
    262251                soapMessage.append("</documents>"); 
    263252                 
    264                 if (isStringDefined(format)) 
     253                if (Utilities.isStringDefined(format)) 
    265254                        soapMessage.append("<format>" + format + "</format>"); 
    266255                 
Note: See TracChangeset for help on using the changeset viewer.