Author: clopes
Date: 2012-06-01 14:40:15 -0700 (Fri, 01 Jun 2012)
New Revision: 29424

Modified:
   
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/xgmml/handler/AttributeValueUtil.java
   
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/write/xgmml/XGMMLWriter.java
Log:
Fixes #1059 (Error importing XGMML: can't set a value for a virtual column): 
The parser now ignores attempts to set values to virtual columns.
Also changes the XGMML writer, so it doesn't export virtual columns.

Modified: 
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/xgmml/handler/AttributeValueUtil.java
===================================================================
--- 
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/xgmml/handler/AttributeValueUtil.java
    2012-06-01 21:02:28 UTC (rev 29423)
+++ 
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/xgmml/handler/AttributeValueUtil.java
    2012-06-01 21:40:15 UTC (rev 29424)
@@ -240,12 +240,16 @@
         return parseState;
     }
     
-    private <T> void setAttribute(CyRow row, String name, Class<T> type, T 
value) {
+    private <T> void setAttribute(final CyRow row, final String name, final 
Class<T> type, final T value) {
         if (name != null) {
-            CyTable table = row.getTable();
+            final CyTable table = row.getTable();
+            final CyColumn column = table.getColumn(name);
             
-            if (table.getColumn(name) == null) {
+            if (column == null) {
                table.createColumn(name, type, false);
+            } else if (column.getVirtualColumnInfo().isVirtual()) {
+               logger.warn("Cannot set value to virtual column \"" + name + 
"\".");
+               return;
             }
             
             if (value != null) {

Modified: 
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/write/xgmml/XGMMLWriter.java
===================================================================
--- 
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/write/xgmml/XGMMLWriter.java
  2012-06-01 21:02:28 UTC (rev 29423)
+++ 
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/write/xgmml/XGMMLWriter.java
  2012-06-01 21:40:15 UTC (rev 29424)
@@ -36,7 +36,6 @@
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Date;
-import java.util.HashMap;
 import java.util.HashSet;
 import java.util.LinkedHashSet;
 import java.util.List;
@@ -804,7 +803,10 @@
     private void writeAttribute(final CyRow row, final String attName) throws 
IOException {
        // create an attribute and its type:
                final CyColumn column = row.getTable().getColumn(attName);
-               if (column == null) return;
+               
+               if (column == null || column.getVirtualColumnInfo().isVirtual())
+                       return;
+               
                final Class<?> attType = column.getType();
 
                if (attType == Double.class) {
@@ -832,7 +834,7 @@
 
                                if (listAttr != null) {
                                        depth++;
-                                       // interate through the list
+                                       // iterate through the list
                                        for (Object obj : listAttr) {
                                                // Protect tabs and returns (if 
necessary)
                                                String sAttr = obj.toString();

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