Merge branch 'develop' (JAL-4102 2.11.2.6 patch release) into features/r2_11_2_alphaf...
[jalview.git] / src / jalview / api / FinderI.java
index a1a3efd..697072b 100644 (file)
@@ -1,11 +1,30 @@
+/*
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
+ * 
+ * This file is part of Jalview.
+ * 
+ * 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 Jalview.  If not, see <http://www.gnu.org/licenses/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
+ */
 package jalview.api;
 
+import java.util.List;
+
 import jalview.datamodel.SearchResultsI;
-import jalview.datamodel.SequenceGroup;
 import jalview.datamodel.SequenceI;
 
-import java.util.List;
-
 /**
  * An interface for searching for a pattern in an aligment
  */
@@ -16,35 +35,51 @@ public interface FinderI
    * Performs a find for the given search string (interpreted as a regular
    * expression). Search may optionally be case-sensitive, and may optionally
    * including match in sequence description (sequence id is always searched).
-   * If <code>selection</code> is not null, then the find is restricted to the
+   * If the viewport has an active selection, then the find is restricted to the
    * selection region. Sequences matched by id or description can be retrieved
    * by getIdMatches(), and matched residue patterns by getSearchResults().
+   * <p>
+   * If {@code ignoreHidden} is true, then any residues in hidden columns are
+   * ignored (skipped) when matching, so for example pattern {@code KRT} would
+   * match sequence {@code KRqmT} (where {@code qm} are in hidden columns).
+   * <p>
+   * Matches of entirely hidden patterns are not returned. Matches that span
+   * hidden regions on one or both sides may be returned.
    * 
    * @param theSearchString
    * @param caseSensitive
    * @param searchDescription
+   * @param searchFeatureDesc
+   * @param ignoreHidden
    * @return
    */
-  void findAll(String theSearchString, SequenceGroup selection,
-          boolean caseSensitive, boolean searchDescription);
+  void findAll(String theSearchString, boolean caseSensitive,
+          boolean searchDescription, boolean searchFeatureDesc,
+          boolean ignoreHidden);
 
   /**
    * Finds the next match for the given search string (interpreted as a regular
    * expression), starting from the position after the last match found. Search
    * may optionally be case-sensitive, and may optionally including match in
-   * sequence description (sequence id is always searched). If
-   * <code>selection</code> is not null, then the find is restricted to the
-   * selection region. Sequences matched by id or description can be retrieved
-   * by getIdMatches(), and matched residue patterns by getSearchResults().
+   * sequence description (sequence id is always searched). If the viewport has
+   * an active selection, then the find is restricted to the selection region.
+   * Sequences matched by id or description can be retrieved by getIdMatches(),
+   * and matched residue patterns by getSearchResults().
+   * <p>
+   * If {@code ignoreHidden} is true, any hidden residues are skipped (matches
+   * may span them). If false, they are included for matching purposes. In
+   * either cases, entirely hidden matches are not returned.
    * 
    * @param theSearchString
-   * @param selection
    * @param caseSensitive
    * @param searchDescription
+   * @param searchFeatureDesc
+   * @param ignoreHidden
    * @return
    */
-  void findNext(String theSearchString, SequenceGroup selection,
-          boolean caseSensitive, boolean searchDescription);
+  void findNext(String theSearchString, boolean caseSensitive,
+          boolean searchDescription, boolean searchFeatureDesc,
+          boolean ignoreHidden);
 
   /**
    * Returns the (possibly empty) list of sequences matched on sequence name or
@@ -61,4 +96,6 @@ public interface FinderI
    */
   SearchResultsI getSearchResults();
 
+  void setFeatureRenderer(FeatureRenderer featureRenderer);
+
 }
\ No newline at end of file