Add Annotation to specific sequence
[jalview.git] / src / jalview / datamodel / Sequence.java
index 65537ae..48057b8 100755 (executable)
@@ -42,9 +42,12 @@ public class Sequence implements SequenceI
     String vamsasId;\r
     Vector dbrefs;\r
 \r
+    /** This annotation is displayed below the alignment but the\r
+     * positions are tied to the residues of this sequence */\r
+    Vector annotation;\r
 \r
     /** DOCUMENT ME!! */\r
-    public Vector sequenceFeatures;\r
+    public SequenceFeature [] sequenceFeatures;\r
 \r
     /**\r
      * Creates a new Sequence object.\r
@@ -133,25 +136,40 @@ public class Sequence implements SequenceI
      *\r
      * @param v DOCUMENT ME!\r
      */\r
-    public void setSequenceFeatures(Vector v)\r
+    public void setSequenceFeatures(SequenceFeature [] features)\r
     {\r
-        sequenceFeatures = v;\r
+        sequenceFeatures = features;\r
     }\r
 \r
     public void addSequenceFeature(SequenceFeature sf)\r
     {\r
       if(sequenceFeatures==null)\r
-        sequenceFeatures = new Vector();\r
+      {\r
+        sequenceFeatures = new SequenceFeature[0];\r
+      }\r
+\r
+      SequenceFeature [] temp = new SequenceFeature[sequenceFeatures.length+1];\r
+      System.arraycopy(sequenceFeatures, 0, temp, 0, sequenceFeatures.length);\r
+      temp[sequenceFeatures.length] = sf;\r
 \r
-      sequenceFeatures.addElement(sf);\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
      *\r
      * @return DOCUMENT ME!\r
      */\r
-    public Vector getSequenceFeatures()\r
+    public SequenceFeature [] getSequenceFeatures()\r
     {\r
         return sequenceFeatures;\r
     }\r
@@ -574,4 +592,24 @@ public class Sequence implements SequenceI
       return datasetSequence;\r
     }\r
 \r
+    public AlignmentAnnotation [] getAnnotation()\r
+    {\r
+      if(annotation==null)\r
+        return null;\r
+\r
+      AlignmentAnnotation [] ret = new AlignmentAnnotation[annotation.size()];\r
+      for(int r = 0; r<ret.length; r++)\r
+        ret[r] = (AlignmentAnnotation)annotation.elementAt(r);\r
+\r
+      return ret;\r
+    }\r
+\r
+    public void addAlignmentAnnotation(AlignmentAnnotation annotation)\r
+    {\r
+      if(this.annotation==null)\r
+        this.annotation = new Vector();\r
+\r
+      this.annotation.addElement( annotation );\r
+    }\r
+\r
 }\r