template<class SBMLExtensionType>
class SBMLExtensionNamespaces< SBMLExtensionType >
Set of SBML Level + Version + namespace triples.
This class of objects is defined by libSBML only and has no direct
equivalent in terms of SBML components. This class is not prescribed by
the SBML specifications, although it is used to implement features
defined in SBML.
SBMLExtensionNamespaces is a template class. It is extended from SBMLNamespaces and is meant to be used by package extensions to store the SBML Level, Version within a Level, and package version of the SBML Level 3 package implemented by a libSBML package extension.
How to use SBMLExtensionNamespaces for a package implementation
- Each package extension in libSBML needs to extend and instantiate the template class SBMLExtensionNamespaces, as well as declare a specific
typedef
. The following sections explain these steps in detail.
1. Define the typedef
Each package needs to declare a package-specific version of the SBMLExtensionNamespaces class using a typedef
. The following example code demonstrates how this is done in the case of the Layout package:
SBMLExtensionNamespaces< LayoutExtension > LayoutPkgNamespaces
Definition: LayoutExtension.h:422
Definition: SBMLExtensionNamespaces.h:83
This creates a new type called LayoutPkgNamespaces. The code above is usually placed in the same file that contains the SBMLExtension-derived definition of the package extension base class. In the case of the Layout package, this is in the file src/packages/layout/extension/LayoutExtension.h
in the libSBML source distribution.
2. Instantiate a template instance
Each package needs to instantiate a template instance of the SBMLExtensionNamespaces class. The following example code demonstrates how this is done in the case of the Layout package:
#define LIBSBML_EXTERN
LIBSBML_EXTERN is used under Windows to simplify exporting functions from a DLL.
Definition: extern.h:102
In the case of the Layout package, the code above is located in the file src/packages/layout/extension/LayoutExtension.cpp
in the libSBML source distribution.
3. Create constructors that accept the class
Each SBase-derived class in the package extension should implement a constructor that accepts the SBMLExtensionNamespaces-derived class as an argument. For example, in the Layout package, the class BoundBox has a constructor declared as follows
Definition: BoundingBox.h:64
The implementation of this constructor must, among other things, take the argument namespace object and use it to set the XML namespace URI for the object. Again, for the BoundingBox example:
,mPosition(layoutns)
,mDimensions(layoutns)
,mPositionExplicitlySet (false)
,mDimensionsExplicitlySet (false)
{
setElementNamespace(layoutns->getURI());
connectToChild();
mPosition.setElementName("position");
loadPlugins(layoutns);
}
BoundingBox(unsigned int level=LayoutExtension::getDefaultLevel(), unsigned int version=LayoutExtension::getDefaultVersion(), unsigned int pkgVersion=LayoutExtension::getDefaultPackageVersion())
Default Constructor.
Definition: BoundingBox.cpp:76
|
int | addNamespace (const std::string &uri, const std::string &prefix) |
| Add an XML namespace (a pair of URI and prefix) to the set of namespaces within this SBMLNamespaces object. More...
|
|
int | addNamespaces (const XMLNamespaces *xmlns) |
| Add the given XML namespaces list to the set of namespaces within this SBMLNamespaces object. More...
|
|
int | addPackageNamespace (const std::string &pkgName, unsigned int pkgVersion, const std::string &prefix="") |
| Add an XML namespace (a pair of URI and prefix) of a package extension to the set of namespaces within this SBMLNamespaces object. More...
|
|
int | addPackageNamespaces (const XMLNamespaces *xmlns) |
| Add the XML namespaces of package extensions in the given XMLNamespace object to the set of namespaces within this SBMLNamespaces object (Non-package XML namespaces are not added by this function). More...
|
|
virtual ISBMLExtensionNamespaces * | clone () const |
| Creates and returns a deep copy of this SBMLExtensionNamespaces object. More...
|
|
unsigned int | getLevel () |
| Get the SBML Level of this SBMLNamespaces object. More...
|
|
unsigned int | getLevel () const |
| Get the SBML Level of this SBMLNamespaces object. More...
|
|
XMLNamespaces * | getNamespaces () |
| Get the XML namespaces list for this SBMLNamespaces object. More...
|
|
const XMLNamespaces * | getNamespaces () const |
| Get the XML namespaces list for this SBMLNamespaces object. More...
|
|
virtual const std::string & | getPackageName () const |
| Returns the name of the SBML package represented by this namespace object. More...
|
|
unsigned int | getPackageVersion () const |
| Returns the version of the SBML package represented by this namespace object. More...
|
|
virtual std::string | getURI () const |
| Returns a string representing the SBML XML namespace of this package. More...
|
|
unsigned int | getVersion () |
| Get the SBML Version of this SBMLNamespaces object. More...
|
|
unsigned int | getVersion () const |
| Get the SBML Version of this SBMLNamespaces object. More...
|
|
bool | isValidCombination () |
| Predicate returning true if the given set of namespaces represent a valid set. More...
|
|
SBMLExtensionNamespaces & | operator= (const SBMLExtensionNamespaces &rhs) |
| Assignment operator for SBMLExtensionNamespaces. More...
|
|
int | removeNamespace (const std::string &uri) |
| Removes an XML namespace from the set of namespaces within this SBMLNamespaces object. More...
|
|
int | removePackageNamespace (unsigned int level, unsigned version, const std::string &pkgName, unsigned int pkgVersion) |
| Removes an XML namespace of a package extension from the set of namespaces within this SBMLNamespaces object. More...
|
|
| SBMLExtensionNamespaces (const SBMLExtensionNamespaces &orig) |
| Copy constructor; creates a copy of a SBMLExtensionNamespaces. More...
|
|
| SBMLExtensionNamespaces (unsigned int level=SBMLExtensionType::getDefaultLevel(), unsigned int version=SBMLExtensionType::getDefaultVersion(), unsigned int pkgVersion=SBMLExtensionType::getDefaultPackageVersion(), const std::string &prefix=SBMLExtensionType::getPackageName()) |
| Creates a new SBMLExtensionNamespaces object corresponding to the given SBML level , version and package version. More...
|
|
virtual | ~SBMLExtensionNamespaces () |
| Destroys this SBMLExtensionNamespaces object. More...
|
|