Author: Christian Lopes
Date: 2011-03-01 14:47:51 -0800 (Tue, 01 Mar 2011)
New Revision: 24287

Modified:
   
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/xgmml/ParseState.java
   
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/xgmml/XGMMLNetworkViewReader.java
   
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/xgmml/handler/AttributeValueUtil.java
   
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/xgmml/handler/HandleListAttribute.java
   
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/xgmml/handler/HandleListAttributeDone.java
   
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/xgmml/handler/HandleMapAttribute.java
   
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/xgmml/handler/HandleMapAttributeDone.java
   
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/xgmml/handler/HandleNodeAttribute.java
Log:
XGMML parser: fixed list-type attributes.

Modified: 
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/xgmml/ParseState.java
===================================================================
--- 
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/xgmml/ParseState.java
      2011-03-01 22:39:58 UTC (rev 24286)
+++ 
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/xgmml/ParseState.java
      2011-03-01 22:47:51 UTC (rev 24287)
@@ -1,28 +1,39 @@
 package org.cytoscape.io.internal.read.xgmml;
 
 public enum ParseState {
-       NONE("none"), RDF("RDF"), NETATT("Network Attribute"), NODEATT(
-                       "Node Attribute"), EDGEATT("Edge Attribute"),
-       
-                       // Types of attributes that require special handling
-       LISTATT("List Attribute"), LISTELEMENT("List Element"), MAPATT(
-                       "Map Attribute"), MAPELEMENT("Map Element"), COMPLEXATT(
-                       "Complex Attribute"), NODEGRAPHICS("Node Graphics"), 
EDGEGRAPHICS(
-                       "Edge Graphics"),
-                       
-       // Handle edge handles
-       EDGEBEND("Edge Bend"), EDGEHANDLE("Edge Handle"), EDGEHANDLEATT(
-                       "Edge Handle Attribute"), NODE("Node Element"), 
EDGE("Edge Element"), GROUP(
-                       "Group"), GRAPH("Graph Element"), RDFDESC("RDF 
Description"), ANY(
-                       "any");
+    NONE("none"),
+    RDF("RDF"),
+    NETATT("Network Attribute"),
+    NODEATT("Node Attribute"),
+    EDGEATT("Edge Attribute"),
 
-       private String name;
+    // Types of attributes that require special handling
+    LISTATT("List Attribute"),
+    LISTELEMENT("List Element"),
+    MAPATT("Map Attribute"),
+    MAPELEMENT("Map Element"),
+    COMPLEXATT("Complex Attribute"),
+    NODEGRAPHICS("Node Graphics"),
+    EDGEGRAPHICS("Edge Graphics"),
 
-       private ParseState(String str) {
-               name = str;
-       }
+    // Handle edge handles
+    EDGEBEND("Edge Bend"),
+    EDGEHANDLE("Edge Handle"),
+    EDGEHANDLEATT("Edge Handle Attribute"),
+    NODE("Node Element"),
+    EDGE("Edge Element"),
+    GROUP("Group"),
+    GRAPH("Graph Element"),
+    RDFDESC("RDF Description"),
+    ANY("any");
 
-       public String toString() {
-               return name;
-       }
-}
\ No newline at end of file
+    private String name;
+
+    private ParseState(String str) {
+        name = str;
+    }
+
+    public String toString() {
+        return name;
+    }
+}

Modified: 
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/xgmml/XGMMLNetworkViewReader.java
===================================================================
--- 
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/xgmml/XGMMLNetworkViewReader.java
  2011-03-01 22:39:58 UTC (rev 24286)
+++ 
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/xgmml/XGMMLNetworkViewReader.java
  2011-03-01 22:47:51 UTC (rev 24287)
@@ -456,9 +456,6 @@
 
         // graphics:
         // ----------------------------------
-        // TODO: should add x/y to style?
-        //        nodeProps.put("x", Double.class);
-        //        nodeProps.put("y", Double.class);
         // TODO: NODE_SIZE: locking h/w
         nodeConverters.add(new GraphicsConverter<Double>("h", Double.class));
         nodeConverters.add(new GraphicsConverter<Double>("w", Double.class));

Modified: 
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/xgmml/handler/AttributeValueUtil.java
===================================================================
--- 
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/xgmml/handler/AttributeValueUtil.java
      2011-03-01 22:39:58 UTC (rev 24286)
+++ 
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/xgmml/handler/AttributeValueUtil.java
      2011-03-01 22:47:51 UTC (rev 24287)
