Author: clopes
Date: 2012-08-08 11:02:21 -0700 (Wed, 08 Aug 2012)
New Revision: 30125

Modified:
   
csplugins/trunk/ucsd/mes/cy3-shared-local-tables/impl/io-impl/impl/src/main/java/org/cytoscape/io/internal/CyActivator.java
   
csplugins/trunk/ucsd/mes/cy3-shared-local-tables/impl/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/SUIDUpdater.java
   
csplugins/trunk/ucsd/mes/cy3-shared-local-tables/impl/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/session/Cy3SessionReaderImpl.java
   
csplugins/trunk/ucsd/mes/cy3-shared-local-tables/impl/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/xgmml/ObjectTypeMap.java
   
csplugins/trunk/ucsd/mes/cy3-shared-local-tables/impl/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/xgmml/handler/AttributeValueUtil.java
   
csplugins/trunk/ucsd/mes/cy3-shared-local-tables/impl/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/xgmml/handler/HandleGraphDone.java
   
csplugins/trunk/ucsd/mes/cy3-shared-local-tables/impl/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/xgmml/handler/HandleListAttribute.java
   
csplugins/trunk/ucsd/mes/cy3-shared-local-tables/impl/io-impl/impl/src/main/java/org/cytoscape/io/internal/util/ReadCache.java
   
csplugins/trunk/ucsd/mes/cy3-shared-local-tables/impl/io-impl/impl/src/test/java/org/cytoscape/io/internal/read/SUIDUpdaterTest.java
   
csplugins/trunk/ucsd/mes/cy3-shared-local-tables/impl/io-impl/impl/src/test/java/org/cytoscape/io/internal/read/xgmml/GenericXGMMLReaderTest.java
Log:
Fixed SUIDUpdater to work with shared/local tables.

Modified: 
csplugins/trunk/ucsd/mes/cy3-shared-local-tables/impl/io-impl/impl/src/main/java/org/cytoscape/io/internal/CyActivator.java
===================================================================
--- 
csplugins/trunk/ucsd/mes/cy3-shared-local-tables/impl/io-impl/impl/src/main/java/org/cytoscape/io/internal/CyActivator.java
 2012-08-08 17:55:49 UTC (rev 30124)
+++ 
csplugins/trunk/ucsd/mes/cy3-shared-local-tables/impl/io-impl/impl/src/main/java/org/cytoscape/io/internal/CyActivator.java
 2012-08-08 18:02:21 UTC (rev 30125)
@@ -189,7 +189,7 @@
                UnrecognizedVisualPropertyManager 
unrecognizedVisualPropertyManager = new 
UnrecognizedVisualPropertyManager(cyTableFactoryServiceRef,cyTableManagerServiceRef);
                GMLNetworkReaderFactory gmlNetworkViewReaderFactory = new 
GMLNetworkReaderFactory(gmlFilter,cyNetworkViewFactoryServiceRef,cyNetworkFactoryServiceRef,renderingEngineManagerServiceRef,unrecognizedVisualPropertyManager);
                
-               ReadCache readCache = new ReadCache();
+               ReadCache readCache = new 
ReadCache(cyNetworkTableManagerServiceRef);
                SUIDUpdater suidUpdater = new SUIDUpdater();
                ReadDataManager readDataManager = new 
ReadDataManager(readCache,suidUpdater,equationCompilerServiceRef,cyNetworkFactoryServiceRef,cyRootNetworkManagerServiceRef);
                

Modified: 
csplugins/trunk/ucsd/mes/cy3-shared-local-tables/impl/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/SUIDUpdater.java
===================================================================
--- 
csplugins/trunk/ucsd/mes/cy3-shared-local-tables/impl/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/SUIDUpdater.java
    2012-08-08 17:55:49 UTC (rev 30124)
+++ 
csplugins/trunk/ucsd/mes/cy3-shared-local-tables/impl/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/SUIDUpdater.java
    2012-08-08 18:02:21 UTC (rev 30125)
@@ -1,12 +1,12 @@
 package org.cytoscape.io.internal.read;
 
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
-import java.util.WeakHashMap;
 
 import org.cytoscape.model.CyColumn;
 import org.cytoscape.model.CyRow;
@@ -18,10 +18,10 @@
  */
 public class SUIDUpdater {
 
-       private static final String SUID_COLUMN_SUFFIX = ".SUID";
+       public static final String SUID_COLUMN_SUFFIX = ".SUID";
        
        private Map<Long/*old SUID*/, Long/*new SUID*/> suidMap;
-       private Map<CyTable, Set<String>/*column names*/> suidColumnMap;
+       private Set<CyTable> tables;
        
        public SUIDUpdater() {
                init();
@@ -29,7 +29,7 @@
        
        public void init() {
                suidMap = new HashMap<Long, Long>();
-               suidColumnMap = new WeakHashMap<CyTable, Set<String>>();
+               tables = new HashSet<CyTable>();
        }
        
        public void addSUIDMapping(final Long oldSUID, final Long newSUID) {
@@ -37,46 +37,57 @@
                        suidMap.put(oldSUID, newSUID);
        }
        
-       public Long getNewSUID(final Long oldSUID) {
-               return suidMap.get(oldSUID);
+       public void addTable(final CyTable table) {
+               tables.add(table);
        }
        
-       public void addSUIDColumn(final CyTable table, final String name) {
-               Set<String> columnNames = suidColumnMap.get(table);
-               
-               if (columnNames == null) {
-                       columnNames = new HashSet<String>();
-                       suidColumnMap.put(table, columnNames);
-               }
-               
-               columnNames.add(name);
+       public void addTables(final Set<CyTable> networkTables) {
+               if (networkTables != null)
+                       tables.addAll(networkTables);
        }
        
        public void updateSUIDColumns() {
-               for (final Map.Entry<CyTable, Set<String>> entry : 
suidColumnMap.entrySet()) {
-                       final CyTable tbl = entry.getKey();
-                       final Set<String> columnNames = entry.getValue();
+               final Set<CyColumn> updated = new HashSet<CyColumn>();
+       
+               for (final CyTable tbl : tables) {
+                       final Collection<CyColumn> columns = tbl.getColumns();
                        
-                       for (final String name : columnNames)
-                               updateRows(tbl, name);
+                       for (final CyColumn c : columns) {
+                               if (isUpdatableSUIDColumn(c) && 
!updated.contains(c)) {
+                                       updateRows(tbl, c);
+                                       updated.add(c);
+                               }
+                       }
                }
        }
        
+       public static boolean isUpdatableSUIDColumn(final CyColumn column) {
+               if (column != null
+                               && !column.isPrimaryKey()
+                               && !column.getVirtualColumnInfo().isVirtual()
+                               && (column.getType() == Long.class ||
+                                               
(Collection.class.isAssignableFrom(column.getType()) &&
+                                                               
column.getListElementType() == Long.class)))
+                       return isUpdatableSUIDColumnName(column.getName());
+               
+               return false;
+    }
+       
+       public static boolean isUpdatableSUIDColumnName(final String 
columnName) {
+               return columnName != null && 
columnName.endsWith(SUID_COLUMN_SUFFIX);
+       }
+       
        public void dispose() {
                init();
        }
        
-       public static boolean isUpdatableSUIDColumn(final String columnName) {
-       return columnName != null && columnName.endsWith(SUID_COLUMN_SUFFIX);
-    }
-       
        @Override
        public String toString() {
-               return "SUIDUpdater{ suidMap=" + suidMap + ", suidColumnMap=" + 
suidColumnMap + " }";
+               return "SUIDUpdater{ suidMap=" + suidMap + ", tables=" + tables 
+ " }";
        }
-
-       private void updateRows(final CyTable tbl, final String columnName) {
-               final CyColumn column = tbl.getColumn(columnName);
+       
+       private void updateRows(final CyTable tbl, final CyColumn column) {
+               final String columnName = column.getName();
                final Class<?> type = column.getType();
                final Class<?> listType = column.getListElementType();
                
@@ -106,4 +117,8 @@
                        }
                }
        }
+       
+       private Long getNewSUID(final Long oldSUID) {
+               return suidMap.get(oldSUID);
+       }
 }

Modified: 
csplugins/trunk/ucsd/mes/cy3-shared-local-tables/impl/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/session/Cy3SessionReaderImpl.java
===================================================================
--- 
csplugins/trunk/ucsd/mes/cy3-shared-local-tables/impl/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/session/Cy3SessionReaderImpl.java
   2012-08-08 17:55:49 UTC (rev 30124)
+++ 
csplugins/trunk/ucsd/mes/cy3-shared-local-tables/impl/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/session/Cy3SessionReaderImpl.java
   2012-08-08 18:02:21 UTC (rev 30125)
@@ -300,7 +300,7 @@
                        builderFilenameMap.put(builder, filename);
                        
                        // Look for SUID-type columns--only global tables now
-                       findSUIDColumns(table);
+                       suidUpdater.addTable(table);
                }
        }
 
@@ -500,12 +500,12 @@
                        networkTableMgr.setTable(network, type, namespace, src);
                        builder.setCyTable(src);
                        
-                       findSUIDColumns(src);
+                       suidUpdater.addTable(src);
                } else {
                        mergeTables(src, tgt, type);
                        builder.setCyTable(tgt);
                        
-                       findSUIDColumns(tgt);
+                       suidUpdater.addTable(tgt);
                }
        }
        
