Changeset 1035

Show
Ignore:
Timestamp:
06/22/09 12:38:45 (4 years ago)
Author:
buleth
Message:
 
Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/mpdb-server/src/edu/rpi/metpetdb/server/search/SearchIPhone.java

    r1019 r1035  
    2020import edu.rpi.metpetdb.client.model.MetamorphicGrade; 
    2121import edu.rpi.metpetdb.client.model.Sample; 
     22import edu.rpi.metpetdb.client.model.SampleComment; 
    2223import edu.rpi.metpetdb.client.model.SampleMineral; 
    2324import edu.rpi.metpetdb.client.model.SearchSample; 
     
    4546                 
    4647                List<Long> sampleIds = new ArrayList<Long>(); 
     48                Session session = DataStore.open(); 
     49                try{ 
    4750                 
    4851                // If there is a GET string for latitude and longitude then it is a search 
     
    5154                        double lng = Double.parseDouble(request.getParameterValues(LONG_PARAMETER)[0]); 
    5255                        System.out.println("iPhone query: lat = " + lat + "long = " + lng); 
    53                         outputSearchXML(search(lat,lng),response); 
     56                        outputSearchXML(search(lat,lng, session),response); 
    5457                } else if (request.getParameter(SEARCH_REGIONS) != null){ 
    5558                        Set<String> regions = new HashSet<String>(); 
     
    5962                                } 
    6063                        } 
    61                         outputSearchXML(search(regions),response); 
     64                        outputSearchXML(search(regions, session),response); 
    6265                } else if (request.getParameter(SAMPLE_ID) != null){ 
    6366                        for (String id : request.getParameterValues(SAMPLE_ID)) 
     
    7477                } 
    7578                return; 
     79                } 
     80                catch(Exception e){ 
     81                        throw new IllegalStateException(e.getMessage()); 
     82                } finally { 
     83                        session.close(); 
     84                } 
    7685        } 
    7786                 
     
    8392                } catch(final Exception ioe){ 
    8493                        throw new IllegalStateException(ioe.getMessage()); 
    85                 } 
     94                }  
    8695        } 
    8796         
     
    130139                                x.toXML(sample.getLocation(),response.getWriter()); 
    131140                                response.getWriter().write(createXMLElement("owner",x.toXML(sample.getOwner().getName()))); 
     141                                response.getWriter().write("<comments>"); 
     142                                 
     143                                for (SampleComment sc : sample.getComments()) 
     144                                        x.toXML(sc.getText() , response.getWriter()); 
     145                                response.getWriter().write("</comments>"); 
    132146                                response.getWriter().write("</sample>"); 
    133147                        } 
     
    138152        } 
    139153         
    140         private Results<Sample> search(final Collection<String> regions){ 
    141                 Session session = DataStore.open(); 
     154        private Results<Sample> search(final Collection<String> regions, Session session){ 
    142155                try{ 
    143156                        SearchSample s = new SearchSample(); 
     
    145158                                s.addRegion(r); 
    146159                        }        
    147                         return search(s); 
    148                 } 
    149                 catch (Exception e){ 
    150                         throw new IllegalStateException(e.getMessage()); 
    151                 } finally{ 
    152                         session.close(); 
    153                 } 
    154         } 
    155          
    156         private Results<Sample> search(final SearchSample s){ 
    157                 Session session = DataStore.open(); 
    158                 try{ 
    159                         return SearchDb.sampleSearch(null, s, null, session); 
     160                        return search(s, session); 
    160161                } 
    161162                catch(Exception e){ 
    162163                        throw new IllegalStateException(e.getMessage()); 
    163                 } finally { 
    164                         session.close(); 
    165                 } 
    166         } 
    167  
    168         private Results<Sample> search(final Double lat, final Double lng){              
     164                } 
     165                         
     166                 
     167        } 
     168         
     169        private Results<Sample> search(final SearchSample s, Session session){ 
     170                try{ 
     171                        return SearchDb.sampleSearch(null, s, null, session); 
     172                } 
     173                catch(Exception e){ 
     174                        throw new IllegalStateException(e.getMessage()); 
     175                } 
     176        } 
     177 
     178        private Results<Sample> search(final Double lat, final Double lng, Session session){             
    169179                try{ 
    170180                        SearchSample s = new SearchSample(); 
     
    198208                        boundingBox.dimension = 2; 
    199209                        s.setBoundingBox(boundingBox); 
    200                         return search(s); 
     210                        return search(s, session); 
    201211 
    202212                } catch (final Exception ioe){