Changeset 1872


Ignore:
Timestamp:
15/12/06 09:51:01 (13 years ago)
Author:
mpritcha
Message:

Merged search methods into one, with single request / response type. Added termTypeList.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • TI01-discovery/trunk/ws-Discovery2/src/ndg/services/discovery/DiscoveryServiceSkeleton.java

    r1866 r1872  
    1919         * Performs the doFullTextSearch operation 
    2020         */ 
    21         public  discoveryserviceapi.DoFullTextSearchReturnDocument doFullTextSearch 
    22                           (discoveryserviceapi.DoFullTextSearchDocument request ) 
     21        public  discoveryserviceapi.DoSearchReturnDocument doSearch 
     22                          (discoveryserviceapi.DoSearchDocument request ) 
    2323          
    2424        {  
    25                 discoveryserviceapi.DoFullTextSearchReturnDocument response = discoveryserviceapi.DoFullTextSearchReturnDocument.Factory.newInstance(); 
    26                 discoveryserviceapi.SearchReturnType responseContent = response.addNewDoFullTextSearchReturn(); 
     25                discoveryserviceapi.DoSearchReturnDocument response = discoveryserviceapi.DoSearchReturnDocument.Factory.newInstance(); 
     26                discoveryserviceapi.SearchReturnType responseContent = response.addNewDoSearchReturn(); 
    2727 
    2828                // parse the request message 
    29                 discoveryserviceapi.SearchType requestContent = request.getDoFullTextSearch(); 
    30                 FullTextSearchAgent agent = new FullTextSearchAgent( requestContent.getTerm() ); 
    31                 if ( requestContent.getTerm().length() > 0 ) 
    32                 { 
    33                         agent.setDoTerm( true ); 
    34                 } 
    35  
    36                 if ( requestContent.isSetStart() ) 
    37                 { 
    38                         agent.setStart( requestContent.getStart() ); 
    39                 } 
    40                  
    41                 if ( requestContent.isSetHowMany() ) 
    42                 { 
    43                         agent.setHowMany( requestContent.getHowMany() ); 
    44                 } 
    45  
    46                 if ( requestContent.isSetOrderBy() ) 
    47                 { 
    48                         agent.setOrderBy( requestContent.getOrderBy().toString() ); 
    49                         agent.setDoOrderBy( true ); 
    50                         if ( requestContent.isSetOrderByDirection() ) 
    51                         { 
    52                                 agent.setOrderByDirection( requestContent.getOrderByDirection().toString() ); 
    53                         } 
    54                 } 
    55  
    56                 if ( requestContent.sizeOfScopeArray() > 0) 
    57                 { 
    58                         for (int i=0; i<requestContent.sizeOfScopeArray(); i++) 
    59                         { 
    60                                 agent.addNewScope( requestContent.getScopeArray(i).toString() ); 
    61                         } 
    62                         agent.setDoScope( true ); 
    63                 } 
    64  
    65                 if ( requestContent.isSetBoundingBox() ) 
    66                 { 
    67                         agent.setLimitWest( requestContent.getBoundingBox().getLimitWest() ); 
    68                         agent.setLimitSouth( requestContent.getBoundingBox().getLimitSouth() ); 
    69                         agent.setLimitEast( requestContent.getBoundingBox().getLimitEast() ); 
    70                         agent.setLimitNorth( requestContent.getBoundingBox().getLimitNorth() ); 
    71                         agent.setDoSpatio( true ); 
    72                 } 
    73  
    74                 if ( requestContent.isSetDateRange() ) 
    75                 { 
    76                         agent.setDateRangeStart( requestContent.getDateRange().getDateRangeStart() ); 
    77                         agent.setDateRangeEnd( requestContent.getDateRange().getDateRangeEnd() ); 
    78                         agent.setDoTemporal( true ); 
    79                 } 
    80  
    81                 SearchSummary myResult = null; 
    82                  
    83                 // Execute the search 
    84                 try 
    85                 { 
    86                         myResult = agent.doSearch(); 
    87                 } 
    88                 catch (Exception e) 
    89                 { 
    90                         responseContent.setStatus( false ); 
    91                         responseContent.setStatusMessage( "Unable to retrieve result - reason : " + e.toString() ); 
    92                 } 
    93  
    94                 if (myResult != null) 
    95                 { 
    96                         responseContent.setStatus( myResult.getStatus() ); 
    97                         responseContent.setStatusMessage( myResult.getStatusMessage() ); 
    98                         responseContent.setResultId( myResult.getResultId()     ); 
    99  
    100                         if ( myResult.getStatus() ) // successful search 
    101                         { 
    102                                 responseContent.setHits( myResult.getHits() ); 
    103                         } 
    104                         else //unsuccessful search 
    105                         { 
    106                                 responseContent.setHits( 0 ); 
    107                         } 
    108  
    109                         Vector summaryDocuments = myResult.getDocuments(); 
     29                discoveryserviceapi.SearchType requestContent = request.getDoSearch(); 
     30                SearchAgent agent = null; 
     31 
     32                if ( requestContent.getTermType().equals("fullText") ) 
     33                { 
     34                        agent = new FullTextSearchAgent( requestContent.getTerm() ); 
     35                } 
     36                else if ( requestContent.getTermType().equals("author") ) 
     37                { 
     38                        agent = new AuthorSearchAgent( requestContent.getTerm() ); 
     39                } 
     40                else if ( requestContent.getTermType().equals("parameter") ) 
     41                { 
     42                        agent = new ParameterSearchAgent( requestContent.getTerm() ); 
     43                } 
     44                else 
     45                { 
     46                        throw new UnsupportedOperationException("Invalid termType: please use getListNames to get the valid list term types"); 
     47                } 
     48 
     49                if ( agent != null ) 
     50                { 
     51                        if ( requestContent.getTerm().length() > 0 ) 
     52                        { 
     53                                agent.setDoTerm( true ); 
     54                        } 
     55 
     56                        if ( requestContent.isSetStart() ) 
     57                        { 
     58                                agent.setStart( requestContent.getStart() ); 
     59                        } 
    11060                         
    111                         if ( myResult.getStatus() && summaryDocuments != null ) 
    112                         { 
    113                                 discoveryserviceapi.DocumentsType responseDocuments = responseContent.addNewDocuments(); 
    114  
    115                                 for (Iterator i = summaryDocuments.iterator(); i.hasNext(); ) 
    116                                 { 
    117                                         Hashtable document = (Hashtable)i.next(); 
    118                                         responseDocuments.addDocument( (String)document.get("name") ); 
    119                                         //thisDoc.setPosition( ((Integer)document.get("position")).intValue() ); 
    120                                         //thisDoc.setMatches( ((Integer)document.get("matches")).intValue() ); 
    121                                         //thisDoc.setUri( (String)document.get("name") ); 
     61                        if ( requestContent.isSetHowMany() ) 
     62                        { 
     63                                agent.setHowMany( requestContent.getHowMany() ); 
     64                        } 
     65 
     66                        if ( requestContent.isSetOrderBy() ) 
     67                        { 
     68                                agent.setOrderBy( requestContent.getOrderBy().toString() ); 
     69                                agent.setDoOrderBy( true ); 
     70                                if ( requestContent.isSetOrderByDirection() ) 
     71                                { 
     72                                        agent.setOrderByDirection( requestContent.getOrderByDirection().toString() ); 
     73                                } 
     74                        } 
     75 
     76                        if ( requestContent.sizeOfScopeArray() > 0) 
     77                        { 
     78                                for (int i=0; i<requestContent.sizeOfScopeArray(); i++) 
     79                                { 
     80                                        agent.addNewScope( requestContent.getScopeArray(i).toString() ); 
     81                                } 
     82                                agent.setDoScope( true ); 
     83                        } 
     84 
     85                        if ( requestContent.isSetBoundingBox() ) 
     86                        { 
     87                                agent.setLimitWest( requestContent.getBoundingBox().getLimitWest() ); 
     88                                agent.setLimitSouth( requestContent.getBoundingBox().getLimitSouth() ); 
     89                                agent.setLimitEast( requestContent.getBoundingBox().getLimitEast() ); 
     90                                agent.setLimitNorth( requestContent.getBoundingBox().getLimitNorth() ); 
     91                                agent.setDoSpatio( true ); 
     92                        } 
     93 
     94                        if ( requestContent.isSetDateRange() ) 
     95                        { 
     96                                agent.setDateRangeStart( requestContent.getDateRange().getDateRangeStart() ); 
     97                                agent.setDateRangeEnd( requestContent.getDateRange().getDateRangeEnd() ); 
     98                                agent.setDoTemporal( true ); 
     99                        } 
     100 
     101                        SearchSummary myResult = null; 
    122102                         
    123                                 } 
    124  
    125                                 responseContent.setDocuments( responseDocuments ); 
    126  
    127                         } 
    128                          
    129  
    130                 } 
    131  
    132                 return response; 
    133         } 
    134  
    135         /** 
    136          * Performs the doAuthorSearch operation 
    137          */ 
    138         public  discoveryserviceapi.DoAuthorSearchReturnDocument doAuthorSearch 
    139                           (discoveryserviceapi.DoAuthorSearchDocument request ) 
    140           
    141         {  
    142                 discoveryserviceapi.DoAuthorSearchReturnDocument response = discoveryserviceapi.DoAuthorSearchReturnDocument.Factory.newInstance(); 
    143                 discoveryserviceapi.SearchReturnType responseContent = response.addNewDoAuthorSearchReturn(); 
    144  
    145                 // parse the request message 
    146                 discoveryserviceapi.SearchType requestContent = request.getDoAuthorSearch(); 
    147                 AuthorSearchAgent agent = new AuthorSearchAgent( requestContent.getTerm() ); 
    148                 if ( requestContent.getTerm().length() > 0 ) 
    149                 { 
    150                         agent.setDoTerm( true ); 
    151                 } 
    152  
    153                 if ( requestContent.isSetStart() ) 
    154                 { 
    155                         agent.setStart( requestContent.getStart() ); 
    156                 } 
    157                  
    158                 if ( requestContent.isSetHowMany() ) 
    159                 { 
    160                         agent.setHowMany( requestContent.getHowMany() ); 
    161                 } 
    162  
    163                 if ( requestContent.isSetOrderBy() ) 
    164                 { 
    165                         agent.setOrderBy( requestContent.getOrderBy().toString() ); 
    166                         agent.setDoOrderBy( true ); 
    167                         if ( requestContent.isSetOrderByDirection() ) 
    168                         { 
    169                                 agent.setOrderByDirection( requestContent.getOrderByDirection().toString() ); 
    170                         } 
    171                 } 
    172  
    173                 if ( requestContent.sizeOfScopeArray() > 0) 
    174                 { 
    175                         for (int i=0; i<requestContent.sizeOfScopeArray(); i++) 
    176                         { 
    177                                 agent.addNewScope( requestContent.getScopeArray(i).toString() ); 
    178                         } 
    179                         agent.setDoScope( true ); 
    180                 } 
    181  
    182                 if ( requestContent.isSetBoundingBox() ) 
    183                 { 
    184                         agent.setLimitWest( requestContent.getBoundingBox().getLimitWest() ); 
    185                         agent.setLimitSouth( requestContent.getBoundingBox().getLimitSouth() ); 
    186                         agent.setLimitEast( requestContent.getBoundingBox().getLimitEast() ); 
    187                         agent.setLimitNorth( requestContent.getBoundingBox().getLimitNorth() ); 
    188                         agent.setDoSpatio( true ); 
    189                 } 
    190  
    191                 if ( requestContent.isSetDateRange() ) 
    192                 { 
    193                         agent.setDateRangeStart( requestContent.getDateRange().getDateRangeStart() ); 
    194                         agent.setDateRangeEnd( requestContent.getDateRange().getDateRangeEnd() ); 
    195                         agent.setDoTemporal( true ); 
    196                 } 
    197  
    198                 SearchSummary myResult = null; 
    199                  
    200                 // Execute the search 
    201                 try 
    202                 { 
    203                         myResult = agent.doSearch(); 
    204                 } 
    205                 catch (Exception e) 
    206                 { 
    207                         responseContent.setStatus( false ); 
    208                         responseContent.setStatusMessage( "Unable to retrieve result - reason : " + e.toString() ); 
    209                 } 
    210  
    211                 if (myResult != null) 
    212                 { 
    213                         responseContent.setStatus( myResult.getStatus() ); 
    214                         responseContent.setStatusMessage( myResult.getStatusMessage() ); 
    215                         responseContent.setResultId( myResult.getResultId()     ); 
    216  
    217                         if ( myResult.getStatus() ) // successful search 
    218                         { 
    219                                 responseContent.setHits( myResult.getHits() ); 
    220                         } 
    221                         else //unsuccessful search 
    222                         { 
    223                                 responseContent.setHits( 0 ); 
    224                         } 
    225  
    226                         Vector summaryDocuments = myResult.getDocuments(); 
    227                          
    228                         if ( myResult.getStatus() && summaryDocuments != null ) 
    229                         { 
    230                                 discoveryserviceapi.DocumentsType responseDocuments = responseContent.addNewDocuments(); 
    231  
    232                                 for (Iterator i = summaryDocuments.iterator(); i.hasNext(); ) 
    233                                 { 
    234                                         Hashtable document = (Hashtable)i.next(); 
    235                                         responseDocuments.addDocument( (String)document.get("name") ); 
    236                                         //thisDoc.setPosition( ((Integer)document.get("position")).intValue() ); 
    237                                         //thisDoc.setMatches( ((Integer)document.get("matches")).intValue() ); 
    238                                         //thisDoc.setUri( (String)document.get("name") ); 
    239                          
    240                                 } 
    241  
    242                                 responseContent.setDocuments( responseDocuments ); 
    243  
    244                         } 
    245                          
    246  
    247                 } 
    248  
    249                 return response; 
    250         } 
    251  
    252         /** 
    253          * Performs the doParameterSearch operation 
    254          */ 
    255         public  discoveryserviceapi.DoParameterSearchReturnDocument doParameterSearch 
    256                           (discoveryserviceapi.DoParameterSearchDocument request ) 
    257           
    258         {  
    259                 discoveryserviceapi.DoParameterSearchReturnDocument response = discoveryserviceapi.DoParameterSearchReturnDocument.Factory.newInstance(); 
    260                 discoveryserviceapi.SearchReturnType responseContent = response.addNewDoParameterSearchReturn(); 
    261  
    262                 // parse the request message 
    263                 discoveryserviceapi.SearchType requestContent = request.getDoParameterSearch(); 
    264                 ParameterSearchAgent agent = new ParameterSearchAgent( requestContent.getTerm() ); 
    265                 if ( requestContent.getTerm().length() > 0 ) 
    266                 { 
    267                         agent.setDoTerm( true ); 
    268                 } 
    269  
    270                 if ( requestContent.isSetStart() ) 
    271                 { 
    272                         agent.setStart( requestContent.getStart() ); 
    273                 } 
    274                  
    275                 if ( requestContent.isSetHowMany() ) 
    276                 { 
    277                         agent.setHowMany( requestContent.getHowMany() ); 
    278                 } 
    279  
    280                 if ( requestContent.isSetOrderBy() ) 
    281                 { 
    282                         agent.setOrderBy( requestContent.getOrderBy().toString() ); 
    283                         agent.setDoOrderBy( true ); 
    284                         if ( requestContent.isSetOrderByDirection() ) 
    285                         { 
    286                                 agent.setOrderByDirection( requestContent.getOrderByDirection().toString() ); 
    287                         } 
    288                 } 
    289  
    290                 if ( requestContent.sizeOfScopeArray() > 0) 
    291                 { 
    292                         for (int i=0; i<requestContent.sizeOfScopeArray(); i++) 
    293                         { 
    294                                 agent.addNewScope( requestContent.getScopeArray(i).toString() ); 
    295                         } 
    296                         agent.setDoScope( true ); 
    297                 } 
    298  
    299                 if ( requestContent.isSetBoundingBox() ) 
    300                 { 
    301                         agent.setLimitWest( requestContent.getBoundingBox().getLimitWest() ); 
    302                         agent.setLimitSouth( requestContent.getBoundingBox().getLimitSouth() ); 
    303                         agent.setLimitEast( requestContent.getBoundingBox().getLimitEast() ); 
    304                         agent.setLimitNorth( requestContent.getBoundingBox().getLimitNorth() ); 
    305                         agent.setDoSpatio( true ); 
    306                 } 
    307  
    308                 if ( requestContent.isSetDateRange() ) 
    309                 { 
    310                         agent.setDateRangeStart( requestContent.getDateRange().getDateRangeStart() ); 
    311                         agent.setDateRangeEnd( requestContent.getDateRange().getDateRangeEnd() ); 
    312                         agent.setDoTemporal( true ); 
    313                 } 
    314  
    315                 SearchSummary myResult = null; 
    316                  
    317                 // Execute the search 
    318                 try 
    319                 { 
    320                         myResult = agent.doSearch(); 
    321                 } 
    322                 catch (Exception e) 
    323                 { 
    324                         responseContent.setStatus( false ); 
    325                         responseContent.setStatusMessage( "Unable to retrieve result - reason : " + e.toString() ); 
    326                 } 
    327  
    328                 if (myResult != null) 
    329                 { 
    330                         responseContent.setStatus( myResult.getStatus() ); 
    331                         responseContent.setStatusMessage( myResult.getStatusMessage() ); 
    332                         responseContent.setResultId( myResult.getResultId()     ); 
    333  
    334                         if ( myResult.getStatus() ) // successful search 
    335                         { 
    336                                 responseContent.setHits( myResult.getHits() ); 
    337                         } 
    338                         else //unsuccessful search 
    339                         { 
    340                                 responseContent.setHits( 0 ); 
    341                         } 
    342  
    343                         Vector summaryDocuments = myResult.getDocuments(); 
    344                          
    345                         if ( myResult.getStatus() && summaryDocuments != null ) 
    346                         { 
    347                                 discoveryserviceapi.DocumentsType responseDocuments = responseContent.addNewDocuments(); 
    348  
    349                                 for (Iterator i = summaryDocuments.iterator(); i.hasNext(); ) 
    350                                 { 
    351                                         Hashtable document = (Hashtable)i.next(); 
    352                                         responseDocuments.addDocument( (String)document.get("name") ); 
    353                                         //thisDoc.setPosition( ((Integer)document.get("position")).intValue() ); 
    354                                         //thisDoc.setMatches( ((Integer)document.get("matches")).intValue() ); 
    355                                         //thisDoc.setUri( (String)document.get("name") ); 
    356                          
    357                                 } 
    358  
    359                                 responseContent.setDocuments( responseDocuments ); 
    360  
    361                         } 
    362                          
    363  
     103                        // Execute the search 
     104                        try 
     105                        { 
     106                                myResult = agent.doSearch(); 
     107                        } 
     108                        catch (Exception e) 
     109                        { 
     110                                responseContent.setStatus( false ); 
     111                                responseContent.setStatusMessage( "Unable to retrieve result - reason : " + e.toString() ); 
     112                        } 
     113 
     114                        if (myResult != null) 
     115                        { 
     116                                responseContent.setStatus( myResult.getStatus() ); 
     117                                responseContent.setStatusMessage( myResult.getStatusMessage() ); 
     118                                responseContent.setResultId( myResult.getResultId()     ); 
     119 
     120                                if ( myResult.getStatus() ) // successful search 
     121                                { 
     122                                        responseContent.setHits( myResult.getHits() ); 
     123                                } 
     124                                else //unsuccessful search 
     125                                { 
     126                                        responseContent.setHits( 0 ); 
     127                                } 
     128 
     129                                Vector summaryDocuments = myResult.getDocuments(); 
     130                                 
     131                                if ( myResult.getStatus() && summaryDocuments != null ) 
     132                                { 
     133                                        discoveryserviceapi.DocumentsType responseDocuments = responseContent.addNewDocuments(); 
     134 
     135                                        for (Iterator i = summaryDocuments.iterator(); i.hasNext(); ) 
     136                                        { 
     137                                                Hashtable document = (Hashtable)i.next(); 
     138                                                responseDocuments.addDocument( (String)document.get("name") ); 
     139                                                //thisDoc.setPosition( ((Integer)document.get("position")).intValue() ); 
     140                                                //thisDoc.setMatches( ((Integer)document.get("matches")).intValue() ); 
     141                                                //thisDoc.setUri( (String)document.get("name") ); 
     142                                 
     143                                        } 
     144 
     145                                        responseContent.setDocuments( responseDocuments ); 
     146 
     147                                } 
     148                                 
     149 
     150                        } 
    364151                } 
    365152 
     
    436223                listNames.addListName("orderByFieldList"); 
    437224                listNames.addListName("scopeList"); 
     225                listNames.addListName("termTypeList"); 
    438226 
    439227                return response; 
     
    476264                        list.addListMember("MDIP"); 
    477265                } 
     266                else if ( requestContent.getListName().equals("termTypeList") ) 
     267                { 
     268                        list.setName( listName ); 
     269                        list.addListMember("fullText"); 
     270                        list.addListMember("author"); 
     271                        list.addListMember("parameter"); 
     272                } 
    478273                else  
    479274                { 
Note: See TracChangeset for help on using the changeset viewer.