Author: clopes
Date: 2012-02-08 14:02:54 -0800 (Wed, 08 Feb 2012)
New Revision: 28214
Modified:
core3/api/trunk/session-api/src/main/java/org/cytoscape/session/CySession.java
core3/api/trunk/session-api/src/test/java/org/cytoscape/session/CySessionTest.java
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/session/AbstractSessionReader.java
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/session/Cy2SessionReaderImpl.java
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/session/Cy3SessionReaderImpl.java
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/xgmml/handler/HandleEdgeHandleDone.java
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/util/ReadCache.java
Log:
Fixes #350 : CySessions need some way of mapping SUID from old objecs to the
new restored objects
Modified:
core3/api/trunk/session-api/src/main/java/org/cytoscape/session/CySession.java
===================================================================
---
core3/api/trunk/session-api/src/main/java/org/cytoscape/session/CySession.java
2012-02-08 19:51:33 UTC (rev 28213)
+++
core3/api/trunk/session-api/src/main/java/org/cytoscape/session/CySession.java
2012-02-08 22:02:54 UTC (rev 28214)
@@ -36,10 +36,14 @@
import java.util.Set;
import org.cytoscape.model.CyNetwork;
+import org.cytoscape.model.CyNode;
+import org.cytoscape.model.CyTableEntry;
import org.cytoscape.model.CyTableMetadata;
import org.cytoscape.property.CyProperty;
import org.cytoscape.view.model.CyNetworkView;
import org.cytoscape.view.vizmap.VisualStyle;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* A session is an immutable snapshot of the data contents of Cytoscape.
@@ -66,20 +70,28 @@
private final Set<CyNetwork> networks;
private final Set<CyNetworkView> netViews;
private final Set<CyTableMetadata> tables;
- private final Map<CyNetworkView,String> vsMap;
+ private final Map<CyNetworkView, String> vsMap;
private final Set<CyProperty<?>> properties;
private final Set<VisualStyle> visualStyles;
private final Map<String, List<File>> appFiles;
+ private final Map<Class<? extends CyTableEntry>, Map<Object, ? extends
CyTableEntry>> objectMap;
+ private static final Logger logger =
LoggerFactory.getLogger(CySession.class);
+
private CySession(Builder b) {
// Make defensive copies of objects
networks = Collections.unmodifiableSet( b.networks == null ?
new HashSet<CyNetwork>() : b.networks );
netViews = Collections.unmodifiableSet( b.netViews == null ?
new HashSet<CyNetworkView>() : b.netViews );
tables = Collections.unmodifiableSet( b.tables == null ? new
HashSet<CyTableMetadata>() : b.tables );
- vsMap = Collections.unmodifiableMap( b.vsMap == null ? new
HashMap<CyNetworkView,String>() : b.vsMap );
+ vsMap = Collections.unmodifiableMap( b.vsMap == null ? new
HashMap<CyNetworkView, String>() : b.vsMap );
properties = Collections.unmodifiableSet( b.properties == null
? new HashSet<CyProperty<?>>() : b.properties );
visualStyles = Collections.unmodifiableSet( b.visualStyles ==
null ? new HashSet<VisualStyle>() : b.visualStyles );
appFiles = Collections.unmodifiableMap( b.appFiles == null ?
new HashMap<String, List<File>>() : b.appFiles );
+
+ if (b.objectMap == null)
+ objectMap = Collections.unmodifiableMap(new
HashMap<Class<? extends CyTableEntry>, Map<Object, ? extends CyTableEntry>>());
+ else
+ objectMap = Collections.unmodifiableMap(b.objectMap);
}
/**
@@ -91,10 +103,11 @@
private Set<CyNetwork> networks;
private Set<CyNetworkView> netViews;
private Set<CyTableMetadata> tables;
- private Map<CyNetworkView,String> vsMap;
+ private Map<CyNetworkView, String> vsMap;
private Set<CyProperty<?>> properties;
private Set<VisualStyle> visualStyles;
- private Map<String, List<File>> appFiles;
+ private Map<String, List<File>> appFiles;
+ private Map<Class<? extends CyTableEntry>, Map<Object, ?
extends CyTableEntry>> objectMap;
/**
* Returns a complete instance of CySession based upon the
methods called on this instance of Builder.
@@ -141,7 +154,7 @@
* @return An instance of Builder that has at least been
configured with the specified network view visual style
* name map.
*/
- public Builder viewVisualStyleMap(final Map<CyNetworkView,String> vs)
{
+ public Builder viewVisualStyleMap(final Map<CyNetworkView, String> vs)
{
vsMap = vs;
return this;
}
@@ -178,6 +191,17 @@
this.appFiles = p;
return this;
}
+
+ /**
+ * Returns an instance of Builder that has at least been
configured with the specified old ID maps.
+ * @param map A map of {@link CyTableEntry} types to maps that
have former identifiers as keys and {@link CyNode}s,
+ * {@link CyEdge}s, {@link CyNetwork}s or {@link
CyNetworkView}s as values.
+ * @return An instance of Builder that has at least been
configured with the specified map.
+ */
+ public Builder objectMap(final Map<Class<? extends
CyTableEntry>, Map<Object, ? extends CyTableEntry>> map) {
+ this.objectMap = map;
+ return this;
+ }
}
/**
@@ -202,7 +226,7 @@
* Returns a map of CyNetworkViews to the names of the VisualStyle
applied to that network view in this session.
* @return A map of CyNetworkViews to the names of the VisualStyle
applied to that network view in this session.
*/
- public Map<CyNetworkView,String> getViewVisualStyleMap() { return vsMap; }
+ public Map<CyNetworkView, String> getViewVisualStyleMap() { return vsMap; }
/**
* Returns a set of {@link CyProperty} objects defined for this session.
@@ -221,4 +245,35 @@
* @return A map of app names to lists of File objects that are stored
as part of the session for the specified app.
*/
public Map<String, List<File>> getAppFileListMap() { return appFiles; }
+
+ /**
+ * When a session is restored, Cytoscape automatically generates new
SUIDs. This method returns an object
+ * ({@link CyNode}, {@link CyEdge}, {@link CyNetwork} or {@link
CyNetworkView}) given its former identifier.<br/>
+ * If the original version of the restored session is 3.0 or higher,
the former ID is an SUID, which is a
+ * {@link java.lang.Long}. However, if the session was recreated from a
2.x format, the former identifier is a
+ * {@link java.lang.String} (e.g. the network's name).<br/>
+ * @param oldId The former ID.
+ * @param type The Class of the object to be returned ({@link CyNode},
{@link CyEdge}, {@link CyNetwork} or
+ * {@link CyNetworkView}).
+ * @return An object ({@link CyNode}, {@link CyEdge}, {@link CyNetwork}
or {@link CyNetworkView}) given its former
+ * identifier.
+ */
+ @SuppressWarnings("unchecked")
+ public <T extends CyTableEntry> T getObject(Object oldId, Class<T>
type) {
+ T tableEntry = null;
+ Map<Object, ? extends CyTableEntry> objByIdMap =
objectMap.get(type);
+
+ if (objByIdMap != null) {
+ Object obj = objByIdMap.get(oldId);
+
+ try {
+ tableEntry = (T) obj;
+ } catch (ClassCastException cce) { // TODO: should it
just throw the Exception?
+ logger.error("ClassCastException: Tried to cast
object " + obj + " to " + type + " (old id = " + oldId
+ + ")");
+ }
+ }
+
+ return tableEntry;
+ }
}
Modified:
core3/api/trunk/session-api/src/test/java/org/cytoscape/session/CySessionTest.java
===================================================================
---
core3/api/trunk/session-api/src/test/java/org/cytoscape/session/CySessionTest.java
2012-02-08 19:51:33 UTC (rev 28213)
+++
core3/api/trunk/session-api/src/test/java/org/cytoscape/session/CySessionTest.java
2012-02-08 22:02:54 UTC (rev 28214)
@@ -2,6 +2,8 @@
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertSame;
import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.mock;
@@ -14,11 +16,16 @@
import java.util.Properties;
import java.util.Set;
+import org.cytoscape.model.CyEdge;
+import org.cytoscape.model.CyNetwork;
+import org.cytoscape.model.CyNode;
import org.cytoscape.model.CyTable;
+import org.cytoscape.model.CyTableEntry;
import org.cytoscape.model.CyTableMetadata;
import org.cytoscape.property.CyProperty;
import org.cytoscape.property.SimpleCyProperty;
import org.cytoscape.view.model.CyNetworkView;
+import org.cytoscape.view.model.View;
import org.cytoscape.view.vizmap.VisualStyle;
import org.junit.Test;
@@ -220,6 +227,56 @@
assertEquals(l2,session.getAppFileListMap().get("app2"));
}
+ @Test
+ public void testSetNullObjectMap() {
+ session = new CySession.Builder().objectMap(null).build();
+ assertNotNull(session);
+ assertNull(session.getObject(1, CyNode.class));
+ assertNull(session.getObject(1, CyEdge.class));
+ assertNull(session.getObject(1, CyNetwork.class));
+ assertNull(session.getObject(1, CyNetworkView.class));
+ assertNull(session.getObject(1, View.class));
+ }
+
+ @Test
+ public void testSetObjectMap() {
+ Map<Object, CyNetwork> netMap = new HashMap<Object,
CyNetwork>();
+ CyNetwork net1 = mock(CyNetwork.class);
+ netMap.put("A", net1);
+ CyNetwork net2 = mock(CyNetwork.class);
+ netMap.put("B", net2);
+
+ Map<Object, CyNetworkView> viewMap = new HashMap<Object,
CyNetworkView>();
+ CyNetworkView view1 = mock(CyNetworkView.class);
+ viewMap.put("A", view1);
+
+ Map<Object, CyNode> nodeMap = new HashMap<Object, CyNode>();
+ CyNode n1 = mock(CyNode.class);
+ nodeMap.put(new Long(1), n1);
+ CyNode n2 = mock(CyNode.class);
+ nodeMap.put(new Long(2), n2);
+
+ Map<Object, CyEdge> edgeMap = new HashMap<Object, CyEdge>();
+ CyEdge e1 = mock(CyEdge.class);
+ edgeMap.put(new Long(3), e1);
+
+ Map<Class<? extends CyTableEntry>, Map<Object, ? extends
CyTableEntry>> objMap = new HashMap<Class<? extends CyTableEntry>, Map<Object,
? extends CyTableEntry>>();
+ objMap.put(CyNetwork.class, netMap);
+ objMap.put(CyNetworkView.class, viewMap);
+ objMap.put(CyNode.class, nodeMap);
+ objMap.put(CyEdge.class, edgeMap);
+
+ session = new CySession.Builder().objectMap(objMap).build();
+ assertNotNull(session);
+ assertSame(net1, session.getObject("A", CyNetwork.class));
+ assertSame(net2, session.getObject("B", CyNetwork.class));
+ assertSame(view1, session.getObject("A", CyNetworkView.class));
+ assertSame(n1, session.getObject(new Long(1), CyNode.class));
+ assertSame(n2, session.getObject(new Long(2), CyNode.class));
+ assertSame(e1, session.getObject(new Long(3), CyEdge.class));
+ assertNull(session.getObject("A", View.class));
+ assertNull(session.getObject("B", CyNetworkView.class));
+ }
private void checkProps(Set<CyProperty<?>> set) {
assertNotNull(set);
Modified:
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/session/AbstractSessionReader.java
===================================================================
---
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/session/AbstractSessionReader.java
2012-02-08 19:51:33 UTC (rev 28213)
+++
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/session/AbstractSessionReader.java
2012-02-08 22:02:54 UTC (rev 28214)
@@ -44,6 +44,7 @@
import org.cytoscape.io.internal.util.session.SessionUtil;
import org.cytoscape.io.read.CySessionReader;
import org.cytoscape.model.CyNetwork;
+import org.cytoscape.model.CyTableEntry;
import org.cytoscape.model.CyTableMetadata;
import org.cytoscape.property.CyProperty;
import org.cytoscape.session.CySession;
@@ -70,6 +71,7 @@
protected final Map<CyNetworkView, String> visualStyleMap = new
HashMap<CyNetworkView, String>();
protected final Set<CyTableMetadata> tableMetadata = new
HashSet<CyTableMetadata>();
protected final Map<String, List<File>> appFileListMap = new
HashMap<String, List<File>>();
+ protected final Map<Class<? extends CyTableEntry>, Map<Object, ?
extends CyTableEntry>> objectMap = new HashMap<Class<? extends CyTableEntry>,
Map<Object, ? extends CyTableEntry>>();
private boolean inputStreamRead;
@@ -105,7 +107,7 @@
public CySession getSession() {
CySession ret = new
CySession.Builder().networks(networks).networkViews(networkViews)
.viewVisualStyleMap(visualStyleMap).properties(properties).visualStyles(visualStyles)
-
.appFileListMap(appFileListMap).tables(tableMetadata)
+
.appFileListMap(appFileListMap).tables(tableMetadata).objectMap(objectMap)
.build();
return ret;
@@ -136,6 +138,11 @@
tm.setStatusMessage("Processing network pointers...");
processNetworkPointers();
+ tm.setProgress(0.98);
+ tm.setTitle("Finalize");
+ tm.setStatusMessage("Finalizing...");
+ createObjectMap();
+
tm.setProgress(1.0);
}
@@ -250,6 +257,8 @@
return is;
}
+
+ abstract void createObjectMap();
/**
* We need this class to avoid the progress-bar showing back-forth
when extract zipEntries.
Modified:
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/session/Cy2SessionReaderImpl.java
===================================================================
---
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/session/Cy2SessionReaderImpl.java
2012-02-08 19:51:33 UTC (rev 28213)
+++
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/session/Cy2SessionReaderImpl.java
2012-02-08 22:02:54 UTC (rev 28214)
@@ -193,6 +193,14 @@
super.complete(tm);
}
+ @Override
+ protected void createObjectMap() {
+ objectMap.put(CyNetwork.class, cache.getNetworkByIdMap());
+ objectMap.put(CyNetworkView.class,
cache.getNetworkViewByIdMap());
+ objectMap.put(CyNode.class, cache.getNodeByNameMap()); // In
2.x, the node name is the ID (not the XGMML id)
+ objectMap.put(CyEdge.class, cache.getEdgeByIdMap());
+ }
+
private void extractNetworks(TaskMonitor tm) throws JAXBException,
IOException {
// Extract the XGMML files
Map<String, Network> netMap = new HashMap<String, Network>();
@@ -312,6 +320,7 @@
CyNetworkView view =
reader.buildCyNetworkView(net);
networkViewLookup.put(netName,
view);
networkViews.add(view);
+ cache.cache(netName, view);
}
// }
}
@@ -426,10 +435,8 @@
if (netFrames != null) {
for (NetworkFrame nf :
netFrames.getNetworkFrame()) {
String id = nf.getFrameID();
- // TODO: convert frame title to
*old* view's SUID?
String x = nf.getX() != null ?
nf.getX().toString() : "0";
String y = nf.getY() != null ?
nf.getY().toString() : "0";
-
sb.append("
<networkFrame frameID=\""+id+"\" x=\""+x+"\" y=\""+y+"\"/>\n");
}
}
Modified:
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/session/Cy3SessionReaderImpl.java
===================================================================
---
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/session/Cy3SessionReaderImpl.java
2012-02-08 19:51:33 UTC (rev 28213)
+++
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/session/Cy3SessionReaderImpl.java
2012-02-08 22:02:54 UTC (rev 28214)
@@ -71,8 +71,10 @@
import org.cytoscape.io.read.VizmapReader;
import org.cytoscape.io.read.VizmapReaderManager;
import org.cytoscape.model.CyColumn;
+import org.cytoscape.model.CyEdge;
import org.cytoscape.model.CyNetwork;
import org.cytoscape.model.CyNetworkTableManager;
+import org.cytoscape.model.CyNode;
import org.cytoscape.model.CyRow;
import org.cytoscape.model.CyTable;
import org.cytoscape.model.CyTableEntry;
@@ -199,6 +201,14 @@
super.complete(tm);
}
+ @Override
+ protected void createObjectMap() {
+ objectMap.put(CyNetwork.class, cache.getNetworkByIdMap());
+ objectMap.put(CyNetworkView.class,
cache.getNetworkViewByIdMap());
+ objectMap.put(CyNode.class, cache.getNodeByIdMap());
+ objectMap.put(CyEdge.class, cache.getEdgeByIdMap());
+ }
+
private void extractCyTableMetadata(InputStream tmpIs, String
entryName) throws IOException {
BufferedReader reader = new BufferedReader(new
InputStreamReader(tmpIs, "UTF-8"));
virtualColumns = new ArrayList<VirtualColumnSerializer>();
@@ -306,6 +316,7 @@
final CyNetworkView view =
reader.buildCyNetworkView(network);
networkViews.add(view);
+ cache.cache(view.getSUID(), view);
// Get its visual style name
if (reader instanceof XGMMLNetworkViewReader) {
Modified:
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/xgmml/handler/HandleEdgeHandleDone.java
===================================================================
---
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/xgmml/handler/HandleEdgeHandleDone.java
2012-02-08 19:51:33 UTC (rev 28213)
+++
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/xgmml/handler/HandleEdgeHandleDone.java
2012-02-08 22:02:54 UTC (rev 28214)
@@ -34,14 +34,13 @@
public class HandleEdgeHandleDone extends AbstractHandler {
@Override
- public ParseState handle(String tag, Attributes atts, ParseState
current)
- throws SAXException {
- if (manager.edgeBendX != null && manager.edgeBendY != null
- && manager.handleList != null) {
+ public ParseState handle(String tag, Attributes atts, ParseState
current) throws SAXException {
+ if (manager.edgeBendX != null && manager.edgeBendY != null &&
manager.handleList != null) {
manager.handleList.add(manager.edgeBendX + "," +
manager.edgeBendY);
manager.edgeBendX = null;
manager.edgeBendY = null;
}
+
return current;
}
}
\ No newline at end of file
Modified:
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/util/ReadCache.java
===================================================================
---
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/util/ReadCache.java
2012-02-08 19:51:33 UTC (rev 28213)
+++
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/util/ReadCache.java
2012-02-08 22:02:54 UTC (rev 28214)
@@ -35,6 +35,7 @@
import org.cytoscape.model.CyNetwork;
import org.cytoscape.model.CyNode;
import org.cytoscape.model.CyTableEntry;
+import org.cytoscape.view.model.CyNetworkView;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -48,12 +49,13 @@
private Map<CyNode, Object/*network's id*/> networkPointerMap;
/* Maps of XML ID's to elements (the keys should be a Long if reading a
Cy3 session file) */
- private Map<Object, CyNetwork> networkById;
- private Map<Object, CyNode> nodeById;
- private Map<Object, CyEdge> edgeById;
+ private Map<Object, CyNetwork> networkByIdMap;
+ private Map<Object, CyNetworkView> networkViewByIdMap;
+ private Map<Object, CyNode> nodeByIdMap;
+ private Map<Object, CyEdge> edgeByIdMap;
/* Maps of node labels to nodes (necessary because of 2.x sessions,
which uses the node label as its session ID) */
- private Map<String, CyNode> nodeByName;
+ private Map<Object, CyNode> nodeByNameMap;
private Map<CyNetwork, Set<Long>> nodeLinkMap;
private Map<CyNetwork, Set<Long>> edgeLinkMap;
@@ -64,11 +66,12 @@
oldIdMap = new HashMap<Long, Object>();
indexMap = new HashMap<Object, Integer>();
- nodeById = new HashMap<Object, CyNode>();
- edgeById = new HashMap<Object, CyEdge>();
- networkById = new HashMap<Object, CyNetwork>();
+ nodeByIdMap = new HashMap<Object, CyNode>();
+ edgeByIdMap = new HashMap<Object, CyEdge>();
+ networkByIdMap = new HashMap<Object, CyNetwork>();
+ networkViewByIdMap = new HashMap<Object, CyNetworkView>();
- nodeByName = new HashMap<String, CyNode>();
+ nodeByNameMap = new HashMap<Object, CyNode>();
nodeLinkMap = new HashMap<CyNetwork, Set<Long>>();
edgeLinkMap = new HashMap<CyNetwork, Set<Long>>();
@@ -76,11 +79,12 @@
}
public void dispose() {
- nodeById = null;
- edgeById = null;
- networkById = null;
+ nodeByIdMap = null;
+ edgeByIdMap = null;
+ networkByIdMap = null;
+ networkViewByIdMap = null;
- nodeByName = null;
+ nodeByNameMap = null;
nodeLinkMap = null;
edgeLinkMap = null;
@@ -95,25 +99,22 @@
public void cache(Object xgmmlId, CyTableEntry element) {
int index = -1;
- if (element instanceof CyNode) {
- if (xgmmlId != null)
- nodeById.put(xgmmlId, (CyNode) element);
-
- index = ((CyNode) element).getIndex();
- } else if (element instanceof CyEdge) {
- if (xgmmlId != null)
- edgeById.put(xgmmlId, (CyEdge) element);
-
- index = ((CyEdge) element).getIndex();
- } else if (element instanceof CyNetwork) {
- if (xgmmlId != null)
- networkById.put(xgmmlId, (CyNetwork) element);
- }
-
- if (xgmmlId != null) {
- oldIdMap.put(element.getSUID(), xgmmlId);
+ if (xgmmlId != null) {
+ if (element instanceof CyNode) {
+ nodeByIdMap.put(xgmmlId, (CyNode) element);
+ index = ((CyNode) element).getIndex();
+ } else if (element instanceof CyEdge) {
+ edgeByIdMap.put(xgmmlId, (CyEdge) element);
+ index = ((CyEdge) element).getIndex();
+ } else if (element instanceof CyNetwork) {
+ networkByIdMap.put(xgmmlId, (CyNetwork)
element);
+ } else if (element instanceof CyNetworkView) {
+ networkViewByIdMap.put(xgmmlId, (CyNetworkView)
element);
+ }
+
+ oldIdMap.put(element.getSUID(), xgmmlId);
indexMap.put(xgmmlId, index);
- }
+ }
}
/**
@@ -123,7 +124,7 @@
*/
public void cacheNodeByName(String name, CyNode node) {
if (name != null && !name.isEmpty() && node != null)
- nodeByName.put(name, node);
+ nodeByNameMap.put(name, node);
}
public void addNetworkPointer(CyNode node, Object networkId) {
@@ -142,11 +143,13 @@
@SuppressWarnings("unchecked")
public <T extends CyTableEntry> T getObjectById(Object oldId, Class<T>
type) {
if (type == CyNetwork.class)
- return (T) networkById.get(oldId);
+ return (T) networkByIdMap.get(oldId);
+ if (type == CyNetworkView.class)
+ return (T) networkViewByIdMap.get(oldId);
if (type == CyNode.class)
- return (T) nodeById.get(oldId);
+ return (T) nodeByIdMap.get(oldId);
if (type == CyEdge.class)
- return (T) edgeById.get(oldId);
+ return (T) edgeByIdMap.get(oldId);
return null;
}
@@ -156,19 +159,23 @@
}
public CyNetwork getNetwork(Object oldId) {
- return networkById.get(oldId);
+ return networkByIdMap.get(oldId);
}
+ public CyNetworkView getNetworkView(Object oldId) {
+ return networkViewByIdMap.get(oldId);
+ }
+
public CyNode getNode(Object oldId) {
- return nodeById.get(oldId);
+ return nodeByIdMap.get(oldId);
}
public CyEdge getEdge(Object oldId) {
- return edgeById.get(oldId);
+ return edgeByIdMap.get(oldId);
}
public CyNode getNodeByName(String nodeName) {
- return nodeByName.get(nodeName);
+ return nodeByNameMap.get(nodeName);
}
public Map<CyNetwork, Set<Long>> getNodeLinks() {
@@ -179,6 +186,26 @@
return edgeLinkMap;
}
+ public Map<Object, CyNetwork> getNetworkByIdMap() {
+ return networkByIdMap;
+ }
+
+ public Map<Object, CyNetworkView> getNetworkViewByIdMap() {
+ return networkViewByIdMap;
+ }
+
+ public Map<Object, CyNode> getNodeByIdMap() {
+ return nodeByIdMap;
+ }
+
+ public Map<Object, CyEdge> getEdgeByIdMap() {
+ return edgeByIdMap;
+ }
+
+ public Map<Object, CyNode> getNodeByNameMap() {
+ return nodeByNameMap;
+ }
+
public void createNetworkPointers() {
if (networkPointerMap != null) {
// Iterate the rows and recreate the network pointers
--
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.