libSBML C++ API  5.20.2
CompModelPlugin Class Reference
Inheritance diagram for CompModelPlugin:
[legend]

Detailed Description

comp Extension of Model.

The CompModelPlugin class inherits from the SBMLSBasePlugin class, and codifies the extensions to the Model class defined in the SBML Level 3 Hierarchical Model Composition (“comp”) package. This extension allows a Model to define Submodels (other Models that are instantiated as new parts of the parent Model), and Ports, a defined interface for including the given Model as a Submodel of a different Model.

Submodels are stored in an optional child ListOfSubmodels object, which, if present, must contain one or more Submodel objects. All of the Submodels present in the ListOfSubmodels are defined to be instantiated in the 'complete' Model.

Ports are stored in an optional child ListOfPorts object, which, if present, must contain one or more Port objects. All of the Ports present in the ListOfPorts collectively define the 'port interface' of the Model.

Examples
spec_example1.cpp, spec_example2.cpp, spec_example3.cpp, and spec_example4.cpp.

Public Member Functions

int addPort (const Port *port)
 Adds a copy of the given Port object to the list of ports. More...
 
int addReplacedElement (const ReplacedElement *replacedElement)
 Adds a copy of the given ReplacedElement object to the list of ReplacedElements. More...
 
int addSubmodel (const Submodel *submodel)
 Adds a copy of the given Submodel object to the list of submodels. More...
 
virtual void clearReplacedElements ()
 Remove all ReplacedElements, if any exist. More...
 
virtual CompModelPluginclone () const
 Creates and returns a deep copy of this CompModelPlugin object. More...
 
 CompModelPlugin (const CompModelPlugin &orig)
 Copy constructor. More...
 
 CompModelPlugin (const std::string &uri, const std::string &prefix, CompPkgNamespaces *compns)
 Creates a new CompModelPlugin object using the given parameters. More...
 
PortcreatePort ()
 Creates a Port object, adds it to the end of the port objects list and returns a pointer to the newly created object. More...
 
ReplacedBycreateReplacedBy ()
 Creates a new, empty ReplacedBy, adds it to this CompSBasePlugin and returns the created ReplacedBy. More...
 
ReplacedElementcreateReplacedElement ()
 Creates a ReplacedElement object, adds it to the end of the ReplacedElement objects list and returns a pointer to the newly created object. More...
 
SubmodelcreateSubmodel ()
 Creates a Submodel object, adds it to the end of the submodel objects list and returns a pointer to the newly created object. More...
 
virtual ListgetAllElements (ElementFilter *filter=NULL)
 Returns a List of all child SBase objects, including those nested to an arbitrary depth. More...
 
std::string getDivider ()
 Get the string used as the divider between names when renaming and flattening models. More...
 
virtual SBasegetElementByMetaId (const std::string &metaid)
 Returns the first child element it can find with the given meta identifier, or itself if it has the given metaid, or NULL if no such object is found. More...
 
virtual SBasegetElementBySId (const std::string &id)
 Returns the first child element found that has the given id in the model-wide SId namespace, or NULL if no such object is found. More...
 
const std::string & getElementNamespace () const
 Returns the namespace URI of the package to which this plugin object belongs. More...
 
unsigned int getLevel () const
 Returns the SBML Level of the package extension of this plugin object. More...
 
ListOfPortsgetListOfPorts ()
 Returns the ListOfPorts from this CompModelPlugin. More...
 
const ListOfPortsgetListOfPorts () const
 Returns the ListOfPorts from this CompModelPlugin. More...
 
ListOfReplacedElementsgetListOfReplacedElements ()
 Returns the ListOf object that holds all replacedElements. More...
 
const ListOfReplacedElementsgetListOfReplacedElements () const
 Returns the ListOf object that holds all replacedElements. More...
 
ListOfSubmodelsgetListOfSubmodels ()
 Returns the ListOfSubmodels from this CompModelPlugin. More...
 
const ListOfSubmodelsgetListOfSubmodels () const
 Returns the ListOfSubmodels from this CompModelPlugin. More...
 
unsigned int getNumPorts () const
 Returns the number of ports for this CompModelPlugin. More...
 
unsigned int getNumReplacedElements () const
 Returns the number of ReplacedElements for this CompSBasePlugin. More...
 
unsigned int getNumSubmodels () const
 Returns the number of submodels for this CompModelPlugin. More...
 
const std::string & getPackageName () const
 Returns the short-form name of the package to which this plugin object belongs. More...
 
unsigned int getPackageVersion () const
 Returns the package version of the package extension of this plugin object. More...
 
SBasegetParentSBMLObject ()
 Returns the parent object to which this plugin object is connected. More...
 
