jalview 2.5 release banner
[jalview.git] / src / jalview / io / vamsas / Datasetsequence.java
index 1412007..77af704 100644 (file)
@@ -1,20 +1,19 @@
 /*\r
- * Jalview - A Sequence Alignment Editor and Viewer (Development Version 2.4.1)\r
- * Copyright (C) 2009 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle\r
+ * Jalview - A Sequence Alignment Editor and Viewer (Version 2.5)\r
+ * Copyright (C) 2010 J Procter, AM Waterhouse, G Barton, M Clamp, S Searle\r
  * \r
- * This program is free software; you can redistribute it and/or\r
- * modify it under the terms of the GNU General Public License\r
- * as published by the Free Software Foundation; either version 2\r
- * of the License, or (at your option) any later version.\r
+ * This file is part of Jalview.\r
  * \r
- * This program is distributed in the hope that it will be useful,\r
- * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
- * GNU General Public License for more details.\r
+ * Jalview is free software: you can redistribute it and/or\r
+ * modify it under the terms of the GNU General Public License \r
+ * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.\r
  * \r
- * You should have received a copy of the GNU General Public License\r
- * along with this program; if not, write to the Free Software\r
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA\r
+ * Jalview is distributed in the hope that it will be useful, but \r
+ * WITHOUT ANY WARRANTY; without even the implied warranty \r
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR \r
+ * PURPOSE.  See the GNU General Public License for more details.\r
+ * \r
+ * You should have received a copy of the GNU General Public License along with Jalview.  If not, see <http://www.gnu.org/licenses/>.\r
  */\r
 package jalview.io.vamsas;\r
 \r
@@ -27,16 +26,19 @@ import uk.ac.vamsas.objects.core.DbRef;
 import uk.ac.vamsas.objects.core.Sequence;\r
 \r
 /**\r
- * synchronize a vamsas dataset sequence with a jalview dataset sequence.\r
- * This class deals with all sequence features and database references associated with\r
- * the jalview sequence.\r
+ * synchronize a vamsas dataset sequence with a jalview dataset sequence. This\r
+ * class deals with all sequence features and database references associated\r
+ * with the jalview sequence.\r
+ * \r
  * @author JimP\r
- *\r
+ * \r
  */\r
 public class Datasetsequence extends DatastoreItem\r
 {\r
   String dict;\r
+\r
   private DataSet dataset;\r
+\r
   // private AlignmentI jvdset;\r
 \r
   public Datasetsequence(VamsasAppDatastore vamsasAppDatastore,\r
@@ -59,23 +61,26 @@ public class Datasetsequence extends DatastoreItem
   public void addFromDocument()\r
   {\r
     Sequence vseq = (Sequence) vobj;\r
-    SequenceI dsseq = new jalview.datamodel.Sequence(vseq.getName(), \r
-            vseq.getSequence(),\r
-            (int) vseq.getStart(), (int) vseq.getEnd());\r
+    SequenceI dsseq = new jalview.datamodel.Sequence(vseq.getName(), vseq\r
+            .getSequence(), (int) vseq.getStart(), (int) vseq.getEnd());\r
     dsseq.setDescription(vseq.getDescription());\r
     bindjvvobj(dsseq, vseq);\r
     dsseq.setVamsasId(vseq.getVorbaId().getId());\r
     jvobj = dsseq;\r
-    modified=true;\r
+    modified = true;\r
   }\r
+\r
   public void updateFromDoc()\r
   {\r
     Sequence sq = (Sequence) vobj;\r
     SequenceI sequence = (SequenceI) jvobj;\r
     if (!sequence.getSequenceAsString().equals(sq.getSequence()))\r
     {\r
-      log.warn("Potential Client Error ! - mismatch of dataset sequence: and jalview internal dataset sequence.");\r
-    } else {\r
+      log\r
+              .warn("Potential Client Error ! - mismatch of dataset sequence: and jalview internal dataset sequence.");\r
+    }\r
+    else\r
+    {\r
       // verify and update principal attributes.\r
       if (sequence.getDescription() != null\r
               && (sequence.getDescription() == null || !sequence\r
@@ -85,16 +90,15 @@ public class Datasetsequence extends DatastoreItem
         modified = true;\r
       }\r
       if (sequence.getSequence() == null\r
-              || !sequence.getSequenceAsString().equals(\r
-                      sq.getSequence()))\r
+              || !sequence.getSequenceAsString().equals(sq.getSequence()))\r
       {\r
         if (sequence.getStart() != sq.getStart()\r
                 || sequence.getEnd() != sq.getEnd())\r
         {\r
           // update modified sequence.\r
           sequence.setSequence(sq.getSequence());\r
-          sequence.setStart((int)sq.getStart());\r
-          sequence.setEnd((int)sq.getEnd());\r
+          sequence.setStart((int) sq.getStart());\r
+          sequence.setEnd((int) sq.getEnd());\r
           modified = true;\r
         }\r
       }\r
@@ -105,32 +109,26 @@ public class Datasetsequence extends DatastoreItem
       }\r
       modified |= updateJvDbRefs();\r
       // updateJvFeatures();\r
-    }    \r
+    }\r
   }\r
 \r
