Changeset 6632


Ignore:
Timestamp:
24/02/10 15:27:43 (9 years ago)
Author:
mnagni
Message:

Fixed a potential NullPointer? in retrieving RetrieveCriteriaType?
Fiexd a bug in GetList?

Location:
TI01-discovery-API/trunk/MEDINDiscoveryService/src/main/java/ndg/services/discovery
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • TI01-discovery-API/trunk/MEDINDiscoveryService/src/main/java/ndg/services/discovery/DiscoveryServiceMEDINSkeleton.java

    r6622 r6632  
    2727import ndg.services.discovery.medin.OrderingMetricType; 
    2828import ndg.services.discovery.medin.PresentReturnType; 
    29 import ndg.services.discovery.medin.PresentType; 
    3029import ndg.services.discovery.medin.RetrieveCriteriaType; 
    3130import ndg.services.discovery.medin.ReturnBriefType; 
     
    174173        public DoSearchReturnDocument doSearch(DoSearchDocument doSearch) { 
    175174 
    176                 // generate a consistent ID for use within this session 
    177                 // final String thisSessionID = Utilities.generateSessionID(); 
    178  
    179175                DoSearchReturnDocument response = DoSearchReturnDocument.Factory.newInstance(); 
    180176                SearchReturnType responseContent = response.addNewDoSearchReturn(); 
     
    186182                        List<OriginalDocument> result = agent.doSearch(); 
    187183                        SearchType st = doSearch.getDoSearch(); 
     184                         
    188185                        RetrieveCriteriaType rct = st.getRetrieveCriteria(); 
    189                         DiscoveryDictionary.RecordDetail type = DiscoveryDictionary.getRecordDetails(rct.getRecordDetail()); 
    190                         processResult(result, responseContent.addNewDocuments(), type, rct.getOrderByArray()); 
     186                        DiscoveryDictionary.RecordDetail type = DiscoveryDictionary.getRecordDetails(null); 
     187                        OrderByType[] orderBy = null; 
     188                        if (rct != null) { 
     189                                type = DiscoveryDictionary.getRecordDetails(rct.getRecordDetail()); 
     190                                orderBy = rct.getOrderByArray(); 
     191                        }                                                        
     192                         
     193                        processResult(result, responseContent.addNewDocuments(), type, orderBy); 
    191194                        status = (result != null && result.size() > 0 ? true : false); 
    192195                } catch (NdgSQLException e) { 
     
    200203                        responseContent.setHits(agent.getHits()); 
    201204                } 
    202                 return response; 
    203  
    204                 /* 
    205                  * Integer numRes = myResult.getHits(); 
    206                  *  
    207                  *  
    208                  * //at this stage record all parameters in request passed from ws into 
    209                  * searchlogging DB //get sql insert statement based on input args 
    210                  * String sqlInsertStmnt = 
    211                  * recordSearchParamsToLog(doSearch.getDoSearchSummary(), numRes, 
    212                  * thisSessionID); 
    213                  *  
    214                  * logger.info("Tracking DB insert stmnt: " + sqlInsertStmnt); 
    215                  *  
    216                  * PresentType 
    217                  * //execute statement to search logging database try { if 
    218                  * (DBProperties.updateSearchParamLoggingDb(sqlInsertStmnt)) { 
    219                  * logger.info 
    220                  * ("Have successfully updated search parameter logging database!"); } 
    221                  * else { logger.warn("Could not update search logging database!"); } } 
    222                  * catch (DiscoveryDBException E) { 
    223                  * logger.warn("Could not connect to and update search logging database!" 
    224                  * ); } logger.info("Search completed"); 
    225                  *  
    226                  * if (myResult != null) { logger.info("Checking results..."); 
    227                  * responseContent.setStatus(myResult.getStatus()); 
    228                  * responseContent.setStatusMessage(myResult.getStatusMessage()); 
    229                  * responseContent.setResultId(myResult.getResultId()); if 
    230                  * (myResult.getStatus()) { responseContent.setHits(myResult.getHits()); 
    231                  * Vector summaryDocuments = myResult.getDocumeSummarynts(); 
    232                  *  
    233                  * if (summaryDocuments != null) { 
    234                  * logger.info("Search returned some matching documents"); Documents 
    235                  * responseDocuments = responseContent.addNewDocuments(); for (Iterator 
    236                  * i = summaryDocuments.iterator(); i.hasNext();) { Hashtable document = 
    237                  * (Hashtable) i.next(); //responseDocuments.addDocument((String) 
    238                  * document.get("name")); responseDocuments.addDocumentId(""); } 
    239                  *  
    240                  * logger.info("Adding found documents to response"); 
    241                  * responseContent.setDocuments(responseDocuments); } else { 
    242                  * logger.info( 
    243                  * "null data set returned from search - this may indicate a problem"); 
    244                  * } } else // unsuccessful search {logger.warn( 
    245                  * "Search status was unsuccessful - this may indicate a problem"); 
    246                  * responseContent.setHits(0); } } else {logger.warn( 
    247                  * "null data set returned from search - this may indicate a problem"); 
    248                  * } 
    249                  *  
    250                  * logger.warn("doSearch() completed successfully"); 
    251                  *  
    252                  * return response; 
    253                  */ 
     205                 
     206                return response;         
    254207        } 
    255208 
     
    305258                GetListType requestContent = request.getGetList(); 
    306259                 
    307                 String listName = requestContent.getListName().trim(); 
    308                 list.setName(listName); 
    309  
    310                 if (listName.equals("TermTargetList")) { 
     260                String name = requestContent.getListName().trim(); 
     261                list.setName(name); 
     262 
     263                DiscoveryDictionary.Names listName = DiscoveryDictionary.getNames(name); 
     264                 
     265                if (listName == null) 
     266                        return response; 
     267                 
     268                if (listName.equals(DiscoveryDictionary.Names.TermTarget)) { 
    311269                        for (DiscoveryDictionary.TermTarget item : DiscoveryDictionary.TermTarget.values()) { 
    312270                                list.addListMember(item.fieldLabel()); 
    313271                        } 
    314                 } else if (listName.equals("PresentFormatList")) { 
     272                } else if (listName.equals(DiscoveryDictionary.Names.PresentFormat)) { 
    315273                        list.addListMember(DC_PRESENTFORMAT); 
    316274                        list.addListMember(DIF_v9_4_PRESENTFORMAT); 
    317275                        list.addListMember(MEDIN_v2_3_1_PRESENTFORMAT); 
    318276                        list.addListMember(ISO19115_PRESENTFORMAT); 
    319                 } else if (listName.equals("OrderByFieldList")) { 
     277                } else if (listName.equals(DiscoveryDictionary.Names.OrderByField)) { 
    320278                        for (DiscoveryDictionary.OrderByField item : DiscoveryDictionary.OrderByField.values()) { 
    321279                                list.addListMember(item.fieldLabel()); 
     
    335293                         * list.addListMember(MEDINTERMTARGET1_ORDERBYFIELD); 
    336294                         */ 
    337                 } else if (listName.equals("ScopeList")) { 
     295                } else if (listName.equals(DiscoveryDictionary.Names.Scope)) { 
    338296                        list.addListMember(MEDIN_SCOPE); 
    339297                        list.addListMember(NERC_DDC_SCOPE); 
    340298                        list.addListMember(NERC_SCOPE); 
    341299                        list.addListMember(DPPP_SCOPE); 
    342                 } else if (listName.equals("SpatialOperatorList")) { 
     300                } else if (listName.equals(DiscoveryDictionary.Names.SpatialOperator)) { 
    343301                        list.addListMember(OVERLAPS_SPATIALOPERATOR); 
    344302                        list.addListMember(DOESNOTOVERLAP_SPATIALOPERATOR); 
    345303                        list.addListMember(WITHIN_SPATIALOPERATOR); 
    346                 } else if (listName.equals("SpatialReferenceSystemList")) { 
     304                } else if (listName.equals(DiscoveryDictionary.Names.SpatialReferenceSystem)) { 
    347305                        list.addListMember(EPSG4326_SPATIALREFERENCESYSTEM); 
    348                 } else if (listName.equals("DateRangeTargetList")) { 
     306                } else if (listName.equals(DiscoveryDictionary.Names.DateRangeTarget)) { 
    349307                        for (DiscoveryDictionary.DateRangeTarget item : DiscoveryDictionary.DateRangeTarget.values()) { 
    350308                                list.addListMember(item.fieldLabel()); 
    351309                        } 
    352                 } else if (listName.equals("TemporalOperatorList")) { 
     310                } else if (listName.equals(DiscoveryDictionary.Names.TemporalOperator)) { 
    353311                        for (DiscoveryDictionary.TemporalOperator item : DiscoveryDictionary.TemporalOperator.values()) { 
    354312                                list.addListMember(item.fieldLabel()); 
    355313                        } 
    356                 } else if (listName.equals("MetadataFormatList")) { 
     314                } else if (listName.equals(DiscoveryDictionary.Names.MetadataFormat)) { 
    357315                        list.addListMember(DC_METADATAFORMAT); 
    358316                        list.addListMember(DIF_v9_4_METADATAFORMAT); 
    359317                        list.addListMember(MEDIN_V2_3_1_METADATAFORMAT); 
    360318                        list.addListMember(ISO19115_METADATAFORMAT); 
    361                 } else if (listName.equals("RecordDetailList")) { 
     319                } else if (listName.equals(DiscoveryDictionary.Names.RecordDetail)) { 
    362320                        for (DiscoveryDictionary.RecordDetail item : DiscoveryDictionary.RecordDetail.values()) { 
    363321                                list.addListMember(item.fieldLabel()); 
  • TI01-discovery-API/trunk/MEDINDiscoveryService/src/main/java/ndg/services/discovery/medin/DiscoveryDictionary.java

    r6622 r6632  
    188188         
    189189        /** 
     190         * Returns the {@link Names} proper element 
     191         * for the given parameter. In the paramenter is <code>null</code> or 
     192         * not found the default value {@link TermTarget#FullText}} 
     193         * is returned 
     194         * @param label the name of the required termType. 
     195         * @return the proper {@link TermTarget} or the default value  
     196         * */ 
     197        public static Names getNames(String label) { 
     198                Names type = null; 
     199                if (label != null) { 
     200                        for (Names item : Names.values()) { 
     201                                if(label.trim().equals(item.fieldLabel())) {file:///home/users/mnagni/workspace/MARINDiscoveryService/target/MedinDiscoveryService-0.0.1-SNAPSHOT.aar 
     202                                        type = item; 
     203                                        break; 
     204                                } 
     205                        }        
     206                } 
     207                return type; 
     208        }        
     209         
     210        /** 
    190211         * Returns the {@link TermTarget} proper element 
    191212         * for the given parameter. In the paramenter is <code>null</code> or 
Note: See TracChangeset for help on using the changeset viewer.