const SBasegetParentSBMLObject () const
 Returns the parent object to which this plugin object is connected. More...
 
PortgetPort (const std::string &id)
 Returns the port with the given identifier. More...
 
const PortgetPort (const std::string &id) const
 Returns the port with the given identifier. More...
 
PortgetPort (unsigned int n)
 Returns the port with the given index. More...
 
const PortgetPort (unsigned int n) const
 Returns the port with the given index. More...
 
const std::string & getPrefix () const
 Returns the XML namespace prefix of the package to which this plugin object belongs. More...
 
ReplacedBygetReplacedBy ()
 Get the child ReplacedBy of this SBase. More...
 
const ReplacedBygetReplacedBy () const
 Get the child ReplacedBy of this SBase. More...
 
ReplacedElementgetReplacedElement (unsigned int n)
 Returns the ReplacedElement with the given index. More...
 
const ReplacedElementgetReplacedElement (unsigned int n) const
 Returns the ReplacedElement with the given index. More...
 
SBMLDocumentgetSBMLDocument ()
 Returns the SBMLDocument object containing this object instance. More...
 
const SBMLDocumentgetSBMLDocument () const
 Returns the SBMLDocument object containing this object instance. More...
 
SubmodelgetSubmodel (const std::string &id)
 Returns the submodel with the given identifier. More...
 
const SubmodelgetSubmodel (const std::string &id) const
 Returns the submodel with the given identifier. More...
 
SubmodelgetSubmodel (unsigned int n)
 Returns the submodel with the given index. More...
 
const SubmodelgetSubmodel (unsigned int n) const
 Returns the submodel with the given index. More...
 
PrefixTransformer * getTransformer () const
 
std::string getURI () const
 Returns the XML namespace URI for the package to which this object belongs. More...
 
unsigned int getVersion () const
 Returns the Version within the SBML Level of the package extension of this plugin object. More...
 
bool isSetReplacedBy () const
 Predicate for testing whether the ReplacedBy for this SBase is set. More...
 
bool isSetTransformer () const
 
virtual bool isValidTypeForList (SBase *item) const
 
virtual void logInvalidId (const std::string &attribute, const std::string &wrongattribute)
 Helper to log a common type of error. More...
 
CompModelPluginoperator= (const CompModelPlugin &orig)
 Assignment operator for CompModelPlugin. More...
 
PortremovePort (unsigned int index)
 Removes the port with the given index. More...
 
ReplacedElementremoveReplacedElement (unsigned int index)
 Removes the ReplacedElement with the given index. More...
 
SubmodelremoveSubmodel (unsigned int index)
 Removes the submodel with the given index. More...
 
virtual void renameMetaIdRefs (const std::string &oldid, const std::string &newid)
 
virtual void renameSIdRefs (const std::string &oldid, const std::string &newid)
 
virtual void renameUnitSIdRefs (const std::string &oldid, const std::string &newid)
 
int setDivider (const std::string &divider)
 Set the string used as the divider between names when renaming and flattening models. More...
 
int setElementNamespace (const std::string &uri)
 Sets the XML namespace to which this object belongs. More...
 
int setReplacedBy (const ReplacedBy *replacedBy)
 Sets the ReplacedBy definition of this SBase to a copy of the given ReplacedBy object instance. More...
 
void setTransformer (PrefixTransformer *transformer)
 Sets the custom transformer that is to be used, instead of the standard prefixing with the given divider. More...
 
virtual int unsetReplacedBy ()
 Unsets the child ReplacedBy of this SBase. More...
 
void unsetTransformer ()
 Unsets any custom prefix transformers. More...
 
virtual ~CompModelPlugin ()
 Destroy this object. More...
 

Protected Member Functions

virtual ModelflattenModel () const
 Flatten and return a copy of this hierarchical model. More...
 
virtual int instantiateSubmodels ()
 Loop through all Submodels in this Model, instantiate all of them, perform all deletions, and synchronize all replacements, including using any conversion factors that may exist. More...
 

Private Member Functions

virtual int appendFrom (const Model *model)
 
virtual int collectDeletionsAndDeleteSome (std::set< SBase * > *removed, std::set< SBase * > *toremove)
 Collects all elements from instantiated submodels slated to be deleted, and stores them in 'toremove', and also actually deletes the comp constructs Deletions, ReplacedElements, and ReplacedBy's. More...
 
virtual int collectRenameAndConvertReplacements (std::set< SBase * > *removed, std::set< SBase * > *toremove)
 Removes all elements from instantiated submodels slated to be replaced, and points all old references to that element to the replacement element. More...
 
virtual void createListOfReplacedElements ()
 
virtual int renameAllIDsAndPrepend (const std::string &prefix)
 
