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.