Author: jm
Date: 2011-06-30 10:51:40 -0700 (Thu, 30 Jun 2011)
New Revision: 25983

Modified:
   
cytoscape/trunk/coreplugins/PSI-MI/src/main/java/org/cytoscape/coreplugin/psi_mi/cyto_mapper/MapFromCytoscape.java
Log:
Fix for ticket id 0002550: Fixed bug with attribute transfer code so it can 
properly handle MultiHashMaps

Modified: 
cytoscape/trunk/coreplugins/PSI-MI/src/main/java/org/cytoscape/coreplugin/psi_mi/cyto_mapper/MapFromCytoscape.java
===================================================================
--- 
cytoscape/trunk/coreplugins/PSI-MI/src/main/java/org/cytoscape/coreplugin/psi_mi/cyto_mapper/MapFromCytoscape.java
  2011-06-30 15:53:23 UTC (rev 25982)
+++ 
cytoscape/trunk/coreplugins/PSI-MI/src/main/java/org/cytoscape/coreplugin/psi_mi/cyto_mapper/MapFromCytoscape.java
  2011-06-30 17:51:40 UTC (rev 25983)
@@ -39,7 +39,12 @@
 import cytoscape.CyNode;
 import cytoscape.Cytoscape;
 
+import cytoscape.data.AttributeValueVisitor;
 import cytoscape.data.CyAttributes;
+import cytoscape.data.CyAttributesUtils;
+import cytoscape.data.attr.CountedIterator;
+import cytoscape.data.attr.MultiHashMap;
+import cytoscape.data.attr.MultiHashMapDefinition;
 
 import org.cytoscape.coreplugin.psi_mi.data_mapper.Mapper;
 import org.cytoscape.coreplugin.psi_mi.model.AttributeBag;
@@ -148,7 +153,7 @@
         * Transfers all Node / Edge Attributes.
         */
        private void transferAllAttributes(String[] attributeNames, 
CyAttributes attributes,
-                                          String nodeName, AttributeBag bag) {
+                                          String nodeName, final AttributeBag 
bag) {
                List dbNames = null;
                List dbIds = null;
 
@@ -160,8 +165,12 @@
                        } else if 
(attributeName.equals(CommonVocab.XREF_DB_ID)) {
                                dbIds = attributes.getListAttribute(nodeName, 
attributeName);
                        } else {
-                               String value = 
attributes.getStringAttribute(nodeName, attributeName);
-                               bag.addAttribute(attributeName, value);
+                               
CyAttributesUtils.traverseAttributeValues(nodeName, attributeName, attributes, 
new AttributeValueVisitor() {
+                                       @Override
+                                       public void 
visitingAttributeValue(String objTraverseID, String attrName, CyAttributes 
attrs, Object[] keySpace, Object visitedValue) {
+                                               bag.addAttribute(attrName, 
visitedValue);
+                                       }
+                               });
                        }
                }
 

-- 
You received this message because you are subscribed to the Google Groups 
"cytoscape-cvs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/cytoscape-cvs?hl=en.

Reply via email to