* Holds a list of search result matches, where each match is a contiguous
* stretch of a single sequence.
*
- * @author gmcarstairs
+ * @author gmcarstairs amwaterhouse
*
*/
-public class SearchResults
+public class SearchResults implements SearchResultsI
{
private List<Match> matches = new ArrayList<Match>();
* One match consists of a sequence reference, start and end positions.
* Discontiguous ranges in a sequence require two or more Match objects.
*/
- public class Match
+ public class Match implements SearchResultMatchI
{
SequenceI sequence;
}
}
+ /* (non-Javadoc)
+ * @see jalview.datamodel.SearchResultMatchI#getSequence()
+ */
+ @Override
public SequenceI getSequence()
{
return sequence;
}
+ /* (non-Javadoc)
+ * @see jalview.datamodel.SearchResultMatchI#getStart()
+ */
+ @Override
public int getStart()
{
return start;
}
+ /* (non-Javadoc)
+ * @see jalview.datamodel.SearchResultMatchI#getEnd()
+ */
+ @Override
public int getEnd()
{
return end;
return startPosition + getCharacters();
}
- /**
- * Returns the string of characters in the matched region.
+ /* (non-Javadoc)
+ * @see jalview.datamodel.SearchResultMatchI#getCharacters()
*/
+ @Override
public String getCharacters()
{
char[] chars = sequence.getSequence();
}
}
- /**
- * This method replaces the old search results which merely held an alignment
- * index of search matches. This broke when sequences were moved around the
- * alignment
- *
- * @param seq
- * Sequence
- * @param start
- * int
- * @param end
- * int
+ /* (non-Javadoc)
+ * @see jalview.datamodel.SearchResultsI#addResult(jalview.datamodel.SequenceI, int, int)
*/
+ @Override
public void addResult(SequenceI seq, int start, int end)
{
matches.add(new Match(seq, start, end));
}
- /**
- * 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
+ /* (non-Javadoc)
+ * @see jalview.datamodel.SearchResultsI#involvesSequence(jalview.datamodel.SequenceI)
*/
+ @Override
public boolean involvesSequence(SequenceI sequence)
{
SequenceI ds = sequence.getDatasetSequence();
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
+ /* (non-Javadoc)
+ * @see jalview.datamodel.SearchResultsI#getResults(jalview.datamodel.SequenceI, int, int)
*/
+ @Override
public int[] getResults(SequenceI sequence, int start, int end)
{
if (matches.isEmpty())
return result;
}
+ /* (non-Javadoc)
+ * @see jalview.datamodel.SearchResultsI#getSize()
+ */
+ @Override
public int getSize()
{
return matches.size();
}
+ /* (non-Javadoc)
+ * @see jalview.datamodel.SearchResultsI#getResultSequence(int)
+ */
+ @Override
public SequenceI getResultSequence(int index)
{
return matches.get(index).sequence;
}
- /**
- * Returns the start position of the i'th match in the search results.
- *
- * @param i
- * @return
+ /* (non-Javadoc)
+ * @see jalview.datamodel.SearchResultsI#getResultStart(int)
*/
+ @Override
public int getResultStart(int i)
{
return matches.get(i).start;
}
- /**
- * Returns the end position of the i'th match in the search results.
- *
- * @param i
- * @return
+ /* (non-Javadoc)
+ * @see jalview.datamodel.SearchResultsI#getResultEnd(int)
*/
+ @Override
public int getResultEnd(int i)
{
return matches.get(i).end;
}
- /**
- * Returns true if no search result matches are held.
- *
- * @return
+ /* (non-Javadoc)
+ * @see jalview.datamodel.SearchResultsI#isEmpty()
*/
+ @Override
public boolean isEmpty()
{
return matches.isEmpty();
}
- /**
- * Returns the list of matches.
- *
- * @return
+ /* (non-Javadoc)
+ * @see jalview.datamodel.SearchResultsI#getResults()
*/
+ @Override
public List<Match> getResults()
{
return matches;
public String toString()
{
StringBuilder result = new StringBuilder(256);
- for (Match m : matches)
+ for (SearchResultMatchI m : matches)
{
result.append(m.toString());
}
public String getCharacters()
{
StringBuilder result = new StringBuilder(256);
- for (Match m : matches)
+ for (SearchResultMatchI m : matches)
{
result.append(m.getCharacters());
}