JAL-1517 update copyright to version 2.8.2
[jalview.git] / src / jalview / datamodel / SearchResults.java
index e62c150..dcb1306 100755 (executable)
@@ -1,20 +1,20 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
+ * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.2)
+ * Copyright (C) 2014 The Jalview Authors
  * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
+ * This file is part of Jalview.
  * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
+ * Jalview is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License 
+ * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
+ *  
+ * Jalview is distributed in the hope that it will be useful, but 
+ * WITHOUT ANY WARRANTY; without even the implied warranty 
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
+ * PURPOSE.  See the GNU General Public License for more details.
  * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * You should have received a copy of the GNU General Public License along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
  */
 package jalview.datamodel;
 
@@ -29,11 +29,11 @@ public class SearchResults
    * alignment
    * 
    * @param seq
-   *                Sequence
+   *          Sequence
    * @param start
-   *                int
+   *          int
    * @param end
-   *                int
+   *          int
    */
   public void addResult(SequenceI seq, int start, int end)
   {
@@ -59,6 +59,31 @@ public class SearchResults
   }
 
   /**
+   * 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
+   */
+  public boolean involvesSequence(SequenceI sequence)
+  {
+    if (matches == null || matches.length == 0)
+    {
+      return false;
+    }
+    SequenceI ds = sequence.getDatasetSequence();
+    for (int m = 0; m < matches.length; m++)
+    {
+      if (matches[m].sequence != null
+              && (matches[m].sequence == sequence || matches[m].sequence == ds))
+      {
+        return true;
+      }
+    }
+    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
@@ -120,6 +145,12 @@ public class SearchResults
             result[resultLength + 1] = matchEnd;
           }
         }
+        else
+        {
+          // debug
+          // System.err.println("Outwith bounds!" + matchStart+">"+end +"  or "
+          // + matchEnd+"<"+start);
+        }
       }
     }
     return result;