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.