virtual int saveAllReferencedElements ()
 

Constructor & Destructor Documentation

◆ CompModelPlugin() [1/2]

CompModelPlugin::CompModelPlugin ( const std::string &  uri,
const std::string &  prefix,
CompPkgNamespaces compns 
)

Creates a new CompModelPlugin object using the given parameters.

In the XML representation of an SBML document, XML namespaces are used to identify the origin of each XML construct used. XML namespaces are identified by their unique resource identifiers (URIs). The core SBML specifications stipulate the namespaces that must be used for core SBML constructs; for example, all XML elements that belong to SBML Level 3 Version 1 Core must be placed in the XML namespace identified by the URI "http://www.sbml.org/sbml/level3/version1/core". Individual SBML Level 3 packages define their own XML namespaces; for example, all elements belonging to the SBML Level 3 Layout Version 1 package must be placed in the XML namespace "http://www.sbml.org/sbml/level3/version1/layout/version1/".
The SBMLNamespaces object encapsulates SBML Level/Version/namespaces information. It is used to communicate the SBML Level, Version, and (in Level 3) packages used in addition to SBML Level 3 Core. A common approach to using libSBML's SBMLNamespaces facilities is to create an SBMLNamespaces object somewhere in a program once, then hand that object as needed to object constructors that accept SBMLNamespaces as arguments.
Parameters
urithe URI of the SBML Level 3 package implemented by this libSBML package extension.
prefixthe XML namespace prefix being used for the package.
compnsthe namespaces object for the package.

◆ CompModelPlugin() [2/2]

CompModelPlugin::CompModelPlugin ( const CompModelPlugin orig)

Copy constructor.

Creates a copy of this CompModelPlugin object.

Parameters
origthe instance to copy.

◆ ~CompModelPlugin()

CompModelPlugin::~CompModelPlugin ( )
virtual

Destroy this object.

Member Function Documentation

◆ addPort()

int CompModelPlugin::addPort ( const Port port)

Adds a copy of the given Port object to the list of ports.

Parameters
portthe Port object to be added to the list of ports. Fails if the added port is NULL, does not match the level/version/package of the parent object, or cannot be added to the list of ports.
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:
Examples
spec_example3.cpp, and spec_example4.cpp.

◆ addReplacedElement()

int CompSBasePlugin::addReplacedElement ( const ReplacedElement replacedElement)
inherited

Adds a copy of the given ReplacedElement object to the list of ReplacedElements.

Parameters
replacedElementthe ReplacedElement object to be added to the list of ReplacedElements. Fails if the added ReplacedElement is NULL, does not match the level/version/package of the parent object, or cannot be added to the list of replaced elements.
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:
Examples
spec_example2.cpp, spec_example3.cpp, and spec_example4.cpp.

◆ addSubmodel()

int CompModelPlugin::addSubmodel ( const Submodel submodel)

Adds a copy of the given Submodel object to the list of submodels.

Fails if the added submodel is NULL, does not match the level/version/package of the parent object, or cannot be added to the list of submodels.

Parameters
submodelthe Submodel object to be added to the list of submodels.
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:
Examples
spec_example1.cpp.

◆ appendFrom()

int CompModelPlugin::appendFrom ( const Model model)
privatevirtual

◆ clearReplacedElements()

void CompSBasePlugin::clearReplacedElements ( )
virtualinherited

Remove all ReplacedElements, if any exist.

◆ clone()

CompModelPlugin * CompModelPlugin::clone ( ) const
virtual

Creates and returns a deep copy of this CompModelPlugin object.

Returns
a (deep) copy of this CompModelPlugin object.

Reimplemented from CompSBasePlugin.

◆ collectDeletionsAndDeleteSome()

int CompModelPlugin::collectDeletionsAndDeleteSome ( std::set< SBase * > *  removed,
std::set< SBase * > *  toremove 
)
privatevirtual

Collects all elements from instantiated submodels slated to be deleted, and stores them in 'toremove', and also actually deletes the comp constructs Deletions, ReplacedElements, and ReplacedBy's.

This is so that it is possible to delete a deletion or replacement, and end up with a model that still has the element that would have otherwise been deleted. Also, actually deletes local parameters, because this potentially affects the naming conventions when replacing.

Any comp elements or local parameters that have been removed will be added to 'removed', and any elements that are to be removed will be added to 'toremove'.

◆ collectRenameAndConvertReplacements()

int CompModelPlugin::collectRenameAndConvertReplacements ( std::set< SBase * > *  removed,
std::set< SBase * > *  toremove 
)
privatevirtual

Removes all elements from instantiated submodels slated to be replaced, and points all old references to that element to the replacement element.

