JAL-2805 check actually works now
[jalview.git] / src / jalview / ext / treeviewer / LoadedTreeSequenceAssociation.java
index 05d13e9..479e450 100644 (file)
@@ -9,18 +9,18 @@ import java.util.Iterator;
 import java.util.Map;
 
 public class LoadedTreeSequenceAssociation
-        implements ExternalLoadedTreeAssociationI
+        implements LoadedTreeAssociationI
 {
   SequenceI[] alignSequences;
 
-  ExternalTreeI tree;
+  TreeI tree;
 
-  Map<SequenceI, ExternalTreeNodeI> alignmentWithNodes;
+  Map<SequenceI, TreeNodeI> alignmentWithNodes;
 
-  Map<ExternalTreeNodeI, SequenceI> nodesWithAlignment;
+  Map<TreeNodeI, SequenceI> nodesWithAlignment;
 
   public LoadedTreeSequenceAssociation(SequenceI[] alignmentSequences,
-          ExternalTreeI extTree)
+          TreeI extTree)
   {
     alignSequences = alignmentSequences;
     tree = extTree;
@@ -49,19 +49,35 @@ public class LoadedTreeSequenceAssociation
 
     if (!tree.isEmpty())
     {
-      for (final Iterator<ExternalTreeNodeI> iter = tree
+      for (final Iterator<TreeNodeI> iter = tree
               .iterateInPreOrder(); iter
               .hasNext();)
       {
-        ExternalTreeNodeI treeNode = iter.next();
+        TreeNodeI treeNode = iter.next();
         nodeSequenceName = treeNode.getNodeName();
 
         nodeSequence = algnIds.findIdMatch(nodeSequenceName);
         if (nodeSequence != null)
         {
-
+          // is there already a sequence present for the node?
+          // If so, does it actually match Jalview's sequence?
+          if (treeNode.getSequence() != null)
+          {
+            if (!(treeNode.getSequence().getSequenceAsString()
+                    .equals(nodeSequence.getSequenceAsString())))
+            {
+              System.err.println(
+                      "Sequence detected in tree node that does not match corresponding Jalview sequence:"
+                              + nodeSequenceName);
+              // which sequence gets precedence?
+
+            }
+
+          }
+          else
+          {
           treeNode.setSequence(nodeSequence);
-
+          }
           MappingUtils.putWithDuplicationCheck(alignmentWithNodes,
                   nodeSequence, treeNode);
           MappingUtils.putWithDuplicationCheck(nodesWithAlignment, treeNode,
@@ -78,13 +94,13 @@ public class LoadedTreeSequenceAssociation
 
 
   @Override
-  public Map<SequenceI, ExternalTreeNodeI> getAlignmentWithNodes()
+  public Map<SequenceI, TreeNodeI> getAlignmentWithNodes()
   {
     return alignmentWithNodes;
   }
 
   @Override
-  public Map<ExternalTreeNodeI, SequenceI> getNodesWithAlignment()
+  public Map<TreeNodeI, SequenceI> getNodesWithAlignment()
   {
     return nodesWithAlignment;
   }