libSBML C++ API  5.20.4
SBMLConverterRegistry Class Reference

Detailed Description

Registry of all libSBML SBML converters.

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.

LibSBML provides facilities for transforming and converting SBML documents in various ways. These transformations can involve essentially anything that can be written algorithmically; examples include converting the units of measurement in a model, or converting from one Level+Version combination of SBML to another. Converters are implemented as objects derived from the class SBMLConverter.

The converter registry, implemented as a singleton object of class SBMLConverterRegistry, maintains a list of known converters and provides methods for discovering them. Callers can use the method SBMLConverterRegistry::getNumConverters() to find out how many converters are registered, then use SBMLConverterRegistry::getConverterByIndex() to iterate over each one; alternatively, callers can use SBMLConverterRegistry::getConverterFor() to search for a converter having specific properties.

Public Member Functions

int addConverter (const SBMLConverter *converter)
 Adds the given converter to the registry of SBML converters. More...
 
SBMLConvertergetConverterByIndex (int index) const
 Returns the converter with the given index number. More...
 
SBMLConvertergetConverterFor (const ConversionProperties &props) const
 Returns the converter that best matches the given configuration properties. More...
 
int getNumConverters () const
 Returns the number of converters known by the registry. More...
 
virtual ~SBMLConverterRegistry ()
 Destructor. More...
 

Static Public Member Functions

static SBMLConverterRegistrygetInstance ()
 Returns the singleton instance for the converter registry. More...
 

Constructor & Destructor Documentation

◆ ~SBMLConverterRegistry()

virtual SBMLConverterRegistry::~SBMLConverterRegistry ( )
virtual

Destructor.

Member Function Documentation

◆ addConverter()

int SBMLConverterRegistry::addConverter ( const SBMLConverter converter)

Adds the given converter to the registry of SBML converters.

Parameters
converterthe converter to add to the registry.
Returns
integer value indicating success/failure of the function. The value is drawn from the enumeration OperationReturnValues_t. The possible values returned by this function are:

◆ getConverterByIndex()

SBMLConverter * SBMLConverterRegistry::getConverterByIndex ( int  index) const

Returns the converter with the given index number.

Converters are given arbitrary index numbers by the registry. Callers can use the method SBMLConverterRegistry::getNumConverters() to find out how many converters are registered, then use this method to iterate over the list and obtain each one in turn.

Parameters
indexthe zero-based index of the converter to fetch.
Returns
the converter with the given index number, or NULL if the number is less than 0 or there is no converter at the given index position.

◆ getConverterFor()

SBMLConverter * SBMLConverterRegistry::getConverterFor ( const ConversionProperties props) const

Returns the converter that best matches the given configuration properties.

Many converters provide the ability to configure their behavior. This is realized through the use of properties that offer different options. The present method allows callers to search for converters that have specific property values. Callers can do this by creating a ConversionProperties object, adding the desired option(s) to the object, then passing the object to this method.

Parameters
propsa ConversionProperties object defining the properties to match against.
Returns
the converter matching the properties, or NULL if no suitable converter is found.
See also
getConverterByIndex()
Examples
flattenModel.cpp.

◆ getInstance()

SBMLConverterRegistry & SBMLConverterRegistry::getInstance ( )
static

Returns the singleton instance for the converter registry.

Prior to using the registry, callers have to obtain a copy of the registry. This static method provides the means for doing that.

Returns
the singleton for the converter registry.
Examples
flattenModel.cpp.

◆ getNumConverters()

int SBMLConverterRegistry::getNumConverters ( ) const

Returns the number of converters known by the registry.

Returns
the number of registered converters.
See also
getConverterByIndex()