X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fdatamodel%2FSearchResultsI.java;h=d682de1056306ca3387a2457b71a51fa92e7d728;hb=6ca8a32d88328b8f2162512f41c657c87e131045;hp=52a0467d841304c1e41b30de5f229634339101c3;hpb=5776cb3b3d74f3c3d3d791d56287d8d78e46b01b;p=jalview.git diff --git a/src/jalview/datamodel/SearchResultsI.java b/src/jalview/datamodel/SearchResultsI.java index 52a0467..d682de1 100644 --- a/src/jalview/datamodel/SearchResultsI.java +++ b/src/jalview/datamodel/SearchResultsI.java @@ -31,19 +31,47 @@ public interface SearchResultsI { /** - * Adds one region to the results + * Adds one region to the results (unless already added, to avoid duplicates) * * @param seq - * Sequence * @param start - * int * @param end - * int * @return */ SearchResultMatchI addResult(SequenceI seq, int start, int end); /** + * Adds one ore more [start, end] ranges to the results (unless already added + * to avoid duplicates). This method only increments the match count by 1. + * This is for the case where a match spans ignored hidden residues - it is + * formally two or more contiguous matches, but only counted as one match. + * + * @param seq + * @param positions + */ + void addResult(SequenceI seq, int[] positions); + + + /** + * Adds the given start/end region to this search result. If sequence already + * has a search result and the range is adjacent to already highlighted + * positions, they will be merged + * + * @param sequence + * @param start + * @param end + * @return true if an existing range was updated with this one + */ + boolean appendResult(SequenceI sequence, int start, int end); + + /** + * adds all match results in the argument to this set + * + * @param toAdd + */ + void addSearchResults(SearchResultsI toAdd); + + /** * Answers true if the search results include the given sequence (or its * dataset sequence), else false * @@ -70,11 +98,13 @@ public interface SearchResultsI int[] getResults(SequenceI sequence, int start, int end); /** - * Returns the number of matches found + * Returns the number of matches found. Note that if a match straddles ignored + * hidden residues, it is counted as one match, although formally recorded as + * two (or more) contiguous matched sequence regions * * @return */ - int getSize(); + int getCount(); /** * Returns true if no search result matches are held. @@ -101,4 +131,12 @@ public interface SearchResultsI * @return number of bits set */ int markColumns(SequenceCollectionI sqcol, BitSet bs); + + /** + * Return sub-sequences corresponding to distinct contiguous ranges in the + * matching set + * + * @return list of sequence objects + */ + List getMatchingSubSequences(); } \ No newline at end of file