Also takes any 'replacedBy' construct, deleting the original object, renaming the replacement object with the replaced object's identifiers, and points all old references to the replacement object's old identifiers to the new identifiers.

◆ createListOfReplacedElements()

void CompSBasePlugin::createListOfReplacedElements ( )
privatevirtualinherited

◆ createPort()

Port * CompModelPlugin::createPort ( )

Creates a Port object, adds it to the end of the port objects list and returns a pointer to the newly created object.

Returns
a newly created Port object.
Examples
spec_example3.cpp, and spec_example4.cpp.

◆ createReplacedBy()

ReplacedBy * CompSBasePlugin::createReplacedBy ( )
inherited

Creates a new, empty ReplacedBy, adds it to this CompSBasePlugin and returns the created ReplacedBy.

Returns
the newly created ReplacedBy object instance.
Examples
spec_example3.cpp, and spec_example4.cpp.

◆ createReplacedElement()

ReplacedElement * CompSBasePlugin::createReplacedElement ( )
inherited

Creates a ReplacedElement object, adds it to the end of the ReplacedElement objects list and returns a pointer to the newly created object.

Returns
a newly created ReplacedElement object.
Examples
spec_example3.cpp, and spec_example4.cpp.

◆ createSubmodel()

Submodel * CompModelPlugin::createSubmodel ( )

Creates a Submodel object, adds it to the end of the submodel objects list and returns a pointer to the newly created object.

Returns
a newly created Submodel object.
Examples
spec_example1.cpp, spec_example2.cpp, spec_example3.cpp, and spec_example4.cpp.

◆ flattenModel()

Model * CompModelPlugin::flattenModel ( ) const
protectedvirtual

Flatten and return a copy of this hierarchical model.

Follows all the rules of the hierarchical model composition package and returns a version with all submodels copied into the main model, with all deletions removed and all replaced elements replaced, following any and all rules of conversion factors. Only the ports created for this model will remain.

Returns
a Model object with no submodels. On failure, return NULL.

◆ getAllElements()

List * CompModelPlugin::getAllElements ( ElementFilter filter = NULL)
virtual

Returns a List of all child SBase objects, including those nested to an arbitrary depth.

Parameters
filtera pointer to an ElementFilter, which causes the function to return only elements that match a particular set of constraints. If NULL (the default), the function will return all child objects.
Returns
a List of pointers to all children objects.

Reimplemented from CompSBasePlugin.

◆ getDivider()

string CompModelPlugin::getDivider ( )

Get the string used as the divider between names when renaming and flattening models.

The divider string consists of two underscore characters ("__") by default, and can be overridden with the setDivider() function.

Returns
the divider that will be used by any call to flattenModel().
See also
setDivider(const std::string& divider)

◆ getElementByMetaId()

SBase * CompModelPlugin::getElementByMetaId ( const std::string &  metaid)
virtual

Returns the first child element it can find with the given meta identifier, or itself if it has the given metaid, or NULL if no such object is found.

Parameters
metaida string representing the metaid of the object to find.
Returns
a pointer to the SBase element with the given metaid.

Reimplemented from CompSBasePlugin.

◆ getElementBySId()

SBase * CompModelPlugin::getElementBySId ( const std::string &  id)
virtual

Returns the first child element found that has the given id in the model-wide SId namespace, or NULL if no such object is found.

Parameters
ida string representing the id of the object to find.
Returns
a pointer to the SBase element with the given id.

Reimplemented from CompSBasePlugin.

◆ getElementNamespace()

const std::string & SBasePlugin::getElementNamespace ( ) const
inherited

Returns the namespace URI of the package to which this plugin object belongs.

Returns
the XML namespace URI of the SBML Level 3 package implemented by this libSBML package extension.

◆ getLevel()

unsigned int SBasePlugin::getLevel ( ) const
inherited

Returns the SBML Level of the package extension of this plugin object.

Returns
the SBML Level.
See also
getVersion()

◆ getListOfPorts() [1/2]

ListOfPorts * CompModelPlugin::getListOfPorts ( )

Returns the ListOfPorts from this CompModelPlugin.

Returns
the ListOfPorts from this CompModelPlugin.
Note
The pointer that is returned by this function is not owned by the caller, but may be queried and modified. Any changes made will be reflected in any resulting SBML document containing the pointer's parent.
See also
addPort(const Port* object)
createPort()
getPort(const std::string& sid)
getPort(unsigned int n)
getNumPorts()
removePort(unsigned int n)

◆ getListOfPorts() [2/2]

const ListOfPorts * CompModelPlugin::getListOfPorts ( ) const

Returns the ListOfPorts from this CompModelPlugin.

