libSBML C API  5.18.0
ListOfCompartments_t Class Reference

Detailed Description

A list of Compartment_t objects.

The various ListOf___ structures in SBML are merely containers used for organizing the main components of an SBML model. In libSBML's implementation, ListOf___ data structures are derived from the intermediate utility structure ListOf_t, which is not defined by the SBML specifications but serves as a useful programmatic construct. ListOf_t is itself is in turn derived from SBase_t, which provides all of the various ListOf___ data structures with common features defined by the SBML specification, such as "metaid" attributes and annotations.

The relationship between the lists and the rest of an SBML model is illustrated by the following (for SBML Level 2 Version 4):

SBML Level 3 Version 1 has essentially the same structure as Level 2 Version 4, depicted above, but SBML Level 3 Version 2 allows containers to contain zero or more of the relevant object, instead of requiring at least one. As such, libsbml will write out an otherwise-empty ListOf___ element that has any optional attribute set (such as 'id' or 'metaid'), that has an optional child (such as a 'notes' or 'annotation'), or that has attributes or children set from any SBML Level 3 package, whether or not the ListOf___ has any other children.

Readers may wonder about the motivations for using the ListOf___ containers in SBML. A simpler approach in XML might be to place the components all directly at the top level of the model definition. The choice made in SBML is to group them within XML elements named after ListOfClassname, in part because it helps organize the components. More importantly, the fact that the container classes are derived from SBase_t means that software tools can add information about the lists themselves into each list container's "annotation".

See also
ListOfFunctionDefinitions_t
ListOfUnitDefinitions_t
ListOfCompartmentTypes_t
ListOfSpeciesTypes_t
ListOfCompartments_t
ListOfSpecies_t
ListOfParameters_t
ListOfInitialAssignments_t
ListOfRules_t
ListOfConstraints_t
ListOfReactions_t
ListOfEvents_t
Note
In the C API for libSBML, functions that in other language APIs would be inherited by the various ListOf___ structures not shown in the pages for the individual ListOf___'s. Instead, the functions are defined on ListOf_t. Please consult the documentation for ListOf_t for the many common functions available for manipulating ListOf___ structures. The documentation for the individual ListOf___ structures (ListOfCompartments_t, ListOfReactions_t, etc.) does not reveal all of the functionality available.

Public Member Functions

Compartment_tListOfCompartments_getById (ListOf_t *lo, const char *sid)
 Returns the Compartment_t structure having a given identifier. More...
 
Compartment_tListOfCompartments_removeById (ListOf_t *lo, const char *sid)
 Removes a Compartment_t structure based on its identifier. More...
 

Member Function Documentation

Compartment_t * ListOfCompartments_getById ( ListOf_t lo,
const char *  sid 
)

Returns the Compartment_t structure having a given identifier.

Parameters
lothe list of Compartments_t structures to search.
sidthe "id" attribute value being sought.
Returns
item in the lo ListOfCompartments_t with the given sid or a null pointer if no such item exists.
See also
ListOf_t
Compartment_t * ListOfCompartments_removeById ( ListOf_t lo,
const char *  sid 
)

Removes a Compartment_t structure based on its identifier.

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

Parameters
lothe list of Compartment_t structures to search.
sidthe "id" attribute value of the structure to remove.
Returns
The Compartment_t structure removed, or a null pointer if no such item exists in lo.
See also
ListOf_t