javatidy
[jalview.git] / src / jalview / io / vamsas / Tree.java
index 5fdd0c9..5caded1 100644 (file)
@@ -1,18 +1,18 @@
 /*
  * Jalview - A Sequence Alignment Editor and Viewer (Version 2.7)
  * Copyright (C) 2011 J Procter, AM Waterhouse, J Engelhardt, LM Lui, G Barton, M Clamp, S Searle
- * 
+ *
  * This file is part of Jalview.
- * 
+ *
  * Jalview is free software: you can redistribute it and/or
- * modify it under the terms of the GNU General Public License 
+ * modify it under the terms of the GNU General Public License
  * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
- * 
- * Jalview is distributed in the hope that it will be useful, but 
- * WITHOUT ANY WARRANTY; without even the implied warranty 
- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
+ *
+ * Jalview is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
  * PURPOSE.  See the GNU General Public License for more details.
- * 
+ *
  * You should have received a copy of the GNU General Public License along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
  */
 package jalview.io.vamsas;
@@ -20,10 +20,10 @@ package jalview.io.vamsas;
 import java.io.IOException;
 import java.util.Enumeration;
 import java.util.Hashtable;
+import java.util.List;
 import java.util.Vector;
 
 import jalview.analysis.NJTree;
-import jalview.analysis.SequenceIdMatcher;
 import jalview.bin.Cache;
 import jalview.datamodel.AlignmentI;
 import jalview.datamodel.AlignmentView;
@@ -32,7 +32,6 @@ import jalview.datamodel.SeqCigar;
 import jalview.datamodel.Sequence;
 import jalview.datamodel.SequenceI;
 import jalview.datamodel.SequenceNode;
-import jalview.gui.AlignFrame;
 import jalview.gui.AlignViewport;
 import jalview.gui.TreePanel;
 import jalview.io.NewickFile;
@@ -100,9 +99,10 @@ public class Tree extends DatastoreItem
 
   /*
    * (non-Javadoc)
-   * 
+   *
    * @see jalview.io.vamsas.DatastoreItem#addFromDocument()
    */
+  @Override
   public void addFromDocument()
   {
     tree = (uk.ac.vamsas.objects.core.Tree) vobj; // vtree;
@@ -130,9 +130,10 @@ public class Tree extends DatastoreItem
 
   /*
    * (non-Javadoc)
-   * 
+   *
    * @see jalview.io.vamsas.DatastoreItem#conflict()
    */
+  @Override
   public void conflict()
   {
     Cache.log
@@ -141,9 +142,10 @@ public class Tree extends DatastoreItem
 
   /*
    * (non-Javadoc)
-   * 
+   *
    * @see jalview.io.vamsas.DatastoreItem#update()
    */
+  @Override
   public void updateToDoc()
   {
     if (isModifiable(tree.getModifiable()))
@@ -161,9 +163,10 @@ public class Tree extends DatastoreItem
 
   /*
    * (non-Javadoc)
-   * 
+   *
    * @see jalview.io.vamsas.DatastoreItem#updateFromDoc()
    */
+  @Override
   public void updateFromDoc()
   {
     // should probably just open a new tree panel in the same place as the old
@@ -171,7 +174,7 @@ public class Tree extends DatastoreItem
     // TODO: Tree.updateFromDoc
     /*
      * TreePanel tp = (TreePanel) jvobj; // getvObj2jv(tree);
-     * 
+     *
      * // make a new tree Object[] idata =
      * recoverInputData(tree.getProvenance()); try { if (idata != null &&
      * idata[0] != null) { inputData = (AlignmentView) idata[0]; } ntree =
@@ -198,7 +201,7 @@ public class Tree extends DatastoreItem
   /**
    * correctly creates provenance for trees calculated on an alignment by
    * jalview.
-   * 
+   *
    * @param jal
    * @param tp
    * @return
@@ -253,7 +256,7 @@ public class Tree extends DatastoreItem
 
   /**
    * look up SeqCigars in an existing alignment.
-   * 
+   *
    * @param jal
    * @param sequences
    * @return vector of alignment sequences in order of SeqCigar array (but
@@ -264,10 +267,10 @@ public class Tree extends DatastoreItem
     SeqCigar[] tseqs = new SeqCigar[sequences.length];
     System.arraycopy(sequences, 0, tseqs, 0, sequences.length);
     Vector alsq = new Vector();
-    Enumeration as = jal.getSequences().elements();
-    while (as.hasMoreElements())
+    List<SequenceI> jalsqs;
+    synchronized (jalsqs=jal.getSequences())
+    {for (SequenceI asq:jalsqs)
     {
-      SequenceI asq = (SequenceI) as.nextElement();
       for (int t = 0; t < sequences.length; t++)
       {
         if (tseqs[t] != null
@@ -280,7 +283,7 @@ public class Tree extends DatastoreItem
           alsq.add(asq);
         }
       }
-    }
+    }}
     if (alsq.size() < sequences.length)
       Cache.log
               .warn("Not recovered all alignment sequences for given set of input sequence CIGARS");
@@ -288,9 +291,9 @@ public class Tree extends DatastoreItem
   }
 
   /**
-   * 
+   *
    * Update jalview newick representation with TreeNode map
-   * 
+   *
    * @param tp
    *          the treepanel that this tree is bound to.
    */
@@ -355,7 +358,7 @@ public class Tree extends DatastoreItem
   // / TODO: refactor to vamsas :start
   /**
    * construct treenode mappings for mapped sequences
-   * 
+   *
    * @param ntree
    * @param newick
    * @return
@@ -432,7 +435,7 @@ public class Tree extends DatastoreItem
 
   /**
    * call to match up Treenode specs to NJTree parsed from document object.
-   * 
+   *
    * @param nodespec
    * @param leaves
    *          as returned from NJTree.findLeaves( .., ..) ..
@@ -473,8 +476,9 @@ public class Tree extends DatastoreItem
   // todo: end refactor to vamsas library
   /**
    * add jalview object to vamsas document
-   * 
+   *
    */
+  @Override
   public void addToDocument()
   {
     tree = new uk.ac.vamsas.objects.core.Tree();
@@ -493,7 +497,7 @@ public class Tree extends DatastoreItem
   /**
    * note: this function assumes that all sequence and alignment objects
    * referenced in input data has already been associated with jalview objects.
-   * 
+   *
    * @param tp
    * @param alignFrame
    * @return Object[] { AlignmentView, AlignmentI - reference alignment for