@@ -561,13 +561,6 @@
                }
        }
        
-       private void findSUIDColumns(final CyTable table) {
-               for (final CyColumn column : table.getColumns()) {
-                       if (SUIDUpdater.isUpdatableSUIDColumn(column.getName()))
-                               suidUpdater.addSUIDColumn(table, 
column.getName());
-               }
-       }
-       
        private void updateSUIDColumns() {
                suidUpdater.updateSUIDColumns();
        }

Modified: 
csplugins/trunk/ucsd/mes/cy3-shared-local-tables/impl/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/xgmml/ObjectTypeMap.java
===================================================================
--- 
csplugins/trunk/ucsd/mes/cy3-shared-local-tables/impl/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/xgmml/ObjectTypeMap.java
    2012-08-08 17:55:49 UTC (rev 30124)
+++ 
csplugins/trunk/ucsd/mes/cy3-shared-local-tables/impl/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/xgmml/ObjectTypeMap.java
    2012-08-08 18:02:21 UTC (rev 30125)
@@ -44,7 +44,7 @@
                 break;
             case REAL:
                 if (value != null) {
-                       if (SUIDUpdater.isUpdatableSUIDColumn(name))
+                       if (SUIDUpdater.isUpdatableSUIDColumnName(name))
                                typedValue = new Long(value);
                        else
                                typedValue = new Double(value);

Modified: 
csplugins/trunk/ucsd/mes/cy3-shared-local-tables/impl/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/xgmml/handler/AttributeValueUtil.java
===================================================================
--- 
csplugins/trunk/ucsd/mes/cy3-shared-local-tables/impl/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/xgmml/handler/AttributeValueUtil.java
       2012-08-08 17:55:49 UTC (rev 30124)
+++ 
csplugins/trunk/ucsd/mes/cy3-shared-local-tables/impl/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/xgmml/handler/AttributeValueUtil.java
       2012-08-08 18:02:21 UTC (rev 30125)
@@ -251,7 +251,7 @@
                                break;
                        case REAL:
                                if (name != null) {
-                                       if 
(SUIDUpdater.isUpdatableSUIDColumn(name))
+                                       if 
(SUIDUpdater.isUpdatableSUIDColumnName(name))
                                                setAttribute(row, name, 
Long.class, (Long) value);
                                        else
                                                setAttribute(row, name, 
Double.class, (Double) value);
@@ -276,9 +276,6 @@
                                if (column != null && 
List.class.isAssignableFrom(column.getType()))
                                        row.set(name, null);
                                
-                               if (SUIDUpdater.isUpdatableSUIDColumn(name))
-                       manager.getSUIDUpdater().addSUIDColumn(row.getTable(), 
name);
-                               
                                return ParseState.LIST_ATT;
                }
 
@@ -299,9 +296,6 @@
             
             if (value != null) {
                row.set(name, value);
-               
-               if (SUIDUpdater.isUpdatableSUIDColumn(name))
-                       manager.getSUIDUpdater().addSUIDColumn(row.getTable(), 
name);
             }
         }
     }