Returns
the ListOfPorts from this CompModelPlugin.
Note
The pointer that is returned by this function is not owned by the caller, but may be queried and modified. Any changes made will be reflected in any resulting SBML document containing the pointer's parent.
See also
addPort(const Port* object)
createPort()
getPort(const std::string& sid)
getPort(unsigned int n)
getNumPorts()
removePort(unsigned int n)

◆ getListOfReplacedElements() [1/2]

ListOfReplacedElements * CompSBasePlugin::getListOfReplacedElements ( )
inherited

Returns the ListOf object that holds all replacedElements.

Returns
the ListOf object that holds all replacedElements.

◆ getListOfReplacedElements() [2/2]

const ListOfReplacedElements * CompSBasePlugin::getListOfReplacedElements ( ) const
inherited

Returns the ListOf object that holds all replacedElements.

Returns
the ListOf object that holds all replacedElements.

◆ getListOfSubmodels() [1/2]

ListOfSubmodels * CompModelPlugin::getListOfSubmodels ( )

Returns the ListOfSubmodels from this CompModelPlugin.

Returns
the ListOfSubmodels from this CompModelPlugin.
Note
The pointer that is returned by this function is not owned by the caller, but may be queried and modified. Any changes made will be reflected in any resulting SBML document containing the pointer's parent.
See also
addSubmodel(const Submodel* object)
createSubmodel()
getSubmodel(const std::string& sid)
getSubmodel(unsigned int n)
getNumSubmodels()
removeSubmodel(unsigned int n)

◆ getListOfSubmodels() [2/2]

const ListOfSubmodels * CompModelPlugin::getListOfSubmodels ( ) const

Returns the ListOfSubmodels from this CompModelPlugin.

Returns
the ListOfSubmodels from this CompModelPlugin.
Note
The pointer that is returned by this function is not owned by the caller, but may be queried and modified. Any changes made will be reflected in any resulting SBML document containing the pointer's parent.
See also
addSubmodel(const Submodel* object)
createSubmodel()
getSubmodel(const std::string& sid)
getSubmodel(unsigned int n)
getNumSubmodels()
removeSubmodel(unsigned int n)

◆ getNumPorts()

unsigned int CompModelPlugin::getNumPorts ( ) const

Returns the number of ports for this CompModelPlugin.

Returns
the number of ports for this CompModelPlugin.

◆ getNumReplacedElements()

unsigned int CompSBasePlugin::getNumReplacedElements ( ) const
inherited

Returns the number of ReplacedElements for this CompSBasePlugin.

Returns
the number of ReplacedElements for this CompSBasePlugin.

◆ getNumSubmodels()

unsigned int CompModelPlugin::getNumSubmodels ( ) const

Returns the number of submodels for this CompModelPlugin.

Returns
the number of submodels for this CompModelPlugin.

◆ getPackageName()

const std::string & SBasePlugin::getPackageName ( ) const
inherited

Returns the short-form name of the package to which this plugin object belongs.

Returns
the short-form package name (or nickname) of the SBML package implemented by this package extension.

◆ getPackageVersion()

unsigned int SBasePlugin::getPackageVersion ( ) const
inherited

Returns the package version of the package extension of this plugin object.

Returns
the package version of the package extension of this plugin object.
See also
getLevel()
getVersion()

◆ getParentSBMLObject() [1/2]

SBase * SBasePlugin::getParentSBMLObject ( )
inherited

Returns the parent object to which this plugin object is connected.

Returns
the parent object of this object.

◆ getParentSBMLObject() [2/2]

const SBase * SBasePlugin::getParentSBMLObject ( ) const
inherited

Returns the parent object to which this plugin object is connected.

Returns
the parent object of this object.

◆ getPort() [1/4]

Port * CompModelPlugin::getPort ( const std::string &  id)

Returns the port with the given identifier.

Parameters
idthe id of the Port to get.
Returns
the Port in the ListOfPorts with the given identifier. If the identifier is invalid, NULL is returned.

◆ getPort() [2/4]

const Port * CompModelPlugin::getPort ( const std::string &  id) const

Returns the port with the given identifier.

Parameters
idthe id of the Port to get.
Returns
the Port in the ListOfPorts with the given identifier. If the identifier is invalid, NULL is returned.

◆ getPort() [3/4]

Port * CompModelPlugin::getPort ( unsigned int  n)

Returns the port with the given index.

Parameters
nthe index number of the Port to get.
Returns
the nth Port in the ListOfPorts. If the index n is invalid, NULL is returned.

◆ getPort() [4/4]

const Port * CompModelPlugin::getPort ( unsigned int  n) const

Returns the port with the given index.