@@ -299,10 +299,13 @@
             // must make sure to clear out any existing values before we parse.
             case LIST:
                 manager.currentAttributeID = name;
+                
                 if (row.getTable().getColumn(name) != null && 
row.getTable().getColumn(name).getType() == List.class)
                     row.set(name, null);
+                
                 return ParseState.LISTATT;
         }
+        
         return ParseState.NONE;
     }
 

Modified: 
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/xgmml/handler/HandleListAttribute.java
===================================================================
--- 
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/xgmml/handler/HandleListAttribute.java
     2011-03-01 22:39:58 UTC (rev 24286)
+++ 
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/xgmml/handler/HandleListAttribute.java
     2011-03-01 22:47:51 UTC (rev 24287)
@@ -1,25 +1,60 @@
 package org.cytoscape.io.internal.read.xgmml.handler;
 
+import java.util.ArrayList;
+import java.util.List;
+
 import org.cytoscape.io.internal.read.xgmml.ObjectType;
 import org.cytoscape.io.internal.read.xgmml.ParseState;
+import org.cytoscape.model.CyColumn;
+import org.cytoscape.model.CyRow;
 import org.xml.sax.Attributes;
 import org.xml.sax.SAXException;
 
 public class HandleListAttribute extends AbstractHandler {
-       public ParseState handle(String tag, Attributes atts, ParseState 
current)
-                       throws SAXException {
-           String type = atts.getValue("type");
-               ObjectType objType = typeMap.getType(type);
-               Object obj = attributeValueUtil.getTypedAttributeValue(objType, 
atts);
 
-               switch (objType) {
-               case BOOLEAN:
-               case REAL:
-               case INTEGER:
-               case STRING:
-                   if (manager.listAttrHolder != null)
-                       manager.listAttrHolder.add(obj);
-               }
-               return current;
-       }
-}
\ No newline at end of file
+    @Override
+    public ParseState handle(String tag, Attributes atts, ParseState current) 
throws SAXException {
+        String type = atts.getValue("type");
+        ObjectType objType = typeMap.getType(type);
+        Object obj = attributeValueUtil.getTypedAttributeValue(objType, atts);
+        Class<?> clazz = null;
+
+        switch (objType) {
+            case BOOLEAN:
+                clazz = Boolean.class;
+                break;
+            case REAL:
+                clazz = Double.class;
+                break;
+            case INTEGER:
+                clazz = Integer.class;
+                break;
+            case STRING:
+            default:
+                clazz = String.class;
+                break;
+
+        }
+
+        String name = manager.currentAttributeID;
+        CyRow row = manager.currentAttributes;
+        CyColumn column = row.getTable().getColumn(name);
+
+        if (column == null) {
+            row.getTable().createListColumn(name, clazz, false);
+            column = row.getTable().getColumn(name);
+        }
+
+        if (column.getType() == List.class) {
+            if (manager.listAttrHolder == null) {
+                manager.listAttrHolder = new ArrayList<Object>();
+                row.set(name, manager.listAttrHolder);
+            }
+
+            if (manager.listAttrHolder != null)
+                manager.listAttrHolder.add(obj);
+        }
+
+        return current;
+    }
+}

Modified: 
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/xgmml/handler/HandleListAttributeDone.java
===================================================================
--- 
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/xgmml/handler/HandleListAttributeDone.java
 2011-03-01 22:39:58 UTC (rev 24286)
+++ 
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/xgmml/handler/HandleListAttributeDone.java
 2011-03-01 22:47:51 UTC (rev 24287)
@@ -5,20 +5,21 @@
 import org.xml.sax.SAXException;
 
 public class HandleListAttributeDone extends AbstractHandler {
-       public ParseState handle(String tag, Attributes atts, ParseState 
current)
-                       throws SAXException {
 
-               try {
-                       if (manager.listAttrHolder != null) {
-                               
manager.currentAttributes.set(manager.currentAttributeID, 
manager.listAttrHolder);
-                               manager.listAttrHolder = null;
-                       }
-               } catch (Exception e) {
-                       String err = "XGMML attribute handling error for 
attribute '"
-                                       + manager.currentAttributeID + "' and 
object '"
-                                       + manager.objectTarget + "': " + 
e.getMessage();
-                       throw new SAXException(err);
-               }
-               return current;
-       }
-}
\ No newline at end of file
+    @Override
+    public ParseState handle(String tag, Attributes atts, ParseState current) 
throws SAXException {
+
+        try {
+            if (manager.listAttrHolder != null) {
+                manager.currentAttributes.set(manager.currentAttributeID, 
manager.listAttrHolder);
+                manager.listAttrHolder = null;
+            }
+        } catch (Exception e) {
+            String err = "XGMML attribute handling error for attribute '" + 
manager.currentAttributeID +
+                         "' and object '" + manager.objectTarget + "': " + 
e.getMessage();
+            throw new SAXException(err);
+        }
+        
+        return current;
+    }
+}