Modified: 
csplugins/trunk/ucsd/mes/cy3-shared-local-tables/impl/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/xgmml/handler/HandleGraphDone.java
===================================================================
--- 
csplugins/trunk/ucsd/mes/cy3-shared-local-tables/impl/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/xgmml/handler/HandleGraphDone.java
  2012-08-08 17:55:49 UTC (rev 30124)
+++ 
csplugins/trunk/ucsd/mes/cy3-shared-local-tables/impl/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/xgmml/handler/HandleGraphDone.java
  2012-08-08 18:02:21 UTC (rev 30125)
@@ -30,6 +30,7 @@
 import java.util.Map;
 import java.util.Set;
 
+import org.cytoscape.io.internal.read.SUIDUpdater;
 import org.cytoscape.io.internal.read.xgmml.ParseState;
 import org.cytoscape.model.CyEdge;
 import org.cytoscape.model.CyNetwork;
@@ -144,7 +145,9 @@
        
        private void updateSUIDAttributes() {
                if (!manager.isSessionFormat()) {
-                       manager.getSUIDUpdater().updateSUIDColumns();
+                       final SUIDUpdater updater = manager.getSUIDUpdater();
+                       
updater.addTables(manager.getCache().getNetworkTables());
+                       updater.updateSUIDColumns();
                }
        }
 }

Modified: 
csplugins/trunk/ucsd/mes/cy3-shared-local-tables/impl/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/xgmml/handler/HandleListAttribute.java
===================================================================
--- 
csplugins/trunk/ucsd/mes/cy3-shared-local-tables/impl/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/xgmml/handler/HandleListAttribute.java
      2012-08-08 17:55:49 UTC (rev 30124)
+++ 
csplugins/trunk/ucsd/mes/cy3-shared-local-tables/impl/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/xgmml/handler/HandleListAttribute.java
      2012-08-08 18:02:21 UTC (rev 30125)
@@ -53,7 +53,7 @@
                 clazz = Boolean.class;
                 break;
             case REAL:
-                clazz = SUIDUpdater.isUpdatableSUIDColumn(name) ? Long.class : 
Double.class;
+                clazz = SUIDUpdater.isUpdatableSUIDColumnName(name) ? 
Long.class : Double.class;
                 break;
             case INTEGER:
                 clazz = Integer.class;

Modified: 
csplugins/trunk/ucsd/mes/cy3-shared-local-tables/impl/io-impl/impl/src/main/java/org/cytoscape/io/internal/util/ReadCache.java
===================================================================
--- 
csplugins/trunk/ucsd/mes/cy3-shared-local-tables/impl/io-impl/impl/src/main/java/org/cytoscape/io/internal/util/ReadCache.java
      2012-08-08 17:55:49 UTC (rev 30124)
+++ 
csplugins/trunk/ucsd/mes/cy3-shared-local-tables/impl/io-impl/impl/src/main/java/org/cytoscape/io/internal/util/ReadCache.java
      2012-08-08 18:02:21 UTC (rev 30125)
@@ -28,6 +28,7 @@
 package org.cytoscape.io.internal.util;
 
 import java.util.HashMap;
+import java.util.HashSet;
 import java.util.Map;
 import java.util.Set;
 import java.util.WeakHashMap;
@@ -35,7 +36,10 @@
 import org.cytoscape.model.CyEdge;
 import org.cytoscape.model.CyIdentifiable;
 import org.cytoscape.model.CyNetwork;
+import org.cytoscape.model.CyNetworkTableManager;
 import org.cytoscape.model.CyNode;
+import org.cytoscape.model.CyTable;
+import org.cytoscape.model.subnetwork.CySubNetwork;
 import org.cytoscape.view.model.CyNetworkView;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -58,8 +62,15 @@
        private Map<CyNetwork, Set<Long>> edgeLinkMap;
        private Map<CyNode, Object/*network's id*/> networkPointerMap;
        
