libSBML Perl API
libSBML 5.17.2 Perl API
|
{core}
Converter that sorts SBML rules and assignments.This class of objects is defined by libSBML only and has no direct equivalent in terms of SBML components. It is a class used in the implementation of extra functionality provided by libSBML.
This converter reorders assignments in a model. Specifically, it sorts the list of assignment rules (i.e., the AssignmentRule objects contained in the ListOfAssignmentRules within the Model object) and the initial assignments (i.e., the InitialAssignment objects contained in the ListOfInitialAssignments) such that, within each set, assignments that depend on prior values are placed after the values are set. For example, if there is an assignment rule stating a = b + 1, and another rule stating b = 3, the list of rules is sorted and the rules are arranged so that the rule for b = 3 appears before the rule for a = b + 1. Similarly, if dependencies of this sort exist in the list of initial assignments in the model, the initial assignments are sorted as well.
Beginning with SBML Level 2, assignment rules have no ordering required—the order in which the rules appear in an SBML file has no significance. Software tools, however, may need to reorder assignments for purposes of evaluating them. For example, for simulators that use time integration methods, it would be a good idea to reorder assignment rules such as the following,
b = a + 10 seconds
a = time
so that the evaluation of the rules is independent of integrator step sizes. (This is due to the fact that, in this case, the order in which the rules are evaluated changes the result.) SBMLRuleConverter can be used to reorder the SBML objects regardless of whether the input file contained them in the desired order.
Note that the two sets of SBML assignments (list of assignment rules on the one hand, and list of initial assignments on the other hand) are handled independently. In an SBML model, these entities are treated differently and no amount of sorting can deal with inter-dependencies between assignments of the two kinds.
SBMLRuleConverter is enabled by creating a ConversionProperties object with the option "sortRules"
, and passing this properties object to SBMLDocument::convert(). This converter offers no other options.
Public Member Functions | |
virtual SBMLRuleConverter * | clone () const |
Creates and returns a deep copy of this SBMLLevelVersionConverter object. More... | |
virtual int | convert () |
Perform the conversion. More... | |
virtual ConversionProperties | getDefaultProperties () const |
Returns the default properties of this converter. More... | |
virtual SBMLDocument * | getDocument () |
Returns the SBML document that is the subject of the conversions. More... | |
virtual const SBMLDocument * | getDocument () const |
Returns the SBML document that is the subject of the conversions. More... | |
const std::string & | getName () const |
Returns the name of this converter. More... | |
virtual ConversionProperties * | getProperties () const |
Returns the current properties in effect for this converter. More... | |
virtual SBMLNamespaces * | getTargetNamespaces () |
Returns the target SBML namespaces of the currently set properties. More... | |
virtual bool | matchesProperties (const ConversionProperties &props) const |
Returns true if this converter object's properties match the given properties. More... | |
SBMLRuleConverter () | |
Creates a new SBMLLevelVersionConverter object. More... | |
SBMLRuleConverter (const SBMLRuleConverter &obj) | |
Copy constructor; creates a copy of an SBMLLevelVersionConverter object. More... | |
virtual int | setDocument (const SBMLDocument *doc) |
Sets the SBML document to be converted. More... | |
virtual int | setDocument (SBMLDocument *doc) |
Sets the SBML document to be converted. More... | |
virtual int | setProperties (const ConversionProperties *props) |
Sets the configuration properties to be used by this converter. More... | |
virtual | ~SBMLRuleConverter () |
Destroy this SBMLRuleConverter object. More... | |
SBMLRuleConverter::SBMLRuleConverter | ( | ) |
Creates a new SBMLLevelVersionConverter object.
SBMLRuleConverter::SBMLRuleConverter | ( | const SBMLRuleConverter & | obj | ) |
Copy constructor; creates a copy of an SBMLLevelVersionConverter object.
obj | the SBMLLevelVersionConverter object to copy. |
|
virtual |
Destroy this SBMLRuleConverter object.
|
virtual |
Creates and returns a deep copy of this SBMLLevelVersionConverter object.
Reimplemented from SBMLConverter.
|
virtual |
Perform the conversion.
This method causes the converter to do the actual conversion work, that is, to convert the SBMLDocument object set by SBMLConverter::setDocument() and with the configuration options set by SBMLConverter::setProperties().
Reimplemented from SBMLConverter.
|
virtual |
Returns the default properties of this converter.
A given converter exposes one or more properties that can be adjusted in order to influence the behavior of the converter. This method returns the default property settings for this converter. It is meant to be called in order to discover all the settings for the converter object.
Reimplemented from SBMLConverter.
|
virtualinherited |
Returns the SBML document that is the subject of the conversions.
|
virtualinherited |
Returns the SBML document that is the subject of the conversions.
|
inherited |
Returns the name of this converter.
|
virtualinherited |
Returns the current properties in effect for this converter.
A given converter exposes one or more properties that can be adjusted in order to influence the behavior of the converter. This method returns the current properties for this converter; in other words, the settings in effect at this moment. To change the property values, you can use SBMLConverter::setProperties(const ConversionProperties *props).
|
virtualinherited |
Returns the target SBML namespaces of the currently set properties.
SBML namespaces are used by libSBML to express the Level+Version of the SBML document (and, possibly, any SBML Level 3 packages in use). Some converters' behavior is affected by the SBML namespace configured in the converter. For example, in SBMLLevelVersionConverter (the converter for converting SBML documents from one Level+Version combination to another), the actions are fundamentally dependent on the SBML namespaces targeted.
NULL
if none are set.
|
virtual |
Returns true
if this converter object's properties match the given properties.
A typical use of this method involves creating a ConversionProperties object, setting the options desired, and then calling this method on an SBMLLevelVersionConverter object to find out if the object's property values match the given ones. This method is also used by SBMLConverterRegistry::getConverterFor() to search across all registered converters for one matching particular properties.
props | the properties to match. |
true
if this converter's properties match, false
otherwise. Reimplemented from SBMLConverter.
|
virtualinherited |
Sets the SBML document to be converted.
doc | the document to use for this conversion. |
Reimplemented in SBMLReactionConverter, and SBMLRateOfConverter.
|
virtualinherited |
Sets the SBML document to be converted.
doc | the document to use for this conversion. |
Reimplemented in SBMLReactionConverter, and SBMLRateOfConverter.
|
virtualinherited |
Sets the configuration properties to be used by this converter.
props | the ConversionProperties object defining the properties to set. |