Save links and scores and keyValues for features
[jalview.git] / src / jalview / gui / Jalview2XML.java
index 95912fe..f1f8bb7 100755 (executable)
@@ -253,6 +253,32 @@ public class Jalview2XML
                 features.setDescription(sf[index].getDescription());\r
                 features.setType(sf[index].getType());\r
                 features.setFeatureGroup(sf[index].getFeatureGroup());\r
+                features.setScore(sf[index].getScore());\r
+                if(sf[index].links!=null)\r
+                {\r
+                  for(int l=0; l<sf[index].links.size(); l++)\r
+                  {\r
+                    OtherData keyValue = new OtherData();\r
+                    keyValue.setKey("LINK_"+l);\r
+                    keyValue.setValue(sf[index].links.elementAt(l).toString());\r
+                    features.addOtherData(keyValue);\r
+                  }\r
+                }\r
+                if(sf[index].otherDetails!=null)\r
+                {\r
+                  String key;\r
+                  Enumeration keys = sf[index].otherDetails.keys();\r
+                  while(keys.hasMoreElements())\r
+                  {\r
+                    key = keys.nextElement().toString();\r
+                    OtherData keyValue = new OtherData();\r
+                    keyValue.setKey( key );\r
+                    keyValue.setValue(\r
+                        sf[index].otherDetails.get(key).toString());\r
+                    features.addOtherData(keyValue);\r
+                  }\r
+                }\r
+\r
                 jseq.addFeatures(features);\r
                 index ++;\r
               }\r
@@ -901,6 +927,17 @@ public class Jalview2XML
                   features[f].getBegin(), features[f].getEnd(),\r
                   features[f].getFeatureGroup());\r
 \r
+              sf.setScore(features[f].getScore());\r
+              for(int od=0; od<features[f].getOtherDataCount(); od++)\r
+              {\r
+                OtherData keyValue = features[f].getOtherData(od);\r
+                if(keyValue.getKey().startsWith("LINK"))\r
+                  sf.addLink(keyValue.getValue());\r
+                else\r
+                  sf.setValue(keyValue.getKey(), keyValue.getValue());\r
+\r
+              }\r
+\r
               al.getSequenceAt(i).getDatasetSequence().addSequenceFeature(sf);\r
             }\r
           }\r