jsbml-1.0-rc1
niko-rodrigue
released this
23 May 12:47
·
2331 commits
to master
since this release
Version 1.0-rc1 (24-09-2014)
- New Features:
- Changed the default behaviour of the parsing of math infix formula.
The methods concerned are JSBML#parseFormula and
ASTNode#parseFormula.
The changes include a different operator precedence, to match the
one used in the L3 libSBML parser. The parsing is also case
sensitive for mathML elements. Boolean operators are now
differently interpreted: '&&' and '||' are used instead of 'and'
and 'or'. Please consult the JavaDoc of those methods for more
details, it is also explain there what to do if you want to keep
the old behaviour. - Added two new BioModels.net qualifiers, bqmodel:isIntanceOf and
bqmodel:hasInstance. - BioJava was updated to the latest version and the dependency is
now to biojava3-ontology. - Added removeCVTerm methods in Annotation and SBase.
- An IdManager interface has been introduced to help deal with the
different id namespace in SBML core and in the different packages. - JSBML now provides a convenient ModelBuilder that can be used to
create SBML models with a significantly lower number of lines of
code for the end user. - Improved Java source code documentation (in particular CVTerm).
- The SBMLDocument has now a convenient method to access all metaIds
within the document in form of an unmodifiable Collection. - The SBO class provides more methods to access those terms that are
of particular interest for SBGN displays. - A general Pair of arbitrary values now generalizes ValuePair.
- The toString() methods in UnitDefinition and SpeciesReferences
have been improved and are now more informative. - Internally, JSBML no longer creates Unit objects that lack
required attributes when reading models. (However, this does not
prevent users from creating new Unit objects without such
attributes.) - Species and Compartment 'containsUndeclaredUnits' method has been
overridden because in SBML L3 Species and Compartments can inherit
a default unit from the Model. This is now considered. In this
case, containsUndeclaredUnits will return false even if the object
itself does not explicitly declare its unit. This is important
because the unit of the element is not undefined. - Added some missing methods to manipulate EvenAssignment in Event
and improved the JavaDoc of the Event class. - Added some missing getter in the L3 packages classes.
- Support for SBML Level 3 'Arrays' package:
- Arrays package implemented, version 05/05/14. Only selector and
vector supported for now. Validations, flattening available. - Added support for vector and selector infix parsing to support the
arrays package. - Support for SBML Level 3 'Layout' package:
- Added missing methods to remove GeneralGlyph objects from a Layout
object. - Added further missing remove or unset methods in the layout
package. - Support for SBML Level 3 'Qualitative Models (qual)' package:
- The class QualitativeModel in the qual package has been marked
deprecated and should no longer be used. Aiming to achieve better
compatibility to libSBML, the new class QualModelPlugin has been
created to be used instead. - Support for SBML Level 3 'Spatial Processes (spatial)' package:
- Updated to implement version 0.88 of the draft specifications.
- Changed the default behaviour of the parsing of math infix formula.
- Bug Fixes:
- Corrected the method AbstractSBase#getExtensionCount that was
always returning 0. - Corrected the SBMLWriter so that disabled packages are not written
to XML any more (they are still cloned). - Corrected the method SBase.appendNotes that contained several
problems. - Corrected a bug when cloning a text XMLToken.
- Fixed the AbstractSBase equals method that could throw a
NullPointerException in some cases and was not testing all fields. - Fixed the CVTerm.removeResource(String) method. Thanks to Camille
Laibe who reported the problem (tracker item #80). - Corrected the method ASTNode.parseFormula so that they catch any
Exception or Error and throw a ParseException instead. - Added the support for the 'root' function in the parsing of math
formula. - The FormulaParserLL3 was not reading properly formula like
'kf * S0 * S1'. Only two arguments were read instead of three or
more. Thanks to Chris J. Myers for reporting this problem. - Corrected a bug in Event#setListOfEventAssignments method that
prevented the listOfEventAssignments to be registered properly in
the model (ids and metaids registered). - Corrected the removeFromParent method to make it working for
SBasePlugin instances. - The ListOf.remove(String) will not throw a ClassCastException
anymore when used on list that do not contain elements with id. - The static method JSBML.read(String) was not calling the right
helper method. - ASTNode threw a NullPointerException when trying to un-set its
variable. - The AbstractTreeNode recursive method
removeTreeNodeChangeListener(TreeNodeChangeListener, boolean) was
not actually recursive. - Solved source for potential NullPointerException in LaTeXCompiler.
- Support for SBML Level 3 'Hierarchical Model Composition (comp)'
package: - Fixed several issues when cloning 'comp' elements and L3 packages
elements in general. Thanks to Chris J. Myers and the iBioSim team
for their help to find and fix all issues. - Support for SBML Level 3 'Flux Balance Constraints (fbc)' package:
- The required flag for the fbc package was set to true instead of
false, thanks to Chris J. Myers for reporting this problem. - Support for SBML Level 3 'Layout' package:
- The implementation of the layout package contained unnecessary
classes that all represented a Point object (Start, End, Position,
BasePoint1, BasePoint2). In order to avoid confusion and to
simplify the implementation, those classes have all been deleted. - Corrected the method Layout#setListOfAdditionalGraphicalObjects to
avoid the warnings when cloning the list and to avoid to create a
new list when not needed. - Support for SBML Level 3 'Qualitative Models (qual)' package:
- The SBML qual attribute Output.outputLevel was not read properly
from XML. - Support for SBML Level 3 'Rendering (render)' package:
- Fixed severals bugs in the experimental render package. Renamed
the Group class to RenderGroup and the Curve class to RenderCurve.
Added the possibility to add children to a RenderGroup and
corrected the way it was written to XML.
- Corrected the method AbstractSBase#getExtensionCount that was