extensions/net.sf.basedb.varsearch/trunk/src/net/sf/basedb/varsearch/query/QueryResult.java

Code
Comments
Other
Rev Date Author Line
6242 21 May 21 nicklas 1 package net.sf.basedb.varsearch.query;
6242 21 May 21 nicklas 2
6242 21 May 21 nicklas 3 import java.util.HashSet;
6242 21 May 21 nicklas 4 import java.util.Set;
6242 21 May 21 nicklas 5
6242 21 May 21 nicklas 6 /**
6242 21 May 21 nicklas 7   Holds results and other information from a query.
6242 21 May 21 nicklas 8 */
6242 21 May 21 nicklas 9 public class QueryResult 
6242 21 May 21 nicklas 10 {
6242 21 May 21 nicklas 11
6242 21 May 21 nicklas 12   private final int timeoutInSeconds;
6242 21 May 21 nicklas 13   private final Set<Integer> idList;
6242 21 May 21 nicklas 14   private int totalDocuments;
6242 21 May 21 nicklas 15   private int documentsAfterTimeout;
6242 21 May 21 nicklas 16
6242 21 May 21 nicklas 17   QueryResult(int timeoutInSeconds) 
6242 21 May 21 nicklas 18   {
6242 21 May 21 nicklas 19     this.timeoutInSeconds = timeoutInSeconds;
6242 21 May 21 nicklas 20     this.idList = new HashSet<>();
6242 21 May 21 nicklas 21   }
6242 21 May 21 nicklas 22   
6548 24 Jan 22 nicklas 23   QueryResult(QueryResult merge)
6548 24 Jan 22 nicklas 24   {
6548 24 Jan 22 nicklas 25     this(merge.getTimeoutInSeconds());
6548 24 Jan 22 nicklas 26     mergeResults(merge);
6548 24 Jan 22 nicklas 27   }
6548 24 Jan 22 nicklas 28   
6548 24 Jan 22 nicklas 29   void mergeResults(QueryResult r)
6548 24 Jan 22 nicklas 30   {
6548 24 Jan 22 nicklas 31     this.idList.addAll(r.idList);
6548 24 Jan 22 nicklas 32     this.totalDocuments += r.totalDocuments;
6548 24 Jan 22 nicklas 33     this.documentsAfterTimeout += r.documentsAfterTimeout;
6548 24 Jan 22 nicklas 34   }
6548 24 Jan 22 nicklas 35   
6242 21 May 21 nicklas 36   void mergeResults(RawBioAssayIdCollector collector)
6242 21 May 21 nicklas 37   {
6242 21 May 21 nicklas 38     idList.addAll(collector.getRbaIds());
6242 21 May 21 nicklas 39     totalDocuments += collector.getNumTotalCollect();
6242 21 May 21 nicklas 40     documentsAfterTimeout += collector.getNumCollectAfterTimeout();
6242 21 May 21 nicklas 41   }
6242 21 May 21 nicklas 42   
6242 21 May 21 nicklas 43   /**
6242 21 May 21 nicklas 44     Get the timeout in seconds that a query was allowed to execute.
6242 21 May 21 nicklas 45   */
6242 21 May 21 nicklas 46   public int getTimeoutInSeconds()
6242 21 May 21 nicklas 47   {
6242 21 May 21 nicklas 48     return timeoutInSeconds;
6242 21 May 21 nicklas 49   }
6242 21 May 21 nicklas 50   
6242 21 May 21 nicklas 51   /**
6242 21 May 21 nicklas 52     Get the ID of all matching raw bioassays.
6242 21 May 21 nicklas 53   */
6242 21 May 21 nicklas 54   public Set<Integer> getIdList()
6242 21 May 21 nicklas 55   {
6242 21 May 21 nicklas 56     return idList;
6242 21 May 21 nicklas 57   }
6242 21 May 21 nicklas 58   
6242 21 May 21 nicklas 59   /**
6242 21 May 21 nicklas 60     Get total number of raw bioassay hits.
6242 21 May 21 nicklas 61   */
6242 21 May 21 nicklas 62   public int getHits()
6242 21 May 21 nicklas 63   {
6242 21 May 21 nicklas 64     return idList.size();
6242 21 May 21 nicklas 65   }
6242 21 May 21 nicklas 66   
6242 21 May 21 nicklas 67   public boolean hasTimedOut()
6242 21 May 21 nicklas 68   {
6242 21 May 21 nicklas 69     return documentsAfterTimeout > 0;
6242 21 May 21 nicklas 70   }
6242 21 May 21 nicklas 71   
6242 21 May 21 nicklas 72   /**
6242 21 May 21 nicklas 73     Get the total number of documents (=variants) that the query matched.
6242 21 May 21 nicklas 74   */
6242 21 May 21 nicklas 75   public int getTotalDocuments()
6242 21 May 21 nicklas 76   {
6242 21 May 21 nicklas 77     return totalDocuments;
6242 21 May 21 nicklas 78   }
6242 21 May 21 nicklas 79   
6242 21 May 21 nicklas 80   /**
6242 21 May 21 nicklas 81     Get the number of documents that could not be processed
6242 21 May 21 nicklas 82     due to timeout. Eg. we could not get the raw bioassay ID.
6242 21 May 21 nicklas 83   */
6242 21 May 21 nicklas 84   public int getDocumentsAfterTimeout()
6242 21 May 21 nicklas 85   {
6242 21 May 21 nicklas 86     return documentsAfterTimeout;
6242 21 May 21 nicklas 87   }
6242 21 May 21 nicklas 88
6242 21 May 21 nicklas 89 }