From: <nik...@us...> - 2015-05-01 15:12:13
|
Revision: 2276 http://sourceforge.net/p/jsbml/code/2276 Author: niko-rodrigue Date: 2015-05-01 15:12:11 +0000 (Fri, 01 May 2015) Log Message: ----------- corrected a bug in SBMLReader that was removing child ASTNode when a cn element with a type attribute was not the first child. I removed the block of code as I don't think we need it any more. Modified Paths: -------------- branches/astnode2-merging-alternate/core/src/org/sbml/jsbml/ASTNode.java.oldASTNode branches/astnode2-merging-alternate/core/src/org/sbml/jsbml/xml/parsers/MathMLStaxParser.java branches/astnode2-merging-alternate/core/src/org/sbml/jsbml/xml/stax/SBMLReader.java branches/astnode2-merging-alternate/core/src/org/sbml/jsbml/xml/stax/SBMLWriter.java Modified: branches/astnode2-merging-alternate/core/src/org/sbml/jsbml/ASTNode.java.oldASTNode =================================================================== --- branches/astnode2-merging-alternate/core/src/org/sbml/jsbml/ASTNode.java.oldASTNode 2015-05-01 11:41:21 UTC (rev 2275) +++ branches/astnode2-merging-alternate/core/src/org/sbml/jsbml/ASTNode.java.oldASTNode 2015-05-01 15:12:11 UTC (rev 2276) @@ -1670,6 +1670,10 @@ * the node to add as child. */ public void addChild(ASTNode child) { + if (logger.isDebugEnabled()) { + logger.debug(" adding child current node: \n" + astNodeToTree(this, "", "")); + logger.debug(" adding child: \n" + astNodeToTree(child, "", "")); + } listOfNodes.add(child); setParentSBMLObject(child, parentSBMLObject, 0); child.setParent(this); @@ -3791,6 +3795,10 @@ */ public void setType(String typeStr) { // System.out.println("ASTNode: setType(String) called."); + if (logger.isDebugEnabled()) { + logger.debug("ASTNode: setType(String) called: " + typeStr); + } + Type type = Type.getTypeFor(typeStr); setType(type); if (type != Type.UNKNOWN) { @@ -3848,7 +3856,7 @@ setValue(Maths.AVOGADRO_L3V1); definitionURL = URI_AVOGADRO_DEFINITION; } - Type oldValue = getType(); + Type oldValue = this.type; this.type = type; firePropertyChange(TreeNodeChangeEvent.type, oldValue, type); } @@ -4223,4 +4231,24 @@ } } + /** + * Returns a simple tree view of the ASTNode internal, including mainly + * node type and hierarchy. + * + * @param n + * @param tree + * @param indent + * @return a simple tree view of the ASTNode internal + */ + public static String astNodeToTree(ASTNode n, String tree, String indent) { + tree = tree + indent + n.getType() + " " + + (n.isInteger() ? n.getInteger() : "") + (n.isReal() ? n.getReal() : "") + "\n"; + + for (ASTNode child : n.getChildren()) { + tree = astNodeToTree(child, tree, indent + " "); + } + + return tree; + } + } Modified: branches/astnode2-merging-alternate/core/src/org/sbml/jsbml/xml/parsers/MathMLStaxParser.java =================================================================== --- branches/astnode2-merging-alternate/core/src/org/sbml/jsbml/xml/parsers/MathMLStaxParser.java 2015-05-01 11:41:21 UTC (rev 2275) +++ branches/astnode2-merging-alternate/core/src/org/sbml/jsbml/xml/parsers/MathMLStaxParser.java 2015-05-01 15:12:11 UTC (rev 2276) @@ -126,9 +126,9 @@ ASTNode astNode = (ASTNode) contextObject; // NOTE: By default cn ASTNodes are of type REAL - if (value.equals("integer")) { - astNode.setType(Type.INTEGER); - } +// if (value.equals("integer")) { +// astNode.setType(Type.INTEGER); +// } // System.out.println("MathMLStaxParser : processAttribute called"); // System.out.println("MathMLStaxParser : processAttribute : element name = " + elementName + ", attribute name = " + attributeName + Modified: branches/astnode2-merging-alternate/core/src/org/sbml/jsbml/xml/stax/SBMLReader.java =================================================================== --- branches/astnode2-merging-alternate/core/src/org/sbml/jsbml/xml/stax/SBMLReader.java 2015-05-01 11:41:21 UTC (rev 2275) +++ branches/astnode2-merging-alternate/core/src/org/sbml/jsbml/xml/stax/SBMLReader.java 2015-05-01 15:12:11 UTC (rev 2276) @@ -923,12 +923,13 @@ hasNamespace, sbmlElements.peek()); if (processedElement != null) { + /* // TODO - I don't think we need this code any more!? if (processedElement instanceof ASTNode) { ASTNode astNode = (ASTNode) processedElement; if (currentNode.getLocalPart().equals("cn") && hasAttributes) { - Object object = sbmlElements.peek(); - if (object != null && object instanceof ASTNode) { - ASTNode parent = (ASTNode) object; + // Object object = sbmlElements.peek(); + // if (object != null && object instanceof ASTNode) { + // ASTNode parent = (ASTNode) object; if (att.next().getValue().equals("integer")) { astNode.setType(Type.INTEGER); } else if(att.next().getValue().equals("e-notation")) { @@ -936,11 +937,13 @@ } else if(att.next().getValue().equals("rational")) { astNode.setType(Type.RATIONAL); } - parent.removeChild(0); - parent.addChild(astNode); + // TODO - wrong, we need to remove the last one! in fact, we don't need to remove and add it again the ASTNode as it's the same + // parent.removeChild(0); + // parent.addChild(astNode); } - } + // } } + */ sbmlElements.push(processedElement); } else { // It is normal to have sometimes null returned as some of the Modified: branches/astnode2-merging-alternate/core/src/org/sbml/jsbml/xml/stax/SBMLWriter.java =================================================================== --- branches/astnode2-merging-alternate/core/src/org/sbml/jsbml/xml/stax/SBMLWriter.java 2015-05-01 11:41:21 UTC (rev 2275) +++ branches/astnode2-merging-alternate/core/src/org/sbml/jsbml/xml/stax/SBMLWriter.java 2015-05-01 15:12:11 UTC (rev 2276) @@ -178,7 +178,9 @@ // testDocument.checkConsistency(); // System.out.println(XMLNode.convertXMLNodeToString(testDocument.getModel().getAnnotation().getNonRDFannotation())); - + + System.out.println(ASTNode.astNodeToTree(testDocument.getModel().getReaction(0).getKineticLaw().getMath(), "", "")); + System.out.println("Going to check package version and namespace for all elements."); PackageUtil.checkPackages(testDocument); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |