EventDetailQuery.java

  1. package gov.usgs.earthquake.indexer;

  2. import java.util.Iterator;
  3. import java.util.List;

  4. /**
  5.  * Search for one event.
  6.  */
  7. public class EventDetailQuery extends SearchQuery {

  8.     private List<Event> result;

  9.     /**
  10.      * Constructor. Takes in a single ProductIndexQuery
  11.      * @param query ProductIndexQuery
  12.      */
  13.     public EventDetailQuery(final ProductIndexQuery query) {
  14.         super(SearchMethod.EVENT_DETAIL, query);
  15.     }

  16.     @Override
  17.     public List<Event> getResult() {
  18.         return result;
  19.     }

  20.     /** @param event list of events to set as result */
  21.     public void setResult(final List<Event> event) {
  22.         this.result = event;
  23.     }

  24.     @Override
  25.     public int compareTo(SearchQuery that) {
  26.         int r;

  27.         if ((r = super.compareTo(that)) != 0) {
  28.             return r;
  29.         }

  30.         if (this.result != null) {
  31.             List<Event> thatResult = ((EventDetailQuery) that).result;
  32.             if ((r = (thatResult.size() - this.result.size())) != 0) {
  33.                 return r;
  34.             }

  35.             Iterator<Event> thisIter = this.result.iterator();
  36.             Iterator<Event> thatIter = thatResult.iterator();
  37.             while (thisIter.hasNext() && thatIter.hasNext()) {
  38.                 // just compare product ids for now
  39.                 r = thisIter.next().compareTo(thatIter.next());
  40.                 if (r != 0) {
  41.                     return r;
  42.                 }
  43.             }
  44.         }

  45.         return 0;
  46.     }
  47. }