From: <nik...@us...> - 2012-06-12 16:01:27
|
Revision: 1305 http://jsbml.svn.sourceforge.net/jsbml/?rev=1305&view=rev Author: niko-rodrigue Date: 2012-06-12 16:01:16 +0000 (Tue, 12 Jun 2012) Log Message: ----------- corrected AbstractSBase.addExtension to not add the extension namespace to the list of namespaces and stax/SBMLWriter to use the namespaces from the extensions Map instead of the SBase list of namespaces (which should a single namespace in fact) + cleaned a bit the RenderParser Modified Paths: -------------- trunk/core/src/org/sbml/jsbml/AbstractSBase.java trunk/core/src/org/sbml/jsbml/xml/parsers/AbstractReaderWriter.java trunk/core/src/org/sbml/jsbml/xml/stax/SBMLWriter.java trunk/extensions/render/src/org/sbml/jsbml/xml/parsers/RenderParser.java Modified: trunk/core/src/org/sbml/jsbml/AbstractSBase.java =================================================================== --- trunk/core/src/org/sbml/jsbml/AbstractSBase.java 2012-06-12 13:15:01 UTC (rev 1304) +++ trunk/core/src/org/sbml/jsbml/AbstractSBase.java 2012-06-12 16:01:16 UTC (rev 1305) @@ -280,7 +280,6 @@ */ public void addExtension(String namespace, SBasePlugin sbase) { this.extensions.put(namespace, sbase); - addNamespace(namespace); firePropertyChange(TreeNodeChangeEvent.addExtension, null, sbase); } Modified: trunk/core/src/org/sbml/jsbml/xml/parsers/AbstractReaderWriter.java =================================================================== --- trunk/core/src/org/sbml/jsbml/xml/parsers/AbstractReaderWriter.java 2012-06-12 13:15:01 UTC (rev 1304) +++ trunk/core/src/org/sbml/jsbml/xml/parsers/AbstractReaderWriter.java 2012-06-12 16:01:16 UTC (rev 1305) @@ -175,6 +175,9 @@ listOfElementsToWrite.add(children.nextElement()); } + logger.debug("getListOfSBMLElementsToWrite : nb children = " + listOfElementsToWrite.size()); + logger.debug("getListOfSBMLElementsToWrite : children = " + listOfElementsToWrite); + if (listOfElementsToWrite.isEmpty()) { listOfElementsToWrite = null; } @@ -223,6 +226,14 @@ if (sbmlElementToWrite instanceof SBase) { SBase sbase = (SBase) sbmlElementToWrite; + logger.debug("writeElement : sbase.namespaces size = " + sbase.getNamespaces().size()); + logger.debug("writeElement : sbase.namespaces = " + sbase.getNamespaces()); + + if (!sbase.getNamespaces().contains(getNamespaceURI())) { + logger.debug("writeElement : rejected element"); + return; + } + if (!xmlObject.isSetName()) { if (sbase instanceof ListOf<?>) { ListOf<?> listOf = (ListOf<?>) sbase; Modified: trunk/core/src/org/sbml/jsbml/xml/stax/SBMLWriter.java =================================================================== --- trunk/core/src/org/sbml/jsbml/xml/stax/SBMLWriter.java 2012-06-12 13:15:01 UTC (rev 1304) +++ trunk/core/src/org/sbml/jsbml/xml/stax/SBMLWriter.java 2012-06-12 16:01:16 UTC (rev 1305) @@ -290,7 +290,7 @@ if (object instanceof SBase) { SBase sbase = (SBase) object; - packageNamespaces = sbase.getNamespaces(); + packageNamespaces = sbase.getExtensionPackages().keySet(); } else if (object instanceof Annotation) { Annotation annotation = (Annotation) object; packageNamespaces = annotation.getNamespaces(); Modified: trunk/extensions/render/src/org/sbml/jsbml/xml/parsers/RenderParser.java =================================================================== --- trunk/extensions/render/src/org/sbml/jsbml/xml/parsers/RenderParser.java 2012-06-12 13:15:01 UTC (rev 1304) +++ trunk/extensions/render/src/org/sbml/jsbml/xml/parsers/RenderParser.java 2012-06-12 16:01:16 UTC (rev 1305) @@ -58,67 +58,7 @@ */ private Logger logger = Logger.getLogger(RenderParser.class); - /* (non-Javadoc) - * @see org.sbml.jsbml.xml.parsers.AbstractReaderWriter#getListOfSBMLElementsToWrite(java.lang.Object) - */ - @Override - public ArrayList<Object> getListOfSBMLElementsToWrite(Object sbase) { - if (logger.isDebugEnabled()) { - logger.debug("getListOfSBMLElementsToWrite : " + sbase.getClass().getCanonicalName()); - } - - ArrayList<Object> listOfElementsToWrite = new ArrayList<Object>(); - - if (sbase instanceof SBMLDocument) { - // nothing to do - // TODO : the 'required' attribute is written even if there is no plugin class for the SBMLDocument, so I am not totally sure how this is done. - } - else if (sbase instanceof ListOf<?>) { - // if the sbase is a ListOf, we could have a RenderModelPlugin attached to it - ListOf<?> listOf = (ListOf<?>)sbase; - if (listOf.getSBaseListType() == Type.other) { - - SBasePlugin plugin = listOf.getExtension(RenderConstants.namespaceURI); - - if (plugin != null) { - RenderModelPlugin rmp = (RenderModelPlugin) plugin; - - // then add its extension children to the list of elements to write - Enumeration<TreeNode> children = rmp.children(); - while (children.hasMoreElements()) { - listOfElementsToWrite.add(children.nextElement()); - } - } - } - } - else if (sbase instanceof Layout) { - // if the sbase is a Layout get its extension - RenderLayoutPlugin rlp = (RenderLayoutPlugin)((Layout)sbase).getExtension(RenderConstants.namespaceURI); - - // then add its extension children to the list of elements to write - Enumeration<TreeNode> children = rlp.children(); - while (children.hasMoreElements()) { - listOfElementsToWrite.add(children.nextElement()); - } - } - else if (sbase instanceof TreeNode) { - Enumeration<TreeNode> children = ((TreeNode) sbase).children(); - - while (children.hasMoreElements()) { - listOfElementsToWrite.add(children.nextElement()); - } - } - - if (listOfElementsToWrite.isEmpty()) { - listOfElementsToWrite = null; - } else if (logger.isDebugEnabled()) { - logger.debug("getListOfSBMLElementsToWrite size = " + listOfElementsToWrite.size()); - } - - return listOfElementsToWrite; - } - /* (non-Javadoc) * @see org.sbml.jsbml.xml.parsers.AbstractReaderWriter#processStartElement(java.lang.String, java.lang.String, boolean, boolean, java.lang.Object) */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |