JAL-966 JAL-1738 JAL-345 interfaces for SearchResults and SearchResults.Match
[jalview.git] / src / jalview / datamodel / SearchResults.java
index b9db461..2f62991 100755 (executable)
@@ -28,10 +28,10 @@ import java.util.List;
  * Holds a list of search result matches, where each match is a contiguous
  * stretch of a single sequence.
  * 
- * @author gmcarstairs
+ * @author gmcarstairs amwaterhouse
  *
  */
-public class SearchResults
+public class SearchResults implements SearchResultsI
 {
 
   private List<Match> matches = new ArrayList<Match>();
@@ -40,7 +40,7 @@ public class SearchResults
    * One match consists of a sequence reference, start and end positions.
    * Discontiguous ranges in a sequence require two or more Match objects.
    */
-  public class Match
+  public class Match implements SearchResultMatchI
   {
     SequenceI sequence;
 
@@ -85,16 +85,28 @@ public class SearchResults
       }
     }
 
+    /* (non-Javadoc)
+     * @see jalview.datamodel.SearchResultMatchI#getSequence()
+     */
+    @Override
     public SequenceI getSequence()
     {
       return sequence;
     }
 
+    /* (non-Javadoc)
+     * @see jalview.datamodel.SearchResultMatchI#getStart()
+     */
+    @Override
     public int getStart()
     {
       return start;
     }
 
+    /* (non-Javadoc)
+     * @see jalview.datamodel.SearchResultMatchI#getEnd()
+     */
+    @Override
     public int getEnd()
     {
       return end;
@@ -112,9 +124,10 @@ public class SearchResults
       return startPosition + getCharacters();
     }
 
-    /**
-     * Returns the string of characters in the matched region.
+    /* (non-Javadoc)
+     * @see jalview.datamodel.SearchResultMatchI#getCharacters()
      */
+    @Override
     public String getCharacters()
     {
       char[] chars = sequence.getSequence();
@@ -159,30 +172,19 @@ public class SearchResults
     }
   }
 
-  /**
-   * This method replaces the old search results which merely held an alignment
-   * index of search matches. This broke when sequences were moved around the
-   * alignment
-   * 
-   * @param seq
-   *          Sequence
-   * @param start
-   *          int
-   * @param end
-   *          int
+  /* (non-Javadoc)
+   * @see jalview.datamodel.SearchResultsI#addResult(jalview.datamodel.SequenceI, int, int)
    */
+  @Override
   public void addResult(SequenceI seq, int start, int end)
   {
     matches.add(new Match(seq, start, end));
   }
 
-  /**
-   * Quickly check if the given sequence is referred to in the search results
-   * 
-   * @param sequence
-   *          (specific alignment sequence or a dataset sequence)
-   * @return true if the results involve sequence
+  /* (non-Javadoc)
+   * @see jalview.datamodel.SearchResultsI#involvesSequence(jalview.datamodel.SequenceI)
    */
+  @Override
   public boolean involvesSequence(SequenceI sequence)
   {
     SequenceI ds = sequence.getDatasetSequence();
@@ -197,11 +199,10 @@ public class SearchResults
     return false;
   }
 
-  /**
-   * This Method returns the search matches which lie between the start and end
-   * points of the sequence in question. It is optimised for returning objects
-   * for drawing on SequenceCanvas
+  /* (non-Javadoc)
+   * @see jalview.datamodel.SearchResultsI#getResults(jalview.datamodel.SequenceI, int, int)
    */
+  @Override
   public int[] getResults(SequenceI sequence, int start, int end)
   {
     if (matches.isEmpty())
@@ -269,53 +270,55 @@ public class SearchResults
     return result;
   }
 
+  /* (non-Javadoc)
+   * @see jalview.datamodel.SearchResultsI#getSize()
+   */
+  @Override
   public int getSize()
   {
     return matches.size();
   }
 
+  /* (non-Javadoc)
+   * @see jalview.datamodel.SearchResultsI#getResultSequence(int)
+   */
+  @Override
   public SequenceI getResultSequence(int index)
   {
     return matches.get(index).sequence;
   }
 
-  /**
-   * Returns the start position of the i'th match in the search results.
-   * 
-   * @param i
-   * @return
+  /* (non-Javadoc)
+   * @see jalview.datamodel.SearchResultsI#getResultStart(int)
    */
+  @Override
   public int getResultStart(int i)
   {
     return matches.get(i).start;
   }
 
-  /**
-   * Returns the end position of the i'th match in the search results.
-   * 
-   * @param i
-   * @return
+  /* (non-Javadoc)
+   * @see jalview.datamodel.SearchResultsI#getResultEnd(int)
    */
+  @Override
   public int getResultEnd(int i)
   {
     return matches.get(i).end;
   }
 
-  /**
-   * Returns true if no search result matches are held.
-   * 
-   * @return
+  /* (non-Javadoc)
+   * @see jalview.datamodel.SearchResultsI#isEmpty()
    */
+  @Override
   public boolean isEmpty()
   {
     return matches.isEmpty();
   }
 
-  /**
-   * Returns the list of matches.
-   * 
-   * @return
+  /* (non-Javadoc)
+   * @see jalview.datamodel.SearchResultsI#getResults()
    */
+  @Override
   public List<Match> getResults()
   {
     return matches;
@@ -332,7 +335,7 @@ public class SearchResults
   public String toString()
   {
     StringBuilder result = new StringBuilder(256);
-    for (Match m : matches)
+    for (SearchResultMatchI m : matches)
     {
       result.append(m.toString());
     }
@@ -349,7 +352,7 @@ public class SearchResults
   public String getCharacters()
   {
     StringBuilder result = new StringBuilder(256);
-    for (Match m : matches)
+    for (SearchResultMatchI m : matches)
     {
       result.append(m.getCharacters());
     }