/*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.2)
- * Copyright (C) 2014 The Jalview Authors
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
*
* This file is part of Jalview.
*
package jalview.datamodel;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
/**
{
SequenceI sequence;
+ /**
+ * Start position of match in sequence (base 1)
+ */
int start;
+ /**
+ * End position (inclusive) (base 1)
+ */
int end;
+ /**
+ * Constructor
+ *
+ * @param seq
+ * a sequence
+ * @param start
+ * start position of matched range (base 1)
+ * @param end
+ * end of matched range (inclusive, base 1)
+ */
public Match(SequenceI seq, int start, int end)
{
sequence = seq;
{
return end;
}
+
+ /**
+ * Returns the string of characters in the matched region.
+ */
+ @Override
+ public String toString()
+ {
+ char[] chars = sequence.getSequence();
+ // convert start/end to base 0 (with bounds check)
+ final int from = Math.max(start - 1, 0);
+ final int to = Math.min(end, chars.length + 1);
+ return String.valueOf(Arrays.copyOfRange(chars, from, to));
+ }
}
/**
{
return matches;
}
+
+ /**
+ * Return the results as a string of characters. Meant for use when the
+ * context ensures that all matches are to regions of the same sequence
+ * (otherwise the result is meaningless).
+ *
+ * @return
+ */
+ @Override
+ public String toString()
+ {
+ StringBuilder result = new StringBuilder(256);
+ for (Match m : matches)
+ {
+ result.append(m.toString());
+ }
+ return result.toString();
+ }
}