Parameters
nthe index number of the Port to get.
Returns
the nth Port in the ListOfPorts. If the index n is invalid, NULL is returned.

◆ getPrefix()

const std::string & SBasePlugin::getPrefix ( ) const
inherited

Returns the XML namespace prefix of the package to which this plugin object belongs.

Returns
the XML namespace prefix of the SBML Level 3 package implemented by this libSBML package extension.

◆ getReplacedBy() [1/2]

ReplacedBy * CompSBasePlugin::getReplacedBy ( )
inherited

Get the child ReplacedBy of this SBase.

Returns
the ReplacedBy child of this SBase.

◆ getReplacedBy() [2/2]

const ReplacedBy * CompSBasePlugin::getReplacedBy ( ) const
inherited

Get the child ReplacedBy of this SBase.

Returns
the const ReplacedBy child of this SBase.

◆ getReplacedElement() [1/2]

ReplacedElement * CompSBasePlugin::getReplacedElement ( unsigned int  n)
inherited

Returns the ReplacedElement with the given index.

Parameters
nthe index number of the ReplacedElement to get.
Returns
the nth ReplacedElement in the ListOfReplacedElements. If the index is invalid, NULL is returned.

◆ getReplacedElement() [2/2]

const ReplacedElement * CompSBasePlugin::getReplacedElement ( unsigned int  n) const
inherited

Returns the ReplacedElement with the given index.

Parameters
nthe index number of the ReplacedElement to get.
Returns
the nth ReplacedElement in the ListOfReplacedElements. If the index is invalid, NULL is returned.

◆ getSBMLDocument() [1/2]

SBMLDocument * SBasePlugin::getSBMLDocument ( )
inherited

Returns the SBMLDocument object containing this object instance.

LibSBML uses the class SBMLDocument as a top-level container for storing SBML content and data associated with it (such as warnings and error messages). An SBML model in libSBML is contained inside an SBMLDocument object. SBMLDocument corresponds roughly to the class SBML defined in the SBML Level 3 and Level 2 specifications, but it does not have a direct correspondence in SBML Level 1. (But, it is created by libSBML no matter whether the model is Level 1, Level 2 or Level 3.)

This method allows the caller to obtain the SBMLDocument for the current object.

Returns
the parent SBMLDocument object of this plugin object.
See also
getParentSBMLObject()

◆ getSBMLDocument() [2/2]

const SBMLDocument * SBasePlugin::getSBMLDocument ( ) const
inherited

Returns the SBMLDocument object containing this object instance.

LibSBML uses the class SBMLDocument as a top-level container for storing SBML content and data associated with it (such as warnings and error messages). An SBML model in libSBML is contained inside an SBMLDocument object. SBMLDocument corresponds roughly to the class SBML defined in the SBML Level 3 and Level 2 specifications, but it does not have a direct correspondence in SBML Level 1. (But, it is created by libSBML no matter whether the model is Level 1, Level 2 or Level 3.)

This method allows the caller to obtain the SBMLDocument for the current object.

Returns
the parent SBMLDocument object of this plugin object.
See also
getParentSBMLObject()

◆ getSubmodel() [1/4]

Submodel * CompModelPlugin::getSubmodel ( const std::string &  id)

Returns the submodel with the given identifier.

Parameters
idthe identifier of the Submodel to get.
Returns
the Submodel in the ListOfSubmodels with the given identifier. If no such submodel with identifier id exists, NULL is returned.

◆ getSubmodel() [2/4]

const Submodel * CompModelPlugin::getSubmodel ( const std::string &  id) const

Returns the submodel with the given identifier.

Parameters
idthe identifier of the Submodel to get.
Returns
the Submodel in the ListOfSubmodels with the given identifier. If no submodel with identifier id exists, NULL is returned.

◆ getSubmodel() [3/4]

Submodel * CompModelPlugin::getSubmodel ( unsigned int  n)

Returns the submodel with the given index.

If the index is invalid, NULL is returned.

Parameters
nthe index number of the Submodel to get.
Returns
the nth Submodel in the ListOfSubmodels or NULL if no such object exists.

◆ getSubmodel() [4/4]

const Submodel * CompModelPlugin::getSubmodel ( unsigned int  n) const

Returns the submodel with the given index.

Parameters
nthe index number of the Submodel to get.
Returns
the nth Submodel in the ListOfSubmodels. If the index n is invalid, NULL is returned.

◆ getTransformer()

PrefixTransformer * CompModelPlugin::getTransformer ( ) const
Returns
any custom transformer set for prefix operations, will be NULL by default.

◆ getURI()

std::string SBasePlugin::getURI ( ) const
inherited

Returns the XML namespace URI for the package to which this object belongs.

