libSBML C++ API
5.20.2
|
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 SBML converter takes an SBML document having one SBML Level+Version combination, and attempts to convert it to an SBML document having a different Level+Version combination.
This class is also the basis for SBMLDocument::setLevelAndVersion().
SBMLLevelVersionConverter is enabled by creating a ConversionProperties object with the option "setLevelAndVersion"
, and passing this properties object to SBMLDocument::convert(). The target SBML Level and Version combination are determined by the value of the SBML namespace set on the ConversionProperties object (using ConversionProperties::setTargetNamespaces(SBMLNamespaces *targetNS)).
In addition, this converter offers the following options:
"strict"
: If this option has the value true
, then the validity of the SBML document will be strictly preserved. This means that SBML validation will be performed, and if the original model is not valid or semantics cannot be preserved in the converted model, then conversion will not be performed. Conversely, if this option is set to false
, model conversion will always be performed; if any errors are detected related to altered semantics, the errors will be logged in the usual way (i.e., the error log on the SBMLDocument object)."addDefaultUnits"
: By default, a conversion from SBML Level 2 to Level 3 will explicitly add UnitDefinition objects and unit attributes on the Model object to define units that are implicitly defined in SBML Level 2. This is usually desirable because in SBML Level 3, there are no default units and a conversion from Level 2 that did not add unit definitions would actually result in a loss of information. However, some users or software tools may not need or want this, or worse, may be fooled into thinking that libSBML has somehow inferred the proper units for model quantities. (It has not; it merely adds generic predefined units.) This option lets callers control this behavior.The use of all the converters follows a similar approach. First, one creates a ConversionProperties object and calls ConversionProperties::addOption() on this object with one argument: a text string that identifies the desired converter. (The text string is specific to each converter; consult the documentation for a given converter to find out how it should be enabled.)
Next, for some converters, the caller can optionally set some converter-specific properties using additional calls to ConversionProperties::addOption(). Many converters provide the ability to configure their behavior to some extent; this is realized through the use of properties that offer different options. The default property values for each converter can be interrogated using the method SBMLConverter::getDefaultProperties() on the converter class in question .
Finally, the caller should invoke the method SBMLDocument::convert() with the ConversionProperties object as an argument.
The following code fragment illustrates an example using SBMLReactionConverter, which is invoked using the option string "replaceReactions"
:
In the case of SBMLReactionConverter, there are no options to affect its behavior, so the next step is simply to invoke the converter on an SBMLDocument object. Continuing the example code:
Here is an example of using a converter that offers an option. The following code invokes SBMLStripPackageConverter to remove the SBML Level 3 Layout package from a model. It sets the name of the package to be removed by adding a value for the option named "package"
defined by that converter:
LibSBML provides a number of built-in converters; by convention, their names end in Converter. The following are the built-in converters provided by libSBML 5.20.2 :
Public Member Functions | |
virtual SBMLLevelVersionConverter * | clone () const |
Creates and returns a deep copy of this SBMLLevelVersionConverter object. More... | |
virtual int | convert () |
Perform the conversion. More... | |
bool | getAddDefaultUnits () |
Returns the flag indicating whether default units should be added when converting to L3 or not. 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... | |
unsigned int | getTargetLevel () |
Returns the target SBML Level for the conversion. More... | |
virtual SBMLNamespaces * | getTargetNamespaces () |
Returns the target SBML namespaces of the currently set properties. More... | |
unsigned int | getTargetVersion () |
Returns the target SBML Version for the conversion. More... | |
bool | getValidityFlag () |
Returns the flag indicating whether the conversion has been set to "strict". More... | |
virtual bool | matchesProperties (const ConversionProperties &props) const |
Returns true if this converter object's properties match the given properties. More... | |
SBMLLevelVersionConverter & | operator= (const SBMLLevelVersionConverter &rhs) |
Assignment operator for SBMLLevelVersionConverter. More... | |
SBMLLevelVersionConverter () | |
Creates a new SBMLLevelVersionConverter object. More... | |
SBMLLevelVersionConverter (const SBMLLevelVersionConverter &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 | ~SBMLLevelVersionConverter () |
Destroys this object. More... | |
SBMLLevelVersionConverter::SBMLLevelVersionConverter | ( | ) |
Creates a new SBMLLevelVersionConverter object.
SBMLLevelVersionConverter::SBMLLevelVersionConverter | ( | const SBMLLevelVersionConverter & | obj | ) |
Copy constructor; creates a copy of an SBMLLevelVersionConverter object.
obj | the SBMLLevelVersionConverter object to copy. |
|
virtual |
Destroys this 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.
bool SBMLLevelVersionConverter::getAddDefaultUnits | ( | ) |
Returns the flag indicating whether default units should be added when converting to L3 or not.
true
if default units should be added, false
otherwise.
|
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).
unsigned int SBMLLevelVersionConverter::getTargetLevel | ( | ) |
Returns the target SBML Level for the conversion.
|
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. unsigned int SBMLLevelVersionConverter::getTargetVersion | ( | ) |
Returns the target SBML Version for the conversion.
bool SBMLLevelVersionConverter::getValidityFlag | ( | ) |
Returns the flag indicating whether the conversion has been set to "strict".
true
if strict validity has been requested, false
otherwise.
|
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.
SBMLLevelVersionConverter & SBMLLevelVersionConverter::operator= | ( | const SBMLLevelVersionConverter & | rhs | ) |
Assignment operator for SBMLLevelVersionConverter.
rhs | the object whose values are used as the basis of the assignment. |
|
virtualinherited |
Sets the SBML document to be converted.
doc | the document to use for this conversion. |
doc
is 'const', it is immediately cast to a non-const version, which is then usually changed by the converter upon a successful conversion. This variant of the setDocument() method is here solely to preserve backwards compatibility. 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. |