Author: ruschein
Date: 2010-06-25 15:42:24 -0700 (Fri, 25 Jun 2010)
New Revision: 20670

Modified:
   cytoscape/trunk/lib/equations.jar
   cytoscape/trunk/src/cytoscape/data/readers/CyAttributesReader.java
   cytoscape/trunk/src/cytoscape/data/readers/XGMMLParser.java
Log:
Fixed a trivial bug in getErrorEquation().

Modified: cytoscape/trunk/lib/equations.jar
===================================================================
(Binary files differ)

Modified: cytoscape/trunk/src/cytoscape/data/readers/CyAttributesReader.java
===================================================================
--- cytoscape/trunk/src/cytoscape/data/readers/CyAttributesReader.java  
2010-06-25 22:42:10 UTC (rev 20669)
+++ cytoscape/trunk/src/cytoscape/data/readers/CyAttributesReader.java  
2010-06-25 22:42:24 UTC (rev 20670)
@@ -67,9 +67,11 @@
        private boolean doDecoding;
        final Map<String, Map<String, Class>> idsToAttribNameToTypeMapMap;
        private List<AttribEquation> attribEquations; // This is where we 
collect equations for later addition.
+       private final CyLogger logger;
 
 
        CyAttributesReader() {
+               logger = CyLogger.getLogger(CyAttributesReader.class);
                lineNum = 0;
                doDecoding = 
Boolean.valueOf(System.getProperty(DECODE_PROPERTY, "true"));
                idsToAttribNameToTypeMapMap = new HashMap<String, Map<String, 
Class>>();
@@ -122,9 +124,13 @@
                        if (compiler.compile(attribEquation.getEquation(), 
attribNameToTypeMap))
                                cyAttrs.setAttribute(attribEquation.getID(), 
attribEquation.getAttrName(), compiler.getEquation(),
                                                     
attribEquation.getDataType());
-                       else
-                               throw new IllegalStateException("bad equation 
on line " + attribEquation.getLineNumber()
-                                                               + ": " + 
compiler.getLastErrorMsg());
+                       else {
+                               final String errorMessage = 
compiler.getLastErrorMsg();
+                               logger.warn("bad equation on line " + 
attribEquation.getLineNumber() + ": " + errorMessage);
+                               final Equation errorEquation = 
Equation.getErrorEquation(attribEquation.getEquation(), errorMessage);
+                               cyAttrs.setAttribute(attribEquation.getID(), 
attribEquation.getAttrName(), errorEquation,
+                                                    
attribEquation.getDataType());
+                       }
                }
        }
 
@@ -372,7 +378,7 @@
                        else
                                message = "failed parsing attributes file at 
line: " + lineNum
                                        + " with exception: " + e.getMessage();
-                       
CyLogger.getLogger(CyAttributesReader.class).warn(message, e);
+                       logger.warn(message, e);
                        throw new IOException(message);
                }
        }
@@ -384,7 +390,7 @@
                        }
                        catch (IllegalArgumentException iae) {
                                if (!badDecode) {
-                                       
CyLogger.getLogger(CyAttributesReader.class).info(MessageFormat.format(badDecodeMessage,
 lineNum), iae);
+                                       
logger.info(MessageFormat.format(badDecodeMessage, lineNum), iae);
                                        badDecode = true;
                                }
                        }

Modified: cytoscape/trunk/src/cytoscape/data/readers/XGMMLParser.java
===================================================================
--- cytoscape/trunk/src/cytoscape/data/readers/XGMMLParser.java 2010-06-25 
22:42:10 UTC (rev 20669)
+++ cytoscape/trunk/src/cytoscape/data/readers/XGMMLParser.java 2010-06-25 
22:42:24 UTC (rev 20670)
@@ -44,6 +44,7 @@
 import cytoscape.logger.CyLogger;
 
 import org.cytoscape.equations.EqnCompiler;
+import org.cytoscape.equations.Equation;
 
 import org.xml.sax.helpers.DefaultHandler;
 import org.xml.sax.helpers.AttributesImpl;
@@ -636,11 +637,17 @@
                attribNameToTypeMap.put("ID", String.class);
                final EqnCompiler compiler = new EqnCompiler();
                for (final AttribEquation attribEquation : attribEquations) {
-                       if (!(compiler.compile(attribEquation.getEquation(), 
attribNameToTypeMap)))
-                               throw new IllegalStateException("failed to 
compile an equation in an XGMML input file ("
-                                                               + 
compiler.getLastErrorMsg() + ")!");
-                       attribs.setAttribute(attribEquation.getID(), 
attribEquation.getAttrName(),
-                                            compiler.getEquation(), 
attribEquation.getDataType());
+                       if (compiler.compile(attribEquation.getEquation(), 
attribNameToTypeMap))
+                               attribs.setAttribute(attribEquation.getID(), 
attribEquation.getAttrName(),
+                                                    compiler.getEquation(), 
attribEquation.getDataType());
+                       else {
+                               final String errorMessage = 
compiler.getLastErrorMsg();
+                               logger.warn("failed to compile an equation in 
an XGMML input file ("
+                                           + errorMessage + ")!");
+                               final Equation errorEquation = 
Equation.getErrorEquation(attribEquation.getEquation(), errorMessage);
+                               attribs.setAttribute(attribEquation.getID(), 
attribEquation.getAttrName(),
+                                                    errorEquation, 
attribEquation.getDataType());
+                       }
                }
        }
 

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