Author: clopes
Date: 2012-07-11 12:07:58 -0700 (Wed, 11 Jul 2012)
New Revision: 29839

Modified:
   core3/impl/trunk/group-session-restore-shim/
   
core3/impl/trunk/group-session-restore-shim/src/main/java/org/cytoscape/group/session/restore/shim/internal/SessionEventsListener.java
Log:
Minor changes to support old Cy2 edge Ids (serialized as strings) when 
retrieving the external edges from groups metadata (see bug #727).


Property changes on: core3/impl/trunk/group-session-restore-shim
___________________________________________________________________
Modified: svn:ignore
   - target

   + target
.settings
.classpath
.project


Modified: 
core3/impl/trunk/group-session-restore-shim/src/main/java/org/cytoscape/group/session/restore/shim/internal/SessionEventsListener.java
===================================================================
--- 
core3/impl/trunk/group-session-restore-shim/src/main/java/org/cytoscape/group/session/restore/shim/internal/SessionEventsListener.java
      2012-07-11 18:57:55 UTC (rev 29838)
+++ 
core3/impl/trunk/group-session-restore-shim/src/main/java/org/cytoscape/group/session/restore/shim/internal/SessionEventsListener.java
      2012-07-11 19:07:58 UTC (rev 29839)
@@ -88,14 +88,22 @@
                        // Create the group
                        final CyGroup group = groupFactory.createGroup(net, n, 
true);
 
-                       // Add in the missing external edges if we're collsped
+                       // Add in the missing external edges if we're collapsed
                        // CyRow groupNodeRow = net.getRow(n, 
CyNetwork.HIDDEN_ATTRS);
                        if (rnRow.isSet(EXTERNAL_EDGE_ATTRIBUTE)) {
-                               List<Long> externalSUIDs = 
rnRow.getList(EXTERNAL_EDGE_ATTRIBUTE, Long.class);
+                               Class<?> listType = 
rnRow.getTable().getColumn(EXTERNAL_EDGE_ATTRIBUTE).getListElementType();
+                               List<?> externalIDs = 
rnRow.getList(EXTERNAL_EDGE_ATTRIBUTE, listType);
                                List<CyEdge> externalEdges = new 
ArrayList<CyEdge>();
-                               for (Long oldSUID: externalSUIDs) {
-                                       CyEdge newEdge = 
sess.getObject(oldSUID, CyEdge.class);
-                                       externalEdges.add(newEdge);
+                               for (Object oldId: externalIDs) {
+                                       CyEdge newEdge = null;
+                                       
+                                       if (oldId instanceof Long) // Cy3 old 
edge IDs are SUIDs
+                                               newEdge = 
sess.getObject((Long)oldId, CyEdge.class);
+                                       else // Cy2 uses edge labels as IDs
+                                               newEdge = 
sess.getObject(oldId.toString(), CyEdge.class);
+                                               
+                                       if (newEdge != null)
+                                               externalEdges.add(newEdge);
                                }
                                group.addEdges(externalEdges);
                        }

-- 
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