public class SBasePlugin extends java.lang.Object
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.
The SBasePlugin
class is libSBML's base class for extensions of core SBML
component objects. SBasePlugin
defines basic virtual methods for
reading/writing/checking additional attributes and/or subobjects these
methods should be overridden by subclasses to implement the necessary
features of an extended SBML object.
SBML Level 3's package structure permits modular extensions to the core SBML format. In libSBML, support for SBML Level 3 packages is provided through optional package extensions that can be plugged into libSBML at the time it is built/compiled. Users of libSBML can thus choose which extensions are enabled in their software applications.
LibSBML defines a number of classes that developers of package extensions
can use to implement support for an SBML Level 3 package. These
classes make it easier to extend libSBML objects with new attributes
and/or subobjects as needed by a particular Level 3 package.
Three overall categories of classes make up libSBML's facilities for
implementing package extensions. There are (1) classes that serve as base
classes meant to be subclassed, (2) template classes meant to be
instantiated rather than subclassed, and (3) support classes that provide
utility features. A given package implementation for libSBML will take
the form of code using these and other libSBML classes, placed in a
subdirectory of src/sbml/packages/
.
The basic libSBML distribution includes a number of package extensions implementing support for officially-endorsed SBML Level 3 packages among these are Flux Balance Constraints ('fbc'), Hierarchical Model Composition ('comp'), Layout ('layout'), and Qualitative Models ('qual'). They can serve as working examples for developers working to implement other packages.
Extensions in libSBML can currently only be implemented in C++ or C there is no mechanism to implement them first in languages such as Java or Python. However, once implemented in C++ or C, language interfaces can be generated semi-automatically using the framework in place in libSBML. (The approach is based on using SWIG and facilities in libSBML's build system.)
Modifier and Type | Method and Description |
---|---|
SBasePlugin |
cloneObject()
Creates and returns a deep copy of this
SBasePlugin object. |
void |
delete()
Explicitly deletes the underlying native object.
|
SBase |
getElementByMetaId(java.lang.String metaid)
Return the first child object found with a given meta identifier.
|
SBase |
getElementBySId(java.lang.String id)
Return the first child object found with a given identifier.
|
java.lang.String |
getElementNamespace()
Returns the namespace URI of the package to which this plugin object
belongs.
|
long |
getLevel()
Returns the SBML Level of the package extension of this plugin object.
|
SBaseList |
getListOfAllElements()   |
SBaseList |
getListOfAllElements(ElementFilter filter)   |
java.lang.String |
getPackageName()
Returns the short-form name of the package to which this plugin
object belongs.
|
long |
getPackageVersion()
Returns the package version of the package extension of this plugin
object.
|
SBase |
getParentSBMLObject()
Returns the parent object to which this plugin object is connected.
|
java.lang.String |
getPrefix()
Returns the XML namespace prefix of the package to which this plugin
object belongs.
|
SBMLDocument |
getSBMLDocument()
Returns the
SBMLDocument object containing this object instance. |
java.lang.String |
getURI()
Returns the XML namespace URI for the package to which this object belongs.
|
long |
getVersion()
Returns the Version within the SBML Level of the package extension of
this plugin object.
|
boolean |
isValidTypeForList(SBase item)   |
void |
renameMetaIdRefs(java.lang.String oldid,
java.lang.String newid)
Replaces all uses of a given meta identifier attribute value with
another value.
|
void |
renameSIdRefs(java.lang.String oldid,
java.lang.String newid)
Replaces all uses of a given
SIdRef type attribute value with another
value. |
void |
renameUnitSIdRefs(java.lang.String oldid,
java.lang.String newid)
Replaces all uses of a given
UnitSIdRef type attribute value with
another value. |
int |
setElementNamespace(java.lang.String uri)
Sets the XML namespace to which this object belongs.
|
public void delete()
In general, application software will not need to call this method directly. The Java language binding for libSBML is implemented as a language wrapper that provides a Java interface to libSBML's underlying C++/C code. Some of the Java methods return objects that are linked to objects created not by Java code, but by C++ code. The Java objects wrapped around them will be deleted when the garbage collector invokes the corresponding C++ finalize()
methods for the objects. The finalize()
methods in turn call the SBasePlugin.delete()
method on the libSBML object.
This method is exposed in case calling programs want to ensure that the underlying object is freed immediately, and not at some arbitrary time determined by the Java garbage collector. In normal usage, callers do not need to invoke SBasePlugin.delete()
themselves.
public java.lang.String getElementNamespace()
public java.lang.String getPrefix()
public java.lang.String getPackageName()
public SBasePlugin cloneObject()
SBasePlugin
object.
SBasePlugin
object.public SBase getElementBySId(java.lang.String id)
This method searches all the subobjects under this one, compares their
identifiers to id
, and returns the first one that machines.
Normally, SId
type identifier values are unique across
a model in SBML. However, in some circumstances they may not be, such
as if a model is invalid because of multiple objects having the same
identifier.
id
- string representing the identifier of the object to find
id
.public SBase getElementByMetaId(java.lang.String metaid)
This method searches all the subobjects under this one, compares their
meta identifiers to metaid
, and returns the first one that machines.
metaid
- string, the metaid of the object to find.
metaid
.public SBMLDocument getSBMLDocument()
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.
SBMLDocument
object of this plugin object.
SBasePlugin.getParentSBMLObject()
public java.lang.String getURI()
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().
SBasePlugin.getPackageName()
,
SBasePlugin.getElementNamespace()
,
SBasePlugin.getSBMLDocument()
public SBase getParentSBMLObject()
public int setElementNamespace(java.lang.String uri)
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/'
.
uri
- the URI to assign to this object.
SBasePlugin.getElementNamespace()
public long getLevel()
SBasePlugin.getVersion()
public long getVersion()
SBasePlugin.getLevel()
public long getPackageVersion()
SBasePlugin.getLevel()
,
SBasePlugin.getVersion()
public void renameSIdRefs(java.lang.String oldid, java.lang.String newid)
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.
oldid
- the old identifiernewid
- the new identifierpublic void renameMetaIdRefs(java.lang.String oldid, java.lang.String newid)
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.
oldid
- the old identifiernewid
- the new identifierpublic void renameUnitSIdRefs(java.lang.String oldid, java.lang.String newid)
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.
oldid
- the old identifiernewid
- the new identifierpublic boolean isValidTypeForList(SBase item)
public SBaseList getListOfAllElements(ElementFilter filter)
public SBaseList getListOfAllElements()