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.

Reply via email to