alignment from seqCigars will correctly mark deleted residues as
[jalview.git] / src / jalview / datamodel / Sequence.java
index 6873f52..562440f 100755 (executable)
@@ -33,14 +33,14 @@ public class Sequence implements SequenceI
 {\r
     SequenceI datasetSequence;\r
     String name;\r
-    String sequence;\r
+    private String sequence;\r
     String description;\r
     int start;\r
     int end;\r
     Color color = Color.white;\r
     Vector pdbIds;\r
     String vamsasId;\r
-    Vector dbrefs;\r
+    DBRefEntry [] dbrefs;\r
 \r
     /** This annotation is displayed below the alignment but the\r
      * positions are tied to the residues of this sequence */\r
@@ -146,7 +146,7 @@ public class Sequence implements SequenceI
         sequenceFeatures = features;\r
     }\r
 \r
-    public void addSequenceFeature(SequenceFeature sf)\r
+    public synchronized void addSequenceFeature(SequenceFeature sf)\r
     {\r
       if(sequenceFeatures==null)\r
       {\r
@@ -165,17 +165,9 @@ public class Sequence implements SequenceI
       System.arraycopy(sequenceFeatures, 0, temp, 0, sequenceFeatures.length);\r
       temp[sequenceFeatures.length] = sf;\r
 \r
-\r
       sequenceFeatures = temp;\r
     }\r
 \r
-    SequenceFeature [] sfarray;\r
-\r
-        public SequenceFeature[] getsfarray()\r
-        {\r
-          return sfarray;\r
-        }\r
-\r
 \r
     /**\r
      * DOCUMENT ME!\r
@@ -453,7 +445,7 @@ public class Sequence implements SequenceI
     public int[] gapMap()\r
     {\r
         // Returns an int array giving the position of each residue in the sequence in the alignment\r
-        String seq = jalview.analysis.AlignSeq.extractGaps("-. ", sequence);\r
+        String seq = jalview.analysis.AlignSeq.extractGaps(jalview.util.Comparison.GapChars, sequence);\r
         int[] map = new int[seq.length()];\r
         int j = 0;\r
         int p = 0;\r
@@ -568,11 +560,12 @@ public class Sequence implements SequenceI
       vamsasId = id;\r
     }\r
 \r
-    public void setDBRef(Vector dbref)\r
+    public void setDBRef(DBRefEntry [] dbref)\r
     {\r
       dbrefs = dbref;\r
     }\r
-    public Vector getDBRef()\r
+\r
+    public DBRefEntry [] getDBRef()\r
     {\r
       return dbrefs;\r
     }\r
@@ -580,9 +573,14 @@ public class Sequence implements SequenceI
     public void addDBRef(DBRefEntry entry)\r
     {\r
       if(dbrefs == null)\r
-        dbrefs = new Vector();\r
+        dbrefs = new DBRefEntry[0];\r
+\r
+      DBRefEntry [] temp = new DBRefEntry[dbrefs.length+1];\r
+      System.arraycopy(dbrefs, 0, temp, 0, dbrefs.length);\r
 \r
-      dbrefs.addElement(entry);\r
+      temp[temp.length-1] = entry;\r
+\r
+      dbrefs = temp;\r
     }\r
 \r
     public void setDatasetSequence(SequenceI seq)\r
@@ -632,19 +630,18 @@ public class Sequence implements SequenceI
     public void showHiddenSequence(SequenceI seq)\r
     {\r
       hiddenSequences.deleteSequence(seq, false);\r
-      if (hiddenSequences.getSize() < 1)\r
+      if (hiddenSequences.getSize(false) < 1)\r
       {\r
         hiddenSequences = null;\r
       }\r
-\r
     }\r
 \r
     public void changeCase(boolean toUpper, int start, int end)\r
     {\r
       StringBuffer newSeq = new StringBuffer();\r
 \r
-      if(end>=sequence.length())\r
-        end = sequence.length()-1;\r
+      if(end>sequence.length())\r
+        end = sequence.length();\r
 \r
       if (start > 0)\r
       {\r
@@ -666,8 +663,8 @@ public class Sequence implements SequenceI
     {\r
       StringBuffer newSeq = new StringBuffer();\r
 \r
-     if(end>=sequence.length())\r
-       end = sequence.length()-1;\r
+     if(end>sequence.length())\r
+       end = sequence.length();\r
 \r
      if (start > 0)\r
      {\r