X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fdatamodel%2FSequence.java;h=ab35c386090b7475694a46fcaaa0567f787b9c91;hb=60d2bc892983abad01d082cbff73466f093879f2;hp=8928425f607b54b4cff148bc8d93d3b19ec9e921;hpb=58d43be1e7c0bcd32c567ec9dfafc3abee45e20c;p=jalview.git diff --git a/src/jalview/datamodel/Sequence.java b/src/jalview/datamodel/Sequence.java index 8928425..ab35c38 100755 --- a/src/jalview/datamodel/Sequence.java +++ b/src/jalview/datamodel/Sequence.java @@ -91,8 +91,13 @@ public class Sequence implements SequenceI return this.sequence; } public String getSequence(int start,int end) { - if(end>sequence.length()) + // JBPNote - left to user to pad the result here (TODO:Decide on this policy) + if(start>=sequence.length()) + return ""; + + if(end>=sequence.length()) end = sequence.length(); + return this.sequence.substring(start,end); } @@ -164,12 +169,19 @@ public class Sequence implements SequenceI public void deleteCharAt(int i) { + if (i>=sequence.length()) + return; sequence = sequence.substring(0,i) + sequence.substring(i+1); } public void deleteChars(int i, int j) { - sequence = sequence.substring(0,i) + sequence.substring(j); + if (i>=sequence.length()) + return; + if (j>=sequence.length()) + sequence = sequence.substring(0,i); + else + sequence = sequence.substring(0,i) + sequence.substring(j); } public void insertCharAt(int i, char c) @@ -184,7 +196,11 @@ public class Sequence implements SequenceI if (i < sequence.length()) { sequence = tmp.substring(0,i) + String.valueOf(c) + tmp.substring(i); } else { - sequence = tmp + String.valueOf(c); + // JBPNote : padding char at end of sequence. We'll not get away with this when we insert residues, I bet! + char[] ch = new char[1+i-sequence.length()]; + for (int j=0, k=ch.length; j