SearchRequest.java

  1. package gov.usgs.earthquake.indexer;

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

  5. /**
  6.  * A search request, which is one or more {@link SearchQuery}s.
  7.  */
  8. public class SearchRequest implements Comparable<SearchRequest> {

  9.     private final List<SearchQuery> queries = new LinkedList<SearchQuery>();

  10.     /** Construct a new SearchRequest. */
  11.     public SearchRequest() {
  12.     }

  13.     /**
  14.      * Add another query to this request.
  15.      *
  16.      * @param query
  17.      *            the query to add
  18.      */
  19.     public void addQuery(final SearchQuery query) {
  20.         this.queries.add(query);
  21.     }

  22.     /**
  23.      * @return The list of queries that are part of this request.
  24.      */
  25.     public List<SearchQuery> getQueries() {
  26.         return this.queries;
  27.     }

  28.     @Override
  29.     public boolean equals(Object that) {
  30.         return (this.compareTo((SearchRequest) that)) == 0;
  31.     }

  32.     @Override
  33.     public int compareTo(SearchRequest that) {
  34.         int r;

  35.         // test list size first
  36.         if ((r = (this.queries.size() - that.queries.size())) != 0) {
  37.             return r;
  38.         }

  39.         Iterator<SearchQuery> thisIter = this.queries.iterator();
  40.         Iterator<SearchQuery> thatIter = that.queries.iterator();

  41.         while (thisIter.hasNext() && thatIter.hasNext()) {
  42.             r = thisIter.next().compareTo(thatIter.next());
  43.             if (r != 0) {
  44.                 return r;
  45.             }
  46.         }

  47.         return 0;
  48.     }

  49. }