Merge branch 'releases/Release_2_11_3_Branch'
[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
65    *          - first position to highlight
66    * @param to
67    *          - last position to highlight (assumed higher than from)
68    * @return true iff from-to intersects or marks positions either side of
69    *         start/end
70    */
71   boolean adjacent(SequenceI seq, int from, int to);
72 }