-/*\r
-  private void updateJvFeatures()\r
-  {\r
-    Sequence vsq = (Sequence) vobj;\r
-    \r
-    // add or update any new features/references on dataset sequence\r
-    if (vsq.getgetSequenceFeatures() != null)\r
-    {\r
-      int sfSize = sq.getSequenceFeatures().length;\r
-\r
-      for (int sf = 0; sf < sfSize; sf++)\r
-      {\r
-        new jalview.io.vamsas.Sequencefeature(datastore, (jalview.datamodel.SequenceFeature) sq\r
-                .getSequenceFeatures()[sf], dataset, (Sequence) vobj);\r
-      }\r
-    }    \r
-  }\r
-*/\r
+  /*\r
+   * private void updateJvFeatures() { Sequence vsq = (Sequence) vobj;\r
+   * \r
+   * // add or update any new features/references on dataset sequence if\r
+   * (vsq.getgetSequenceFeatures() != null) { int sfSize =\r
+   * sq.getSequenceFeatures().length;\r
+   * \r
+   * for (int sf = 0; sf < sfSize; sf++) { new\r
+   * jalview.io.vamsas.Sequencefeature(datastore,\r
+   * (jalview.datamodel.SequenceFeature) sq .getSequenceFeatures()[sf], dataset,\r
+   * (Sequence) vobj); } } }\r
+   */\r
   private boolean updateSqFeatures()\r
   {\r
-    boolean modified=false;\r
+    boolean modified = false;\r
     SequenceI sq = (SequenceI) jvobj;\r
-    \r
+\r
     // add or update any new features/references on dataset sequence\r
     if (sq.getSequenceFeatures() != null)\r
     {\r
@@ -138,8 +136,10 @@ public class Datasetsequence extends DatastoreItem
 \r
       for (int sf = 0; sf < sfSize; sf++)\r
       {\r
-        modified|=new jalview.io.vamsas.Sequencefeature(datastore, (jalview.datamodel.SequenceFeature) sq\r
-                .getSequenceFeatures()[sf], dataset, (Sequence) vobj).docWasUpdated();\r
+        modified |= new jalview.io.vamsas.Sequencefeature(datastore,\r
+                (jalview.datamodel.SequenceFeature) sq\r
+                        .getSequenceFeatures()[sf], dataset,\r
+                (Sequence) vobj).docWasUpdated();\r
       }\r
     }\r
     return modified;\r
@@ -160,49 +160,56 @@ public class Datasetsequence extends DatastoreItem
     dataset.addSequence(sequence);\r
     vobj = sequence;\r
     updateSqFeatures();\r
-    updateDbRefs();//sq,(Sequence) vobj, dataset);\r
+    updateDbRefs();// sq,(Sequence) vobj, dataset);\r
   }\r