In the XML representation of an SBML document, XML namespaces are used to identify the origin of each XML construct used. XML namespaces are identified by their unique resource identifiers (URIs). The core SBML specifications stipulate the namespaces that must be used for core SBML constructs; for example, all XML elements that belong to SBML Level 3 Version 1 Core must be placed in the XML namespace identified by the URI "http://www.sbml.org/sbml/level3/version1/core". Individual SBML Level 3 packages define their own XML namespaces; for example, all elements belonging to the SBML Level 3 Layout Version 1 package must be placed in the XML namespace "http://www.sbml.org/sbml/level3/version1/layout/version1/".

This method first looks into the SBMLNamespaces object possessed by the parent SBMLDocument object of the current object. If this cannot be found, this method returns the result of getElementNamespace().

Returns
a string, the URI of the XML namespace to which this object belongs.
See also
getPackageName()
getElementNamespace()
getSBMLDocument()

◆ getVersion()

unsigned int SBasePlugin::getVersion ( ) const
inherited

Returns the Version within the SBML Level of the package extension of this plugin object.

Returns
the SBML Version.
See also
getLevel()

◆ instantiateSubmodels()

int CompModelPlugin::instantiateSubmodels ( )
protectedvirtual

Loop through all Submodels in this Model, instantiate all of them, perform all deletions, and synchronize all replacements, including using any conversion factors that may exist.

The resulting models are stored in the Submodel objects, and available from 'Submodel::getInstantiation()'. This may be useful if separate simulation or analysis of submodels is desired, as opposed to using flattenModel() to get a single SBML model.

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:

◆ isSetReplacedBy()

bool CompSBasePlugin::isSetReplacedBy ( ) const
inherited

Predicate for testing whether the ReplacedBy for this SBase is set.

Returns
true if the ReplacedBy of this SBase is set, false otherwise.

◆ isSetTransformer()

bool CompModelPlugin::isSetTransformer ( ) const
Returns
an indicator, whether a custom transformer has been set.

◆ isValidTypeForList()

virtual bool SBasePlugin::isValidTypeForList ( SBase item) const
virtualinherited

◆ logInvalidId()

void CompSBasePlugin::logInvalidId ( const std::string &  attribute,
const std::string &  wrongattribute 
)
virtualinherited

Helper to log a common type of error.

◆ operator=()

CompModelPlugin & CompModelPlugin::operator= ( const CompModelPlugin orig)

Assignment operator for CompModelPlugin.

Parameters
origthe object whose values are used as the basis of the assignment.

◆ removePort()

Port * CompModelPlugin::removePort ( unsigned int  index)

Removes the port with the given index.

The caller owns the returned item and is responsible for deleting it.

Parameters
indexthe index of the Port object to remove.
Returns
the Port object removed. As mentioned above, the caller owns the returned object. NULL is returned if the given index is out of range.

◆ removeReplacedElement()

ReplacedElement * CompSBasePlugin::removeReplacedElement ( unsigned int  index)
inherited

Removes the ReplacedElement with the given index.

A pointer to the ReplacedElement that was removed is returned. If no ReplacedElement has been removed, NULL is returned.

Parameters
indexthe index of the ReplacedElement object to remove.
Returns
the ReplacedElement object removed. As mentioned above, the caller owns the returned object. NULL is returned if the given index is out of range.

◆ removeSubmodel()

Submodel * CompModelPlugin::removeSubmodel ( unsigned int  index)

Removes the submodel with the given index.

A pointer to the submodel that was removed is returned. The caller owns the returned item and is responsible for deleting it.

Parameters
indexthe index of the Submodel object to remove.
Returns
the Submodel object removed. As mentioned above, the caller owns the returned object. NULL is returned if the given index is out of range and no submodel has been removed, NULL is returned.

◆ renameAllIDsAndPrepend()

int CompModelPlugin::renameAllIDsAndPrepend ( const std::string &  prefix)
privatevirtual

◆ renameMetaIdRefs()

virtual void SBasePlugin::renameMetaIdRefs ( const std::string &  oldid,
const std::string &  newid 
)
virtualinherited

Replaces all uses of a given meta identifier attribute value with another value.
In SBML, object "meta" identifiers are of the XML data type ID; the SBML object attribute itself is typically named metaid. All attributes that hold values referring to values of type ID are of the XML data type IDREF. They are also sometimes informally referred to as "metaid refs", in analogy to the SBML-defined type SIdRef.

This method works by looking at all meta-identifier attribute values, comparing the identifiers to the value of oldid. If any matches are found, the matching identifiers are replaced with newid. The method does not descend into child elements.

Parameters
oldidthe old identifier.
newidthe new identifier.

