return this.sequence;\r
}\r
public String getSequence(int start,int end) {\r
- if(end>sequence.length())\r
+ // JBPNote - left to user to pad the result here (TODO:Decide on this policy)\r
+ if(start>=sequence.length())\r
+ return "";\r
+\r
+ if(end>=sequence.length())\r
end = sequence.length();\r
+\r
return this.sequence.substring(start,end);\r
}\r
\r
\r
public void deleteCharAt(int i)\r
{\r
+ if (i>=sequence.length())\r
+ return;\r
sequence = sequence.substring(0,i) + sequence.substring(i+1);\r
}\r
\r
public void deleteChars(int i, int j)\r
{\r
- sequence = sequence.substring(0,i) + sequence.substring(j);\r
+ if (i>=sequence.length())\r
+ return;\r
+ if (j>=sequence.length())\r
+ sequence = sequence.substring(0,i);\r
+ else\r
+ sequence = sequence.substring(0,i) + sequence.substring(j);\r
}\r
\r
public void insertCharAt(int i, char c)\r
if (i < sequence.length()) {\r
sequence = tmp.substring(0,i) + String.valueOf(c) + tmp.substring(i);\r
} else {\r
- sequence = tmp + String.valueOf(c);\r
+ // JBPNote : padding char at end of sequence. We'll not get away with this when we insert residues, I bet!\r
+ char[] ch = new char[1+i-sequence.length()];\r
+ for (int j=0, k=ch.length; j<k; j++)\r
+ ch[j] = c;\r
+ sequence = tmp + String.valueOf(ch);\r
}\r
\r
}\r