Modified: 
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/xgmml/handler/HandleMapAttribute.java
===================================================================
--- 
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/xgmml/handler/HandleMapAttribute.java
      2011-03-01 22:39:58 UTC (rev 24286)
+++ 
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/xgmml/handler/HandleMapAttribute.java
      2011-03-01 22:47:51 UTC (rev 24287)
@@ -6,20 +6,21 @@
 import org.xml.sax.SAXException;
 
 public class HandleMapAttribute extends AbstractHandler {
-       public ParseState handle(String tag, Attributes atts, ParseState 
current)
-                       throws SAXException {
-               String name = atts.getValue("name");
-               ObjectType objType = typeMap.getType(atts.getValue("type"));
-               Object obj = attributeValueUtil.getTypedAttributeValue(objType, 
atts);
 
-               switch (objType) {
-               case BOOLEAN:
-               case REAL:
-               case INTEGER:
-               case STRING:
-                       manager.mapAttrHolder.put(name, obj);
-               }
+    @Override
+    public ParseState handle(String tag, Attributes atts, ParseState current) 
throws SAXException {
+        String name = atts.getValue("name");
+        ObjectType objType = typeMap.getType(atts.getValue("type"));
+        Object obj = attributeValueUtil.getTypedAttributeValue(objType, atts);
 
-               return current;
-       }
-}
\ No newline at end of file
+        switch (objType) {
+            case BOOLEAN:
+            case REAL:
+            case INTEGER:
+            case STRING:
+                manager.mapAttrHolder.put(name, obj);
+        }
+        
+        return current;
+    }
+}

Modified: 
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/xgmml/handler/HandleMapAttributeDone.java
===================================================================
--- 
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/xgmml/handler/HandleMapAttributeDone.java
  2011-03-01 22:39:58 UTC (rev 24286)
+++ 
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/xgmml/handler/HandleMapAttributeDone.java
  2011-03-01 22:47:51 UTC (rev 24287)
@@ -5,21 +5,21 @@
 import org.xml.sax.SAXException;
 
 public class HandleMapAttributeDone extends AbstractHandler {
-       public ParseState handle(String tag, Attributes atts, ParseState 
current)
-                       throws SAXException {
 
-               try {
-                       if (manager.mapAttrHolder != null) {
-                               
manager.currentAttributes.set(manager.currentAttributeID,
-                                               manager.mapAttrHolder);
-                               manager.mapAttrHolder = null;
-                       }
-               } catch (Exception e) {
-                       String err = "XGMML attribute handling error for 
attribute '"
-                                       + manager.currentAttributeID + "' and 
object '"
-                                       + manager.objectTarget + "': " + 
e.getMessage();
-                       throw new SAXException(err);
-               }
-               return current;
-       }
-}
\ No newline at end of file
+    @Override
+    public ParseState handle(String tag, Attributes atts, ParseState current) 
throws SAXException {
+
+        try {
+            if (manager.mapAttrHolder != null) {
+                manager.currentAttributes.set(manager.currentAttributeID, 
manager.mapAttrHolder);
+                manager.mapAttrHolder = null;
+            }
+        } catch (Exception e) {
+            String err = "XGMML attribute handling error for attribute '" + 
manager.currentAttributeID +
+                         "' and object '" + manager.objectTarget + "': " + 
e.getMessage();
+            throw new SAXException(err);
+        }
+
+        return current;
+    }
+}

Modified: 
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/xgmml/handler/HandleNodeAttribute.java
===================================================================
--- 
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/xgmml/handler/HandleNodeAttribute.java
     2011-03-01 22:39:58 UTC (rev 24286)
+++ 
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/xgmml/handler/HandleNodeAttribute.java
     2011-03-01 22:47:51 UTC (rev 24287)
@@ -10,6 +10,7 @@
 
 public class HandleNodeAttribute extends AbstractHandler {
 
+    @Override
     public ParseState handle(String tag, Attributes atts, ParseState current)
                        throws SAXException {
                if (atts == null)

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