Author: jgao
Date: 2012-03-21 15:35:16 -0700 (Wed, 21 Mar 2012)
New Revision: 28608
Modified:
core3/impl/trunk/network-merge-impl/src/main/java/org/cytoscape/network/merge/internal/AbstractNetworkMerge.java
core3/impl/trunk/network-merge-impl/src/main/java/org/cytoscape/network/merge/internal/AttributeBasedNetworkMerge.java
core3/impl/trunk/network-merge-impl/src/main/java/org/cytoscape/network/merge/internal/util/AttributeMerger.java
core3/impl/trunk/network-merge-impl/src/main/java/org/cytoscape/network/merge/internal/util/DefaultAttributeMerger.java
core3/impl/trunk/network-merge-impl/src/main/java/org/cytoscape/network/merge/internal/util/DefaultAttributeValueMatcher.java
Log:
network-merge: first working version
Modified:
core3/impl/trunk/network-merge-impl/src/main/java/org/cytoscape/network/merge/internal/AbstractNetworkMerge.java
===================================================================
---
core3/impl/trunk/network-merge-impl/src/main/java/org/cytoscape/network/merge/internal/AbstractNetworkMerge.java
2012-03-21 21:30:13 UTC (rev 28607)
+++
core3/impl/trunk/network-merge-impl/src/main/java/org/cytoscape/network/merge/internal/AbstractNetworkMerge.java
2012-03-21 22:35:16 UTC (rev 28608)
@@ -83,7 +83,7 @@
*
* @return true if n1 and n2 matches
*/
- protected abstract boolean matchNode(CyNode n1, CyNode n2);
+ protected abstract boolean matchNode(CyNetwork net1, CyNode n1, CyNetwork
net2, CyNode n2);
/**
* Merge (matched) nodes into one
@@ -314,9 +314,9 @@
if (gos2!=null) {
CyTableEntry go2 = gos2.iterator().next();
if (isNode) { //NODE
- matched = matchNode((CyNode)go1,(CyNode)go2);
+ matched = matchNode(net1, (CyNode)go1, net2,
(CyNode)go2);
if (matched) {
-
matchedNodes.add(getNodePair((CyNode)go1,(CyNode)go2));
+ matchedNodes.add(getNodePair((CyNode)go1,
(CyNode)go2));
}
} else {// EDGE
matched =
matchEdge(net1,net2,(CyEdge)go1,(CyEdge)go2, matchedNodes);
Modified:
core3/impl/trunk/network-merge-impl/src/main/java/org/cytoscape/network/merge/internal/AttributeBasedNetworkMerge.java
===================================================================
---
core3/impl/trunk/network-merge-impl/src/main/java/org/cytoscape/network/merge/internal/AttributeBasedNetworkMerge.java
2012-03-21 21:30:13 UTC (rev 28607)
+++
core3/impl/trunk/network-merge-impl/src/main/java/org/cytoscape/network/merge/internal/AttributeBasedNetworkMerge.java
2012-03-21 22:35:16 UTC (rev 28608)
@@ -114,8 +114,8 @@
}
@Override
- protected boolean matchNode(final CyNode n1, final CyNode n2) {
- if (n1==null || n2==null) {
+ protected boolean matchNode(final CyNetwork net1, final CyNode n1, final
CyNetwork net2, final CyNode n2) {
+ if (net1==null || n1==null || net2==null || n2==null) {
throw new java.lang.NullPointerException();
}
@@ -124,8 +124,8 @@
return true;
}
- CyColumn attr1 =
matchingAttribute.getAttributeForMatching(n1.getNetworkPointer());
- CyColumn attr2 =
matchingAttribute.getAttributeForMatching(n2.getNetworkPointer());
+ CyColumn attr1 = matchingAttribute.getAttributeForMatching(net1);
+ CyColumn attr2 = matchingAttribute.getAttributeForMatching(net2);
if (attr1==null || attr2==null) {
throw new java.lang.IllegalArgumentException("Please specify the
matching attribute first");
@@ -136,20 +136,23 @@
@Override
protected void proprocess(CyNetwork toNetwork) {
- setAttributeTypes(toNetwork,nodeAttributeMapping);
- setAttributeTypes(toNetwork,edgeAttributeMapping);
+
setAttributeTypes(toNetwork.getDefaultNodeTable(),nodeAttributeMapping);
+
setAttributeTypes(toNetwork.getDefaultEdgeTable(),edgeAttributeMapping);
}
- private void setAttributeTypes(CyNetwork toNetwork, AttributeMapping
attributeMapping) {
- CyTable table = attributeMapping.getCyTable(toNetwork);
+ private void setAttributeTypes(CyTable toTable, AttributeMapping
attributeMapping) {
int n = attributeMapping.getSizeMergedAttributes();
for (int i=0; i<n; i++) {
String attr = attributeMapping.getMergedAttribute(i);
+ if (toTable.getColumn(attr)!=null) {
+ continue; //TODO: check if the type is the same
+ }
+
ColumnType type = attributeMapping.getMergedAttributeType(i);
if (type.isList()) {
- table.createListColumn(attr, type.getType(), true); //TODO:
HOW TO SET IMMUTABILITY?
+ toTable.createListColumn(attr, type.getType(), true); //TODO:
HOW TO SET IMMUTABILITY?
} else {
- table.createColumn(attr, type.getClass(), true);
+ toTable.createColumn(attr, type.getClass(), true);
}
}
}
@@ -212,7 +215,7 @@
try {
// TODO how to handle network?
- attributeMerger.mergeAttribute(mapGOAttr, toEntry,
attr_merged, null, newNetwork );
+ attributeMerger.mergeAttribute(mapGOAttr, toEntry,
attr_merged, newNetwork );
} catch (Exception e) {
e.printStackTrace();
continue;
Modified:
core3/impl/trunk/network-merge-impl/src/main/java/org/cytoscape/network/merge/internal/util/AttributeMerger.java
===================================================================
---
core3/impl/trunk/network-merge-impl/src/main/java/org/cytoscape/network/merge/internal/util/AttributeMerger.java
2012-03-21 21:30:13 UTC (rev 28607)
+++
core3/impl/trunk/network-merge-impl/src/main/java/org/cytoscape/network/merge/internal/util/AttributeMerger.java
2012-03-21 22:35:16 UTC (rev 28608)
@@ -54,8 +54,9 @@
* @param <T>
* @param mapGOAttr
* @param toGO
- * @param toAttrName
+ * @param toAttrName
+ * @param toNetwork
*/
public <T extends CyTableEntry> void mergeAttribute(Map<T,CyColumn>
mapGOAttr,
- T toGO, CyColumn toAttrName, CyNetwork
fromNetwork, CyNetwork toNetwork);
+ T toGO, CyColumn toAttrName, CyNetwork
toNetwork);
}
Modified:
core3/impl/trunk/network-merge-impl/src/main/java/org/cytoscape/network/merge/internal/util/DefaultAttributeMerger.java
===================================================================
---
core3/impl/trunk/network-merge-impl/src/main/java/org/cytoscape/network/merge/internal/util/DefaultAttributeMerger.java
2012-03-21 21:30:13 UTC (rev 28607)
+++
core3/impl/trunk/network-merge-impl/src/main/java/org/cytoscape/network/merge/internal/util/DefaultAttributeMerger.java
2012-03-21 22:35:16 UTC (rev 28608)
@@ -71,19 +71,20 @@
*/
//@Override
public <T extends CyTableEntry> void mergeAttribute(Map<T,CyColumn>
mapGOAttr,
- T toGO, CyColumn toAttr, CyNetwork
fromNetwork, CyNetwork toNetwork) {
+ T toGO, CyColumn toAttr, CyNetwork
toNetwork) {
if ((mapGOAttr == null) || (toGO == null) || (toAttr == null))
{
throw new java.lang.IllegalArgumentException("Null
argument.");
}
- CyRow cyRow = toNetwork.getRow(toGO,
toAttr.getTable().getTitle());
- CyTable cyTable = cyRow.getTable();
+ CyRow cyRow = toNetwork.getRow(toGO);
ColumnType colType = ColumnType.getType(toAttr);
for (Map.Entry<T,CyColumn> entryGOAttr : mapGOAttr.entrySet())
{
T from = entryGOAttr.getKey();
CyColumn fromAttr = entryGOAttr.getValue();
- CyRow fromCyRow = fromNetwork.getRow(from,
fromAttr.getTable().getTitle());
+ CyTable fromTable1 = fromAttr.getTable();
+
+ CyRow fromCyRow = fromTable1.getRow(from.getSUID());
ColumnType fromColType = ColumnType.getType(fromAttr);
if (colType == ColumnType.STRING) { // the case of
inconvertable attributes and simple attributes to String
Modified:
core3/impl/trunk/network-merge-impl/src/main/java/org/cytoscape/network/merge/internal/util/DefaultAttributeValueMatcher.java
===================================================================
---
core3/impl/trunk/network-merge-impl/src/main/java/org/cytoscape/network/merge/internal/util/DefaultAttributeValueMatcher.java
2012-03-21 21:30:13 UTC (rev 28607)
+++
core3/impl/trunk/network-merge-impl/src/main/java/org/cytoscape/network/merge/internal/util/DefaultAttributeValueMatcher.java
2012-03-21 22:35:16 UTC (rev 28608)
@@ -41,6 +41,7 @@
import org.cytoscape.model.CyColumn;
import org.cytoscape.model.CyRow;
+import org.cytoscape.model.CyTable;
import org.cytoscape.model.CyTableEntry;
/**
@@ -64,10 +65,12 @@
return true;
}
- // TODO figure out where to get networks from
- CyRow row1 = null;
//entry1.getCyRow(attr1.getTable().getTitle());
- CyRow row2 = null;
//entry2.getCyRow(attr2.getTable().getTitle());
+ CyTable table1 = attr1.getTable();
+ CyTable table2 = attr2.getTable();
+ CyRow row1 = table1.getRow(entry1.getSUID());
+ CyRow row2 = table2.getRow(entry2.getSUID());
+
Class<?> type1 = attr1.getType();
Class<?> type2 = attr2.getType();
--
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.