◆ renameSIdRefs()

virtual void SBasePlugin::renameSIdRefs ( const std::string &  oldid,
const std::string &  newid 
)
virtualinherited

Replaces all uses of a given SIdRef type attribute value with another value.

In SBML, object identifiers are of a data type called SId. In SBML Level 3, an explicit data type called SIdRef was introduced for attribute values that refer to SId values; in previous Levels of SBML, this data type did not exist and attributes were simply described to as "referring to an identifier", but the effective data type was the same as SIdRef in Level 3. These and other methods of libSBML refer to the type SIdRef for all Levels of SBML, even if the corresponding SBML specification did not explicitly name the data type.

This method works by looking at all attributes and (if appropriate) mathematical formulas in MathML content, comparing the referenced identifiers to the value of oldid. If any matches are found, the matching values are replaced with newid. The method does not descend into child elements.

Parameters
oldidthe old identifier.
newidthe new identifier.

Reimplemented in FbcReactionPlugin.

◆ renameUnitSIdRefs()

virtual void SBasePlugin::renameUnitSIdRefs ( const std::string &  oldid,
const std::string &  newid 
)
virtualinherited

Replaces all uses of a given UnitSIdRef type attribute value with another value.
In SBML, unit definitions have identifiers of type UnitSId. In SBML Level 3, an explicit data type called UnitSIdRef was introduced for attribute values that refer to UnitSId values; in previous Levels of SBML, this data type did not exist and attributes were simply described to as "referring to a unit identifier", but the effective data type was the same as UnitSIdRef in Level 3. These and other methods of libSBML refer to the type UnitSIdRef for all Levels of SBML, even if the corresponding SBML specification did not explicitly name the data type.

This method works by looking at all unit identifier attribute values (including, if appropriate, inside mathematical formulas), comparing the referenced unit identifiers to the value of oldid. If any matches are found, the matching values are replaced with newid. The method does not descend into child elements.

Parameters
oldidthe old identifier.
newidthe new identifier.

◆ saveAllReferencedElements()

int CompModelPlugin::saveAllReferencedElements ( )
privatevirtual

◆ setDivider()

int CompModelPlugin::setDivider ( const std::string &  divider)

Set the string used as the divider between names when renaming and flattening models.

The divider string consists of two underscore characters ("__") by default. This method will fail if called with an empty divider, or a divider that cannot be used internally as part of a valid SBML SId.

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:

◆ setElementNamespace()

int SBasePlugin::setElementNamespace ( const std::string &  uri)
inherited

Sets the XML namespace to which this object belongs.

In the XML representation of an SBML document, XML namespaces are used to identify the origin of each XML construct used. XML namespaces are identified by their unique resource identifiers (URIs). The core SBML specifications stipulate the namespaces that must be used for core SBML constructs; for example, all XML elements that belong to SBML Level 3 Version 1 Core must be placed in the XML namespace identified by the URI "http://www.sbml.org/sbml/level3/version1/core". Individual SBML Level 3 packages define their own XML namespaces; for example, all elements belonging to the SBML Level 3 Layout Version 1 package must be placed in the XML namespace "http://www.sbml.org/sbml/level3/version1/layout/version1/".
Parameters
urithe URI to assign to this object.
Returns
integer value indicating success/failure of the function. The value is drawn from the enumeration OperationReturnValues_t. This particular function only does one thing irrespective of user input or object state, and thus will only return a single value:
See also
getElementNamespace()
Examples
convertLayout.cpp.

◆ setReplacedBy()

int CompSBasePlugin::setReplacedBy ( const ReplacedBy replacedBy)
inherited

Sets the ReplacedBy definition of this SBase to a copy of the given ReplacedBy object instance.

This method fails if the added ReplacedBy does not match the level/version/package of the parent object or if the added ReplacedBy cannot be copied.

Parameters
replacedBythe ReplacedBy object instance to use.
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:

◆ setTransformer()

void CompModelPlugin::setTransformer ( PrefixTransformer *  transformer)

Sets the custom transformer that is to be used, instead of the standard prefixing with the given divider.

This makes it possible to finely control how elements are altered.

If not set, only ids and meta ids will be prefixed.

NOTE: the model plugin only holds the pointer to the element it does not take ownership of it. Thus the calling program is responsible of freeing the transformer when no longer needed (i.e after the SBML document has been deleted)

Parameters
transformerthe prefix transformer to use.

◆ unsetReplacedBy()

int CompSBasePlugin::unsetReplacedBy ( )
virtualinherited

Unsets the child ReplacedBy of this SBase.

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:

◆ unsetTransformer()

void CompModelPlugin::unsetTransformer ( )

Unsets any custom prefix transformers.