+\r
   /**\r
    * sync database references from jv to document\r
+   * \r
    * @return true if document was modified\r
    */\r
-  private boolean updateDbRefs() {\r
-    boolean modifiedthedoc=false;\r
+  private boolean updateDbRefs()\r
+  {\r
+    boolean modifiedthedoc = false;\r
     SequenceI sq = (SequenceI) jvobj;\r
-    \r
+\r
     if (sq.getDatasetSequence() == null && sq.getDBRef() != null)\r
     {\r
       // only sync database references for dataset sequences\r
       DBRefEntry[] entries = sq.getDBRef();\r
-      //jalview.datamodel.DBRefEntry dbentry;\r
+      // jalview.datamodel.DBRefEntry dbentry;\r
       for (int db = 0; db < entries.length; db++)\r
       {\r
-        modifiedthedoc|= new jalview.io.vamsas.Dbref(datastore,\r
-                //dbentry = \r
-                  entries[db], sq, (Sequence) vobj, dataset).docWasUpdated();\r
-        \r
+        modifiedthedoc |= new jalview.io.vamsas.Dbref(datastore,\r
+        // dbentry =\r
+                entries[db], sq, (Sequence) vobj, dataset).docWasUpdated();\r
+\r
       }\r
 \r
     }\r
     return modifiedthedoc;\r
   }\r
+\r
   /**\r
    * sync database references from document to jv sequence\r
+   * \r
    * @return true if local sequence refs were modified\r
    */\r
-  private boolean updateJvDbRefs() {\r
-    boolean modifiedtheseq=false;\r
+  private boolean updateJvDbRefs()\r
+  {\r
+    boolean modifiedtheseq = false;\r
     SequenceI sq = (SequenceI) jvobj;\r
     Sequence vsq = (Sequence) vobj;\r
-    if (vsq.getDbRefCount()>0) {\r
+    if (vsq.getDbRefCount() > 0)\r
+    {\r
       // only sync database references for dataset sequences\r
       DbRef[] entries = vsq.getDbRef();\r
-      //DbRef dbentry;\r
+      // DbRef dbentry;\r
       for (int db = 0; db < entries.length; db++)\r
       {\r
-        modifiedtheseq|= new jalview.io.vamsas.Dbref(datastore,\r
-                //dbentry = \r
-                  entries[db], vsq, sq).jvWasUpdated();\r
+        modifiedtheseq |= new jalview.io.vamsas.Dbref(datastore,\r
+        // dbentry =\r
+                entries[db], vsq, sq).jvWasUpdated();\r
       }\r
     }\r
     return modifiedtheseq;\r
@@ -210,11 +217,14 @@ public class Datasetsequence extends DatastoreItem
 \r
   public void conflict()\r
   {\r
-    log.warn("Conflict in dataset sequence update to document. Overwriting document");\r
+    log\r
+            .warn("Conflict in dataset sequence update to document. Overwriting document");\r
     // TODO: could try to import from document data to jalview first. and then\r
     updateToDoc();\r
   }\r
+\r
   boolean modified = false;\r
+\r
   public void updateToDoc()\r
   {\r
     SequenceI sq = (SequenceI) jvobj;\r
@@ -228,8 +238,7 @@ public class Datasetsequence extends DatastoreItem
       modified = true;\r
     }\r
     if (sequence.getSequence() == null\r
-            || !sequence.getSequence().equals(\r
-                    sq.getSequenceAsString()))\r
+            || !sequence.getSequence().equals(sq.getSequenceAsString()))\r
     {\r
       if (sequence.getStart() != sq.getStart()\r
               || sequence.getEnd() != sq.getEnd())\r
@@ -257,6 +266,7 @@ public class Datasetsequence extends DatastoreItem
 \r
   /**\r
    * (probably could just do vobj.isModified(), but..)\r
+   * \r
    * @return true if document's dataset sequence was modified\r
    */\r
   public boolean getModified()\r