+       private final CyNetworkTableManager netTblMgr;
+       
        private static final Logger logger = 
LoggerFactory.getLogger(ReadCache.class);
        
+       
+       public ReadCache(final CyNetworkTableManager netTblMgr) {
+               this.netTblMgr = netTblMgr;
+       }
+
        public void init() {
                oldIdMap = new HashMap<Long, Object>();
                nodeByIdMap = new HashMap<Object, CyNode>();
@@ -197,6 +208,34 @@
                return nodeByNameMap;
        }
        
+       public Set<CyTable> getNetworkTables() {
+               final Set<CyTable> tables = new HashSet<CyTable>();
+               final Set<CyNetwork> networks = new HashSet<CyNetwork>();
+               final Class<?>[] types = new Class[] { CyNetwork.class, 
CyNode.class, CyEdge.class };
+               
+               if (networkByIdMap.values() != null)
+                       networks.addAll(networkByIdMap.values());
+               
+               for (final CyNetwork n : networks) {
+                       for (final Class t : types) {
+                               Map<String, CyTable> tabMap = 
netTblMgr.getTables(n, t);
+                               
+                               if (tabMap != null)
+                                       tables.addAll(tabMap.values());
+                               
+                               if (n instanceof CySubNetwork) {
+                                       // Don't forget the root-network tables.
+                                       tabMap = 
netTblMgr.getTables(((CySubNetwork) n).getRootNetwork(), t);
+                                       
+                                       if (tabMap != null)
+                                               tables.addAll(tabMap.values());
+                               }
+                       }
+               }
+                       
+               return tables;
+       }
+       
        public void createNetworkPointers() {
                if (networkPointerMap != null) {
                        // Iterate the rows and recreate the network pointers

Modified: 
csplugins/trunk/ucsd/mes/cy3-shared-local-tables/impl/io-impl/impl/src/test/java/org/cytoscape/io/internal/read/SUIDUpdaterTest.java
===================================================================
--- 
csplugins/trunk/ucsd/mes/cy3-shared-local-tables/impl/io-impl/impl/src/test/java/org/cytoscape/io/internal/read/SUIDUpdaterTest.java
        2012-08-08 17:55:49 UTC (rev 30124)
+++ 
csplugins/trunk/ucsd/mes/cy3-shared-local-tables/impl/io-impl/impl/src/test/java/org/cytoscape/io/internal/read/SUIDUpdaterTest.java
        2012-08-08 18:02:21 UTC (rev 30125)
@@ -1,19 +1,155 @@
 package org.cytoscape.io.internal.read;
 
 import static org.junit.Assert.*;
+
+import java.util.List;
+
+import org.cytoscape.model.CyColumn;
+import org.cytoscape.model.CyColumnTest;
+import org.cytoscape.model.CyTable;
+import org.cytoscape.model.VirtualColumnInfo;
 import org.junit.Test;
 
 public class SUIDUpdaterTest {
 
        @Test
        public void testIsUpdatableSUIDColumn() {
-               assertTrue(SUIDUpdater.isUpdatableSUIDColumn("name.SUID"));
-               assertFalse(SUIDUpdater.isUpdatableSUIDColumn("name.suid")); // 
Case sensitive!
-               assertFalse(SUIDUpdater.isUpdatableSUIDColumn("name.Suid"));
-               assertFalse(SUIDUpdater.isUpdatableSUIDColumn("name.id"));
-               assertFalse(SUIDUpdater.isUpdatableSUIDColumn("SUID"));
-               assertFalse(SUIDUpdater.isUpdatableSUIDColumn("suid"));
-               assertFalse(SUIDUpdater.isUpdatableSUIDColumn(""));
-               assertFalse(SUIDUpdater.isUpdatableSUIDColumn(null));
+               
assertTrue(SUIDUpdater.isUpdatableSUIDColumn(newColumn("name.SUID", Long.class, 
false, false)));
+               
assertFalse(SUIDUpdater.isUpdatableSUIDColumn(newColumn("name.SUID", 
Integer.class, false, false)));
+               
assertFalse(SUIDUpdater.isUpdatableSUIDColumn(newColumn("name.SUID", 
Double.class, false, false)));
+               
assertFalse(SUIDUpdater.isUpdatableSUIDColumn(newColumn("name.SUID", 
String.class, false, false)));
+               
assertFalse(SUIDUpdater.isUpdatableSUIDColumn(newColumn("name.SUID", 
Boolean.class, false, false)));
+               
assertFalse(SUIDUpdater.isUpdatableSUIDColumn(newColumn("name.SUID", 
Long.class, true, false)));
+               
assertFalse(SUIDUpdater.isUpdatableSUIDColumn(newColumn("name.SUID", 
Long.class, false, true)));
+               
+               
assertFalse(SUIDUpdater.isUpdatableSUIDColumn(newColumn("name.suid", 
Long.class, false, false))); // Case sensitive!
+               
assertFalse(SUIDUpdater.isUpdatableSUIDColumn(newColumn("name.Suid", 
Long.class, false, false)));
+               
assertFalse(SUIDUpdater.isUpdatableSUIDColumn(newColumn("name.id", Long.class, 
false, false)));
+               assertFalse(SUIDUpdater.isUpdatableSUIDColumn(newColumn("SUID", 
Long.class, false, false)));
+               assertFalse(SUIDUpdater.isUpdatableSUIDColumn(newColumn("suid", 
Long.class, false, false)));
+               assertFalse(SUIDUpdater.isUpdatableSUIDColumn(newColumn("", 
Long.class, false, false)));
+               assertFalse(SUIDUpdater.isUpdatableSUIDColumn(newColumn(null, 
Long.class, false, false)));
+               
+               // List column
+               
assertTrue(SUIDUpdater.isUpdatableSUIDColumn(newListColumn("list.SUID", 
Long.class, false, false)));
+               
assertFalse(SUIDUpdater.isUpdatableSUIDColumn(newListColumn("list.SUID", 
Integer.class, false, false)));
+               
assertFalse(SUIDUpdater.isUpdatableSUIDColumn(newListColumn("list.SUID", 
Double.class, false, false)));
+               
assertFalse(SUIDUpdater.isUpdatableSUIDColumn(newListColumn("list.SUID", 
String.class, false, false)));
+               
assertFalse(SUIDUpdater.isUpdatableSUIDColumn(newListColumn("list.SUID", 
Boolean.class, false, false)));
+               
assertFalse(SUIDUpdater.isUpdatableSUIDColumn(newListColumn("list.SUID", 
Long.class, true, false)));
+               
assertFalse(SUIDUpdater.isUpdatableSUIDColumn(newListColumn("list.SUID", 
Long.class, false, true)));
        }
+       
+       private CyColumn newColumn(final String name, final Class<?> type, 
final boolean isPK, final boolean isVirtual) {
+               return new DummyColumn(name, type, null, isPK, new 
DummyVirtualColumnInfo(isVirtual));
+       }
+       
+       private CyColumn newListColumn(final String name, final Class<?> type, 
final boolean isPK, final boolean isVirtual) {
+               return new DummyColumn(name, List.class, type, isPK, new 
DummyVirtualColumnInfo(isVirtual));
+       }
+       
+       static class DummyColumn implements CyColumn {
+               private String name;
+               private Class<?> type;
+               private Class<?> listType;
+               private boolean isPK;
+               private VirtualColumnInfo virtualInfo;
+
+               public DummyColumn(String name, Class<?> type, Class<?> 
listType, boolean isPK, VirtualColumnInfo virtualInfo) {
+                       this.name = name;
+                       this.type = type;
+                       this.listType = listType;
+                       this.isPK = isPK;
+                       this.virtualInfo = virtualInfo;
+               }
+
+               @Override
+               public void setName(String newName) {
+                       this.name = newName;
+               }
+               
+               @Override
+               public boolean isPrimaryKey() {
+                       return isPK;
+               }
+               
+               @Override
+               public boolean isImmutable() {
+                       return false;
+               }
+               
+               @Override
+               public VirtualColumnInfo getVirtualColumnInfo() {
+                       return virtualInfo;
+               }
+               
+               @Override
+               public <T> List<T> getValues(Class<? extends T> type) {
+                       return null;
+               }
+               
+               @Override
+               public Class<?> getType() {
+                       return type;
+               }
+               
+               @Override
+               public CyTable getTable() {
+                       return null;
+               }
+               
+               @Override
+               public String getName() {
+                       return name;
+               }
+               
+               @Override
+               public Class<?> getListElementType() {
+                       return listType;
+               }
+               
+               @Override
+               public Object getDefaultValue() {
+                       return null;
+               }
+       };
+       
+       private static class DummyVirtualColumnInfo implements 
VirtualColumnInfo {
+
+               private final boolean isVirtual;
+               
+               public DummyVirtualColumnInfo(boolean isVirtual) {
+                       this.isVirtual = isVirtual;
+               }
+
+               @Override
+               public boolean isVirtual() {
+                       return isVirtual;
+               }
+
+               @Override
+               public String getSourceColumn() {
+                       return null;
+               }
+
+               @Override
+               public String getSourceJoinKey() {
+                       return null;
+               }
+
+               @Override
+               public String getTargetJoinKey() {
+                       return null;
+               }
+
+               @Override
+               public CyTable getSourceTable() {
+                       return null;
+               }
+
+               @Override
+               public boolean isImmutable() {
+                       return false;
+               }
+       }
 }

Modified: 
csplugins/trunk/ucsd/mes/cy3-shared-local-tables/impl/io-impl/impl/src/test/java/org/cytoscape/io/internal/read/xgmml/GenericXGMMLReaderTest.java
===================================================================
--- 
csplugins/trunk/ucsd/mes/cy3-shared-local-tables/impl/io-impl/impl/src/test/java/org/cytoscape/io/internal/read/xgmml/GenericXGMMLReaderTest.java
   2012-08-08 17:55:49 UTC (rev 30124)
+++ 
csplugins/trunk/ucsd/mes/cy3-shared-local-tables/impl/io-impl/impl/src/test/java/org/cytoscape/io/internal/read/xgmml/GenericXGMMLReaderTest.java
   2012-08-08 18:02:21 UTC (rev 30125)
@@ -8,6 +8,7 @@
 import java.io.File;
 import java.io.FileInputStream;
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 
 import org.cytoscape.ding.NetworkViewTestSupport;
@@ -20,8 +21,10 @@
 import org.cytoscape.io.internal.util.session.SessionUtil;
 import org.cytoscape.model.CyColumn;
 import org.cytoscape.model.CyEdge;
+import org.cytoscape.model.CyIdentifiable;
 import org.cytoscape.model.CyNetwork;
 import org.cytoscape.model.CyNetworkFactory;
+import org.cytoscape.model.CyNetworkTableManager;
 import org.cytoscape.model.CyNode;
 import org.cytoscape.model.CyRow;
 import org.cytoscape.model.CyTable;
@@ -44,6 +47,7 @@
        CyNetworkViewFactory networkViewFactory;
        CyNetworkFactory networkFactory;
        CyRootNetworkManager rootNetworkMgr;
+       CyNetworkTableManager netTablMgr;
        CyTableFactory tableFactory;
        RenderingEngineManager renderingEngineMgr;
        ReadDataManager readDataMgr;
@@ -67,11 +71,12 @@
                NetworkTestSupport networkTestSupport = new 
NetworkTestSupport();
                networkFactory = networkTestSupport.getNetworkFactory();
                rootNetworkMgr = networkTestSupport.getRootNetworkFactory();
+               netTablMgr = networkTestSupport.getNetworkTableManager();
                
                NetworkViewTestSupport networkViewTestSupport = new 
NetworkViewTestSupport();
                networkViewFactory = 
networkViewTestSupport.getNetworkViewFactory();
                
-               readCache = new ReadCache();
+               readCache = new ReadCache(netTablMgr);
                suidUpdater = new SUIDUpdater();
                readDataMgr = new ReadDataManager(readCache, suidUpdater, 
mock(EquationCompiler.class), networkFactory, rootNetworkMgr);
                

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