JAL-4062 appendResult(seq,start,end) called by structureSelectionManager sweep-search...
[jalview.git] / src / jalview / datamodel / SearchResultMatchI.java
1 /*
2  * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
3  * Copyright (C) $$Year-Rel$$ The Jalview Authors
4  * 
5  * This file is part of Jalview.
6  * 
7  * Jalview is free software: you can redistribute it and/or
8  * modify it under the terms of the GNU General Public License 
9  * as published by the Free Software Foundation, either version 3
10  * of the License, or (at your option) any later version.
11  *  
12  * Jalview is distributed in the hope that it will be useful, but 
13  * WITHOUT ANY WARRANTY; without even the implied warranty 
14  * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
15  * PURPOSE.  See the GNU General Public License for more details.
16  * 
17  * You should have received a copy of the GNU General Public License
18  * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
19  * The Jalview Authors are detailed in the 'AUTHORS' file.
20  */
21 package jalview.datamodel;
22
23 /**
24  * An interface that describes one matched region of an alignment, as one
25  * contiguous portion of a single dataset sequence
26  */
27 public interface SearchResultMatchI
28 {
29   /**
30    * Returns the matched sequence
31    * 
32    * @return
33    */
34   SequenceI getSequence();
35
36   /**
37    * Returns the start position of the match in the sequence (base 1)
38    * 
39    * @return
40    */
41   int getStart();
42
43   /**
44    * Returns the end position of the match in the sequence (base 1)
45    * 
46    * @return
47    */
48   int getEnd();
49
50   /**
51    * Answers true if this match is for the given sequence and includes (matches
52    * or encloses) the given start-end range
53    * 
54    * @param seq
55    * @param start
56    * @param end
57    * @return
58    */
59   boolean contains(SequenceI seq, int start, int end);
60
61   /**
62    *
63    * @param seq
64    * @param from - first position to highlight
65    * @param to - last position to highlight (assumed higher than from)
66    * @return true iff from-to intersects or marks positions either side of start/end
67    */
68   boolean adjacent(SequenceI seq, int from, int to);
69 }